News Voxel-Rendering am Beispiel id-Tech-6 erläutert

AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

@BigBubby & ruyven_macaran, irgendwoher müssen die Farbinformationen ja kommen. Zudem steht im Artikel, dass ID auf eine hohe Varianz bei den Texturen setzt. Aha... aber man braucht ja keine Texturen, ne? ;)

Wenn du den darauffolgenden Absatz liest, steht da genau das drin - man braucht keine Texturen mehr. Die Farbinformationen sind eine feste Eigenschaft des einzelnen Voxels und können als solche gar nicht in einer zweidimensionalen Textur hinterlegt werden.
Warum in der Einleitung kurz Texturen erwähnt werden, die dann an keiner Stelle zum Einsatz kommen, musst du ID/den Redakteur fragen.

Dort sind dann natürlich Texturen vorhanden, ABER sie werden nicht im raytracing berechnet, denn da bräuchte man keine.

Raytraycing ist absolut unabhängig von Voxeln. Man kann eine Polygonwelt raytraycen, man kann aber auch eine Voxelwelt per Rasterizer rendern (zugegeben wäre letzteres nicht übermäßig effizient :ugly: )
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Also wenn ich das richtig sehe, hätte Ati mit den 800 Streamprozessoren der HD4870/90 einen Vorteil gegen über Nvidia.
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Warum in der Einleitung kurz Texturen erwähnt werden, die dann an keiner Stelle zum Einsatz kommen, musst du ID/den Redakteur fragen.
An der Stelle ist von der id-Tech 5 die Rede, welche Rage zu seinem Aussehen verhelfen wird, Voxelrendering bringt id erst in Tech 6 unter.
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

@BigBubby & ruyven_macaran, irgendwoher müssen die Farbinformationen ja kommen. Zudem steht im Artikel, dass ID auf eine hohe Varianz bei den Texturen setzt. Aha... aber man braucht ja keine Texturen, ne? ;)
Die Aussage mit den vielen Texturen bezog sich auf das Spiel "Rage" und damit auf die id-Tech-5 Engine. In diesem Artikel ging es aber um deren Nachfolger und die nutzt keine Texturen mehr sondern speichert die Farbinformation pro Voxel ab. Sollten sie auch noch Raytracing benutzten, werden die Objekte, die geraytraced werden natürlich wieder Texturen haben müssen. Ich bin auf jeden Fall gespannt!!

Edit: Sorry, hab irgendwie übersehen, dass da schon zu geantwortet wurde
 
Zuletzt bearbeitet:
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Warum in der Einleitung kurz Texturen erwähnt werden, die dann an keiner Stelle zum Einsatz kommen, musst du ID/den Redakteur fragen.
hmmmh?

Braucht man nun gar keine Texturen mehr?
Bei der id-Tech-5-Engine, welche im kommenden Spiel Rage eingesetzt wird, setzt id Software auf eine hohe Varianz bei den Texturen, um eine optisch glaubwürdige Spielwelt zu simulieren. Dagegen benötigt eine in Voxeln gespeicherte Geometrie eigentlich keinerlei Texturen mehr. Jedes einzelne Voxel wird inklusive seiner Farbe als Teil der gesamten Informationen gespeichert.

Um optisch mit den heute üblichen hochauflösenden, mehrschichtigen Texturen mithalten zu können, muss die Spielwelt entsprechend fein zerlegt werden. Id Software ist sich der enormen Datenmenge, die dabei entstehen würde, bewusst und greift daher zu einem Trick, welchen die Firma als Voxel Mipmapping bezeichnet.

Während bei herkömmlichem Texture-Mipmapping für jeweils vier Punkte einer Textur der Mittelwert in der nächstkleineren Mip-Stufe gespeichert wird, geht das Voxel-Mipmapping den umgekehrten Weg: Jedes Voxel kann bis zu acht kleinere Sub-Voxel enthalten. Da diese wiederum auf bis zu acht weitere Voxel verweisen können, lässt sich der Detailgrad quasi beliebig steigern. Voxel, die niemals sichtbar sein können, weil sie zum Beispiel im Inneren eines Objekts liegen, werden dabei einfach nicht gespeichert. Auch die Spielwelt wird von dieser Entscheidung beeinflusst.

