News Unlimited Detail-Technologie: Punkte statt Polygone, Voxel oder Raytracing - neue Infos

Ich glaube ehrlich gesagt nicht, dass der Speicherbedarf sooo gigantisch sein wird.
Gehen wir mal davon aus, ein Baum besteht aus 1mio Punkten. 3 Byte für die Koordinaten, 4 Byte für die Farbe:
1.000.000 * 7 / 1024 / 1024 ~ 6,6 MB
=> Wir könnten mit ner heutigen 2GB Graka 310 Bäume pflanzen.
Gehen wir davon aus die ersten Spiele mit dieser Technik kommen frühestens in 5 Jahren dürfte die Hardware bis dahin weit genug sein, um ganze Spielewelten darzustellen.
 
Ich glaube ehrlich gesagt nicht, dass der Speicherbedarf sooo gigantisch sein wird.
Gehen wir mal davon aus, ein Baum besteht aus 1mio Punkten. 3 Byte für die Koordinaten, 4 Byte für die Farbe:
1.000.000 * 7 / 1024 / 1024 ~ 6,6 MB
=> Wir könnten mit ner heutigen 2GB Graka 310 Bäume pflanzen.
Gehen wir davon aus die ersten Spiele mit dieser Technik kommen frühestens in 5 Jahren dürfte die Hardware bis dahin weit genug sein, um ganze Spielewelten darzustellen.

Denke das in 5 Jahren wohl die ersten Games kommen die versuchen diese Technologie zu nutzen. Aber gut damals als die ersten 3D Games kamen, hatte man auch nur Grafikkarten mit vieleicht 4mb Speicher und man konnte kaum glauben was so ein 3D Spiel frisst.
 

Nice1 habs mir nochmal angeschaut und einige stellen sahen richtig geil aus. Dies Video sollte anstelle des jetzigen im Beitrag verlinkt werden da es 1080p bietet.

Ich glaube ehrlich gesagt nicht, dass der Speicherbedarf sooo gigantisch sein wird.
Gehen wir mal davon aus, ein Baum besteht aus 1mio Punkten. 3 Byte für die Koordinaten, 4 Byte für die Farbe:
1.000.000 * 7 / 1024 / 1024 ~ 6,6 MB
=> Wir könnten mit ner heutigen 2GB Graka 310 Bäume pflanzen.
Gehen wir davon aus die ersten Spiele mit dieser Technik kommen frühestens in 5 Jahren dürfte die Hardware bis dahin weit genug sein, um ganze Spielewelten darzustellen.


Dann hast du aber erst deine Bäume (wenn du nen wald machen willst ist das ja ok ^^) und was ist mit den ganzen anderen kram der noch so anfällt :)

Nicht weit. Ich meine Ansich schon, aber man hat halt deutlich mehr rohdaten, weil das Instancing in echten Spielszenen nur selten funktioniert. Und man muss die Punkte, die nicht sichtbar sind, aussortieren. Ich gehe von 50 GB für die Szene aus, es könnten aber genauso gut 20 oder 300 sein. So oder so, für das System haben wir zu wenig RAM oder zu langsame Festplatten.
Und wenn man dann noch Animationen laden will... :crazy:

Ich sehe da schon nen sehr großen Vorteil da die mit dieser technologie die dazustellendenden objekte fast stufenlos skalieren könnte und gerade die ersten Programmierer weden bestimmt nicht auf die idee kommen ein einzigen baum mal eben 5mille poligone zu spendieren. Sondern sie werden es eher an die max. hardware die derzeit verfügbar ist auszurichten.
 
Zuletzt bearbeitet:
Das klingt für mich nach "viel Luft um nichts"

Man kann nicht einfach Polygon-Meshes nach wasweisichwiediedasnennen konvertieren und dabei noch ein paar Details "hinzuzaubern"
Der einzige Weg sowas ähnliches zu erreichen funktioniert mit Tesselation bzw. Kantenglättung und das ist nun echt nichts neues.
Und Leistung kostet das natürlich auch.

mfg
 
Hat Potential...auf jeden Fall :daumen:. Hoffentlich wird das weiter forciert und vor allen Dingen auch von der Spieleindustrie angenommen...daran zweifel ich allerdings die nächste Zeit dank der "High-End" Konsolen :daumen2:.
 
Zuletzt bearbeitet:
Das klingt für mich nach "viel Luft um nichts"

Man kann nicht einfach Polygon-Meshes nach wasweisichwiediedasnennen konvertieren und dabei noch ein paar Details "hinzuzaubern"
Der einzige Weg sowas ähnliches zu erreichen funktioniert mit Tesselation bzw. Kantenglättung und das ist nun echt nichts neues.
Und Leistung kostet das natürlich auch.

mfg

Abwarten und Tee trinken vor einigen Jahren hat man auch schon Sachen für unmöglich gehalten die es heute gibt.
 
und was ist mit den ganzen anderen kram der noch so anfällt :)

Der steht ja nicht im Wald :D
Genau so wenig steht nen Wald in der Stadt.

Man kann nicht einfach Polygon-Meshes nach wasweisichwiediedasnennen konvertieren und dabei noch ein paar Details "hinzuzaubern"

Ist ja auch (vermutlich) nicht geplant.
Es wird dann vermutlich entweder mit extrem hoher Polygonzahl oder direkt in "Punkten" modelliert werden.
 
Abwarten und Tee trinken vor einigen Jahren hat man auch schon Sachen für unmöglich gehalten die es heute gibt.

Ein Computer kann nur mit dem Arbeiten, was du ihm gibst. Er kann weniger daraus machen aber nicht mehr.
Sollten wir das dennoch miterleben, geb ich dir ein Bier aus.

Außerdem muss man beachten, dass wenn man Polygonobjekte in Punktobjekte konvertiert, jeder Polygon als Tripel zählt, also drei Punkte, was nicht unbedingt besser aussieht und zudem noch mehr Speicher verbraucht, da jeder dieser Punkte ein Vektor, wenn nicht sogar eine Transformationsmatrix benötigt.
Außerdem fallen beim "aussortieren" der Punkte, die nicht sichtbar sind, (dem sog. culling) mehr Takte an, da man im Schnitt drei mal so viele Taktzyklen braucht, als mit Polygonen.
Man kann natürlich Objekte gleich nur mit Punkten modellieren, aber ob das ganze dadurch besser aussieht oder beschleunigt wird, wage ich zu bezweifeln.
Der Vorteil dieser Technik erschließt sich mir einfach nicht und ich würde wetten, dass diese Demo mit einer "normalen" Engine mindestens gleich schnell laufen würde.

Außerdem stimmt die Rechnung von "Hidden" nicht ganz. Es wäre ziemlich blöd, den Baum 310 mal in den Speicher zu kopieren. Man erzeugt hier eher einen Pointer, der auf das Modell zeigt und benutzt diesen dann einfach jedes mal, wenn man einen Baum braucht. Man muss dem Objekt dann nur noch eine neue Transformationsmatrix zuweisen.

mfg
 
Eine kleine Anmerkung an den Artikel generell:
Punkte statt Polygone, Voxel oder Raytracing
Raytracing hat in dieser Reihe eigentlich nichts verloren... denn es bezeichnet eine Rendermethode und nicht den Aufbau von virtuellen Objekten...
Übrigens halte ich nichts von dieser Technik^^
Klar, das Displacement ist genial, aber die Beleuchtung?
Specular Lighting ist mit dieser Technik wohl extrem schwer umzusetzen und würde wohl enorm viel Leistung kosten... und siehe da - kein einziger Lichtfleck ist zu sehen... darum wirkt das ganze auch so flach beleuchtet...
Und das Displacement.... das ist mittlerweile auch sehr gut mit Raytracing und Poligonen möglich:
Microdisplacement - LuxRender Wiki
ich verbleibe skeptisch...
 
Außerdem stimmt die Rechnung von "Hidden" nicht ganz. Es wäre ziemlich blöd, den Baum 310 mal in den Speicher zu kopieren. Man erzeugt hier eher einen Pointer, der auf das Modell zeigt und benutzt diesen dann einfach jedes mal, wenn man einen Baum braucht. Man muss dem Objekt dann nur noch eine neue Transformationsmatrix zuweisen.

:-_-:
Sollte ich jetzt 310 unterschiedliche Beispiel-Modelle aufführen? Von mir aus ists halt nen Mischwald, bei dem jeder Baum anders aussieht.

Der Vorteil dieser Technik erschließt sich mir einfach nicht