Je dynamischer die Umgebung, sprich je realistischer sie auf die Aktionen der Spieler reagieren kann, desto höher muss die Voxel-Auflösung auch unterhalb der sichtbaren Oberfläche sein. Einschusslöcher oder Explosionskrater können so geometrisch korrekt dargestellt werden, anstatt nur über ein simples Texturpflaster angedeutet zu werden.
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Hmmm - "Klugscheißmodus an":

Also Voxel-Rendering hat ja mal grundsätzlich nix mit Raytracing oder Raycasting zu tun.

Voxel-Rendering bedeutet nur, dass die "Grafikdaten" nicht wie bisher als "Platten" (Texturen) abgelegt sind, sondern jeder Punkt eine eigene, individuelle Position im Raum besitzt. Theoretisch kann man das mit Displacement-Mapping (3D-Texturen, bzw. Texturen mit Höheninformation) genauso hinbekommen, asußer, dass die Struktur eine andere ist...

Voxel-Rendering muss aber auf Raytracing zurückgreifen um die Pixel darzustellen, deshalb wird Voxelrendering mit Raytracing immer zusammen erwähnt.

An die Redaktion: Eine Sache im Artikel ist aber falsch: (!)
"Raycasting" ist nicht die Verfolgung bis auf die erste Ebene ! Das ist was völlig anderes:

- Raytracing ist das "Verfolgen", d.h. vom Bildschirm ausgehend auf die Objekte, dann ggf. weiter auf andere Objekte je nach spiegelung/fraction, etc...

- Raycasting ist das "Sammeln" von Energie. D.h. Jeder Objektpunkt sammelt die Energie (Beleuchtung) der Umgebung auf. Damit wird "global Illumination" erst wirklich möglich. Mit Raycasting allein kann man nur ein verwaschenes Beleuchtungsbild erzeugen. Ambient-Occlusion-Mapping ist z.B. eine sehr vereinfachte Art des Raycastings. Raycasting verursacht z.B. farbliche, ambiente Refektionen von Objekte indirekt durch die Lichtquelle. Z.B. Erzeugt es einen roten Schein auf weißer Wand, wenn vor der Wand ein rotes Objekt steht, das wierum angeleuchtet wird.

Raytracing sieht z.B. nur wirklich in Kombination mit Raycasting gut aus...


Allerdings benötigt man für Raytracing nicht unbedingt Voxel-Rendering. Denn die Objekte lassen sich ja durch beliebige Verfahren darstellen - ob das nun Voxel oder Texturen sind ist völlig wurscht....

"Klugscheißmodus aus"

Grüße,
Der A. (der Voxel und Raytracing in einer Diplomarbeit 1999 coden musste ...;-)
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Sehr guter und lesenwerter Artikel!:daumen: Hab ich in der Print wohl glatt übersehen.:kaffee:

Wie kommts eigentlich das ID jetzt schon so viele Infos über die ID 6 rausgeben, obwohl noch nicht mal ein Spiel mit der Id Tech 5 veröffentlicht wurde? Wollen die die Hardwarehersteller aufwecken oder was?:huh:
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Na endlich, ich warte seit Outcast auf eine gute Voxel Engine, hoffe die Performance ist gut und naja für anno 1999 hatte Outcast schon ein paar schöne Orte zu bieten die es so damals nicht gab...

Outcast Review by metzomagic.com

ActiveWindows -- Outcast - Review


Welche ID-tech ist denn ETQW (die mit den Megatextures) die war leider nicht so dolle vom Netcode her...


@ Assemblerguru


hm dann ist Raycasting wohl eine sehr Rechenintensive angelegenheit da muss ja viel im Speicher rumgelesen und mitreinberechnet werden damit die Pixelfarbe passt...

kenn das nur von 3dmax hieß dort Caustics....
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

@Assemblerguru - Kannst du deinen Klugscheisser-Modus nochmals aktivieren und klarstellen, dass man selbst beim Voxelrendering nicht ums erstellen von Texturen kommt? Ich kann mir beim besten Willen nicht vorstellen, woher ein Voxel sonst seine Farbinformation herbekommt. Die muss doch von ner Bilddatei stammen, egal ob diese nun auf ein Mesh/Polygon "geklebt" wird, oder die einzelnen Pixel der Textur jeweils einem/mehreren Voxeln, in Abhängigkeit der Auflösung, zugewiesen werden.

So wie ich das bis jetzt verstanden hab, kommen erst am Ende keine klassischen Texturen mehr zum Einsatz, da jeder Voxel, im Gegensatz zu einem Polygon, seine Farbinformation bereits erhalten hat, genau wie ein Pixel in einem Bitmap.