Polygone sind Dreiecke, wie dir ja offensichtlich bewusst ist. Dadurch entstehen Ecken. Die lassen sich natürlich verfeinern indem man die Polygone kleiner macht. und was ist ein Polygon in seiner kleinsten Form? Richtig, ein Punkt.
Also der Absolute Detailgrad. Und es dürfte wesentlich Speicherschonender sein meine 7 Byte für einen Farbpunkt zu verwenden, als 3 Punkte + Farbe + Referenz zu anderen Punkten. Auch dürfte die Darstellung wesentlich besser laufen als wenn die Grafikkarte die fehlenden Punkte zum füllen der Pixel selbst berechnen muss.
 
Kann mir mal einer erklären, wo der Unterschied zwischen dieser Technik und Voxeln mit LOD liegt?


Spannend finde ich auch die Frage nach den Datenmengen, wenn man jedes einzelne Atom in einer Spielwelt definieren muss hat man für jedes Atom schonmal 3 Werte die die Position bestimmen.
Dazu kommt noch das dieses Atom bestimmte Eigenschaften haben muss um korrekt dargestellt werden zu können - ganz simpel zB die Farbe.
Bei der aktuell genutzten Farbtiefe von 24 Bit hat man da schonmal 3 Byte zusätzlich pro Atom.
Nimmt man dann an das ein simpler kleiner Stein in der Spielwelt aus einigen Millionen Atomen besteht muss man schon eine Menge Daten vorhalten.
Diese Daten müssen dann in akzeptabler Geschwindigkeit geladen werden können - ganz zu schweigen von dem Medium was genügend Platz bieten muss.

Die Berechnung einzelner Atome kannst du komplett vergessen. Wie du unschwer an deiner Rechnung feststellst: Um ein Atom mit Position und Farbe korrekt zu erfassen (weitere Eigenschaften wären Wünschenswert...) brauch man schon mal locker 64 Bit, vermutlich mehr. Jedes dieser Bits braucht eine Speicherzelle, die aus tausenden von Atomen besteht. -> Eine Szene in atomarer Genauigkeit zu speichern, braucht mehrere Zehnerpotenzen mehr Materie und damit Platz und Aufwand, als ein kompletter, physischer Nachbau der Szene.


Ich glaube ehrlich gesagt nicht, dass der Speicherbedarf sooo gigantisch sein wird.
Gehen wir mal davon aus, ein Baum besteht aus 1mio Punkten.

Gehen wir mal davon aus, dass für ein einzelnes Blatt an deinem Baum heute wenigstens eine 64x64 Pixel Textur verwendet werden würde, dann bist du bei 300 Blättern (in 2D. und ohne Holz) in gleicher Qualität schon am Ende deiner Rechnung und hast einen mittelgroßen Ast...

Aber problematisch ist ganz sicher nicht der VRAM, sondern die Berechnung. Denn ein paar Milliarden Punkte zu speichern ist was ganz anderes, als ein paar Milliarden zu berechnen.


Außerdem stimmt die Rechnung von "Hidden" nicht ganz. Es wäre ziemlich blöd, den Baum 310 mal in den Speicher zu kopieren. Man erzeugt hier eher einen Pointer, der auf das Modell zeigt und benutzt diesen dann einfach jedes mal, wenn man einen Baum braucht. Man muss dem Objekt dann nur noch eine neue Transformationsmatrix zuweisen.

Wenn du nur eine Pixelwolke (statt einzelnen Elementen an einem Polygongerüst) hast, ist es schwer, die Grafikkarte mit Variationen zu beauftragen. D.h. copy&paste geht nur, wenn du 310 identische Bäume haben willst :schnarch:
 
:-_-:
Sollte ich jetzt 310 unterschiedliche Beispiel-Modelle aufführen? Von mir aus ists halt nen Mischwald, bei dem jeder Baum anders aussieht.

Dann macht das Instancing aber keinen Sinn mehr.

Außerdem musst du beachten, dass du nicht einfach, wie in der Vektorgrafik, mit Punkten Flächen beschreiben kannst. Hier rechnet die Grafikkarte nämlich auch wieder alles in Polygone um.
Zudem brauchst du quasi unendlich Punkte, um den "absoluten detailgrad" zu erreichen. Punkte sind schließlich unendlich klein und waren noch nie dazu bestimmt, Flächen bzw. Objekte darzustellen.
Du brauchst mindestens genau so viele Punkte wie Polygone, wenn du runde Kanten darstellen willst. Und alles in Voxel zu berechnen, braucht auch seine Kraft (siehe Volume Rendering)


mfg
 
Dann macht das Instancing aber keinen Sinn mehr.

Machst du das mit absicht?