Um klassische Texturarbeit wird man nicht herum kommen, egal mit welcher Methode ein Körper schlussendlich berechnet wird.;)
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

@Assemblerguru - Kannst du deinen Klugscheisser-Modus nochmals aktivieren und klarstellen, dass man selbst beim Voxelrendering nicht ums erstellen von Texturen kommt? Ich kann mir beim besten Willen nicht vorstellen, woher ein Voxel sonst seine Farbinformation herbekommt. Die muss doch von ner Bilddatei stammen, egal ob diese nun auf ein Mesh/Polygon "geklebt" wird, oder die einzelnen Pixel der Textur jeweils einem/mehreren Voxeln, in Abhängigkeit der Auflösung, zugewiesen werden.

Voxel sind da wie ein musaik. jedes für sich hat nur eine farbe, alle zusammen ergeben ein bild. Deshalb haben sie aber keine Textur, denn die Textur ist nur aufgeklebt. Der punkt an dem die Textur z.B. rot ist, ist, wenn man ihn von hinten betrachten würde z.B. nicht rot. Der Voxel dagegen sieht von allen seiten rot aus.
Deshalb ist die zerstörung der umgebung ja auch sinnvoller machbar, da eben bekannt ist, wie die teile von allen seiten aussehen und nicht nur "von vorne".
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

@Assemblerguru - Kannst du deinen Klugscheisser-Modus nochmals aktivieren und klarstellen, dass man selbst beim Voxelrendering nicht ums erstellen von Texturen kommt? Ich kann mir beim besten Willen nicht vorstellen, woher ein Voxel sonst seine Farbinformation herbekommt. Die muss doch von ner Bilddatei stammen, egal ob diese nun auf ein Mesh/Polygon "geklebt" wird, oder die einzelnen Pixel der Textur jeweils einem/mehreren Voxeln, in Abhängigkeit der Auflösung, zugewiesen werden.

Wie kommt ein Pixel in ein bitmap zu seiner Farbe?
Genau den gleichen Weg nimmt ein Voxel, nur dass seine Position auch noch in einer dritten Dimension festgelegt ist: Er wird so vom Designer erstellt. Zugewiesen werden muss da nur dann etwas, wenn man das Modell nicht fertig als Ansammlung von Voxeln speichern will (z.B. weil es in dem bei maximaler Auflösung und geringstem Abstand benötigtem Detailgrad dann zu groß werden würde) - aber auch dann kommt noch keine Textur zum Einsatz, denn Texturen machen immer nur dann Sinn, wenn ich ein Gebilde mit fest definierten Eckpunkten habe - ein Polygon. (Mir wäre jedenfalls kein Einsatz von Texturen auf anders gerenderten Körpern bekannt)
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Voxel sind da wie ein musaik. jedes für sich hat nur eine farbe, alle zusammen ergeben ein bild. Deshalb haben sie aber keine Textur, denn die Textur ist nur aufgeklebt. Der punkt an dem die Textur z.B. rot ist, ist, wenn man ihn von hinten betrachten würde z.B. nicht rot. Der Voxel dagegen sieht von allen seiten rot aus.
Deshalb ist die zerstörung der umgebung ja auch sinnvoller machbar, da eben bekannt ist, wie die teile von allen seiten aussehen und nicht nur "von vorne".
Jopp. Hier braucht man ganz einfach keine Textur mehr, die auf die Gitterstruktur draufgeklebt wird, das Voxel an sich hat die entsprechende Farbe schon ganz einfach.

Da käm man dann gleich ein Stück weiter Richtung kaputtbarer Umgebung: Die Fragmente einer abgesprengten Wand müssten nicht extra neu berechnete 3D-Modelle mit eigener Textur sein oder irgendwelche Partikel sein, die Voxel werden "einfach" (*gg*) physikalisch korrekt rausgeschleudert, und weil von sich aus bunt haben sie auch rundherum Farbe.

Das ermöglicht auch endlich "richtige" Tiefe in Strukturen, so ziemlich jede "raue" Wand aus z.B. Backsteinen mit Furchen etc. ist meist einfach eine glatte Strutkur samt Texturtapete der mit u.a. Bump Mapping nur der Effekt einer realen Struktur vermittelt wird, das sieht man, wenn man in bestimmten schrägen Winkeln genau vor der Wand steht: Schlichte Illusion. Mit Voxeln kann man da endlich richtige Struktur reinbringen.
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Man sollte dabei aber bedenken, dass die Rechenlast noch einmal massiv gesteigert wird, wenn jeder Gegenstand auch mit Voxeln gefüllt sein soll...
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Man sollte dabei aber bedenken, dass die Rechenlast noch einmal massiv gesteigert wird, wenn jeder Gegenstand auch mit Voxeln gefüllt sein soll...