Außerdem musst du beachten, dass du nicht einfach, wie in der Vektorgrafik, mit Punkten Flächen beschreiben kannst. Hier rechnet die Grafikkarte nämlich auch wieder alles in Polygone um.
Zudem brauchst du quasi unendlich Punkte, um den "absoluten detailgrad" zu erreichen. Punkte sind schließlich unendlich klein und waren noch nie dazu bestimmt, Flächen bzw. Objekte darzustellen.
Du brauchst mindestens genau so viele Punkte wie Polygone, wenn du runde Kanten darstellen willst. Und alles in Voxel zu berechnen, braucht auch seine Kraft (siehe Volume Rendering)

Wie gesagt, ich gehe davon aus, dass die Hardware in vllt. 5 Jahren dafür weitgenug ist.
Ja Theoretisch sind Punkte unendlich klein, aber halt auch nur theoretisch. Irgendwer begrenzt es dann halt, und sagt: unsere Engine akzeptiert Punkte bis zu 0.0001 Units (dürften vermutlich auch eher Würfel als Punkte sein). Und Fertig. Klar brauchst du mehr Punkte als Polygone, hab ich auch nie bestritten.
Umgerechnet werden in Polygone muss es dann eben nichtmehr zwangsläufig, wenn sich die Hardware darauf einstellt. Und die Berechnung ist aufwendig, ja, aber dürfte wesentlich effizienter sein, als wenn man selbiges mit Polygonen umsetzen will.
 
Machst du das mit absicht?

Wo ist denn das Problem^^ Wenn du 310 verschiedene Bäume hast dann macht es doch keinen Sinn, diese zu rendern und erneut zu verwenden, weil es nur 310 Bäume gibt.
Wenn du jetzt 10 verschiedene Modelle hättest, würde es wiederum Sinn machen und der Betrachter würde es vielleicht gar nicht merken, wenn sich diese Modelle wiederholen.

Mein Punkt ist, dass ich einfach keinen Sinn in dieser "Revolution" sehe. Raytracing funktioniert wunderbar mit Polygonen und die Größe eines jeden Primitivs (dazu gehören auch Punkte) ist sowieso abhängig von der Auflösung als auch von vielen weiteren Faktoren.

Du sagst ja schon selber, dass man mehr Punkte als Polygone bräuchte, um das gleiche Bild zu erzeugen. Warum sollte man nun einen Schritt zurück gehen und sagen "Wir haben keine Lust mehr auf Polygone, wir benutzen jetzt nur noch Punkte"
Das läuft auf das gleiche raus, denn man braucht schließlich 3 Punkte (und ich wiederhole mich) um ein Polygon darzustellen. Will man jetzt mehr Details haben, braucht man nun mal noch mehr Punkte. Es ist einfach das gleiche und ich fühle mich leicht für dumm verkauft, wenn mir der Sprecher aus dem Video erzählt, dass dadurch höhere Detailgrade möglich sind, denn das sind sie doch mit Polygonen auch. Hinter dieser Engine muss noch mehr stecken, kein Zweifel. Aber an den Punkten kann es nicht liegen.

mfg
 
Komisch, hab mir gerade erst den entsprechenden Thread im 3D-Center durchgelesen...

Bin zwar kein Spezialist in der Sache, aber dass Animationen und Schatten/Beleuchtung ziemlich abwesend sind, ist mir auch aufgefallen.
Das dürfte aber vor 10... (... Gothic 2) äh 20 Jahren auch nicht viel anders gewesen sein, oder?

Ich glaube in 7 Jahren könnte es erste Spiele damit geben. Wenn die Technologie auf genügend Akzeptanz stößt.
 
Wo ist denn das Problem^^ Wenn du 310 verschiedene Bäume hast dann macht es doch keinen Sinn, diese zu rendern und erneut zu verwenden, weil es nur 310 Bäume gibt.
Weil es eine theoretische Rechnung war und du sie mit Gewalt auf die Praxis übertragen wolltest.



Ich schätze einmal, dass die Erstellung bis jetzt in etwa so abläuft:
Modellieren in Polys->Verfeinerung (evtl. in Voxel)->umwandeln in Punke
zum Vergleich - normaler Ablauf:
Modellieren in Polys->Verfeinerung->übertragen der Feinheiten auf das grobe Modell (Normalmap, Displacement etc.)

Also viel mehr Arbeitsaufwand sehe ich nicht wirklich... (natürlich jetzt vereinfacht dargestellt)
 
Zuletzt bearbeitet:
Zurück