da könnte standartfüllungen benutzen. das teil hat solange keine füllung bis ein treffer kommt. erst dann wird je nach gegenstand (steine z.B. graue voxel, holz braun etc pp) die gegenstände gefüllt. Somit wäre das eine sehr dynamische sache...
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Zitat von Ob4ru|3r:
Das ermöglicht auch endlich "richtige" Tiefe in Strukturen, so ziemlich jede "raue" Wand aus z.B. Backsteinen mit Furchen etc. ist meist einfach eine glatte Strutkur samt Texturtapete der mit u.a. Bump Mapping nur der Effekt einer realen Struktur vermittelt wird, das sieht man, wenn man in bestimmten schrägen Winkeln genau vor der Wand steht: Schlichte Illusion. Mit Voxeln kann man da endlich richtige Struktur reinbringen.

stimmt, beim bump mapping u.ä. - nicht aber beim normal mapping, da sind das echte höhenunterschiede. aber auch da sind einschusslöcher u.ä. nur als bump maps zu sehen. ich stimme dir also zu.

voxel an sich waren ja damals schon bei delta force (glaube beim 2. teil), outcast etc. eine hardwarelastige sache - die spiele liefen nur auf high end daddelkisten sauber und die grafik hinterlies bei mir eher gemischte gefühle: mal sahs von weitem toll aus, dann aber aus der nähe hässlich... jetzt sieht voxel space natürlich besser aus und wenn die voxel engines tatsächlich technisch mit tricks performance bieten und vergleichsweise nicht mehr so grässliche "fehler" wie damals haben, wird das ne recht interessante sache. ich bin mal gespannt.
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

stimmt, beim bump mapping u.ä. - nicht aber beim normal mapping, da sind das echte höhenunterschiede. aber auch da sind einschusslöcher u.ä. nur als bump maps zu sehen. ich stimme dir also zu.

voxel an sich waren ja damals schon bei delta force (glaube beim 2. teil), outcast etc. eine hardwarelastige sache - die spiele liefen nur auf high end daddelkisten sauber und die grafik hinterlies bei mir eher gemischte gefühle: mal sahs von weitem toll aus, dann aber aus der nähe hässlich... jetzt sieht voxel space natürlich besser aus und wenn die voxel engines tatsächlich technisch mit tricks performance bieten und vergleichsweise nicht mehr so grässliche "fehler" wie damals haben, wird das ne recht interessante sache. ich bin mal gespannt.

Naja, das lässt sich aber auch wesentlich effizienter mit tessalation erreichen bzw. mit dem dazugehörigen displacement mapping.Entfernte Objekte könnten getrost mit bump maps (oder etwas nähere auch mit parallax occlusion maps) dargestellt werden, während sehr nahe Objekt mit displacement mapping und tessalation dargestellt werden, sodass die height-map zum tessalieren das Objekts genutzt wird.3
Das ist sogar streambar da die beziersurfaces nur sehr wenig speicherplatz benötigen und nur temporär ( und sehr schnell) in der GraKa expandiert werden um mit gerundeten surfaces (oberflächen) zu rendern.
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

Nuja - Effizienz...
Bei deinem Vorschlag hat jeder Pixel eine seine Koordinaten als Teil eines Polygons, seine Grundtextur, seine bump bzw. displacement map-ordinaten,...
Bei ner Voxelengine hat er seine Koordinaten und ne Farbe. Und der Übergang von einem Detaillevel zum nächsten, wie von ID geplant, ist auch wesentlich einfacher, als ein System, dass in drei verschiedenen Ebenen (tessliert, normal, parallaxbump) rendert, wobei ich mich Frage, ob das überhaupt natlos funktionieren kann, wenn ein Objekt sich über eine größere Bildtiefe erstreckt.
 
AW: Voxel-Rendering am Beispiel id-Tech-6 erläutert

...sondern nur texturierte Polygonblöcke, die dort die gleiche Funktion wie Voxel einnehmen!
Einige Minecraf-Klone benutzen aber "echte" Voxel!
 
Zurück