Atomontage: Zeigen Screenshots der 3D-Voxel-Engine die Zukunft der Spielegrafik?

ich glaub das problem an so einer engine wird vielmehr das entwickeln von solchen spielen, als dann die echtzeitberechnung bei uns zu hause

schon jetzt sind die entwicklungskosten extrem hoch, wer könnte sich dann solche qualität leisten?
da wäre "alles selbstmodellieren und dann dreidimensional einscannen" wesentlich einfacher, als das alles "von hand" zu modellieren
 
Hmm - gibts da jetzt irgendwelche Fortschritte im vergleich zu letztem Jahr, als das ganze noch primär mit seinen Physikeigenschaften beworben wurde?
"Atomare" Spiele-Engine in Entwicklung [Video des Tages]

Ah, das wars. Danke fürn Video-Link. :top:

Auszug YT-Kommentare:

Frage:
UserX schrieb:
i have a question: what are the system requirements for this techdemo with this grad of detail?
Antwort Entwickler:
AtomontageEngine (vor 2 Wochen) schrieb:
well currently the engine performs about 2-4x better than it did when I shot this video, so the requirements are way lower than this: Acer Aspire 7738G with a Intel C2D P7550 and nVidia GeForce GT 130M 1GB ... I can't even say how it would perform on a modern gaming PC except that it would perform pretty well :)
 
Das wäre schon hammer wenns bald ein paar Spiele mit der Engine geben würd!
Vor allem wenn man den Hardwareanforderungen glauben schenken darf wäre es ja für nen heutigen High-End PC ja gar kein probleme
 
ich glaub das problem an so einer engine wird vielmehr das entwickeln von solchen spielen, als dann die echtzeitberechnung bei uns zu hause

schon jetzt sind die entwicklungskosten extrem hoch, wer könnte sich dann solche qualität leisten?
da wäre "alles selbstmodellieren und dann dreidimensional einscannen" wesentlich einfacher, als das alles "von hand" zu modellieren

Das Problem sehe ich nicht. Nur weil es stark aussieht muss es ja nicht extrem schwierig zu modellieren sein. Viel machen bei den Bildern ja auch die Beleuchtung und die Materialeigenschaften aus. Und das sind eben Punkte, die nichts mit der Modellierung zu tun haben bzw. keinen gesteigerten Aufwand bedeuten. Und ob nun das Bauen eines Modells aus Millionen Voxeln schwieriger sein soll als das aus Hunderttausenden Polygonen, könnte ich auch nicht sicher beantworten. Vermutlich ließen sich die Modelle sogar recht schnell in das jeweils andere umwandeln. Und für Physik- und Beleuchtungsberechnungen können Voxel mitunter mehr Aufwand in der Berechnung, aber eben weniger in der "Logik" bedeuten.
 
Die Wüstenbilder sahen für mich nicht wirklich echt aus aber die anderen schon besonders der Beton :daumen:

Wie sieht es denn mit der Leistung aus? Also braucht es mehr, weniger oder ungefähr gleich viel Leistung der Grafikkarte ?
 
ich glaub das problem an so einer engine wird vielmehr das entwickeln von solchen spielen, als dann die echtzeitberechnung bei uns zu hause. [...] da wäre "alles selbstmodellieren und dann dreidimensional einscannen" wesentlich einfacher, als das alles "von hand" zu modellieren

Ist ja nicht nötig, da die Jungs auch einen "Voxelizer" entwickelt haben, der aus 3D Meshes Voxel-Objekte macht. Das sind dann zwar einfarbig gefüllte Voxel-Objekte, aber für die meisten Gegenstände sollte das voll und ganz reichen. Und den Rest kann man immer noch per Hand (teil-)modellieren.
 
Tolle Bilder, die zeigen wohin die Reise geht. Besonders Bild 10 hat mich beeindruckt. Der Rost auf dem Beton und die Kanten sehen sehr realistisch aus. Musste wirklich zwei drei mal hinschauen um zu begreifen daß, das nicht echt ist. :what::daumen:

Sehe ich das richtig, das mit dieser Methode die Kantenglättung hinfällig wird? Und auch das AF? Meine hab schon nen bisschen Ahnung was das angeht, aber das blicke ich nicht richtig. :(

Nein, da siehst du was falsch. Kantenglättung ist bei allen aktuell gebräuchlichen Rendermethoden unumgänglich, um ein "glattes" Bild zu erhalten. An der Rendermethode ändert sich hier im Vergleich zu aktuellen Engines wenig, es ist eben die Geometrietechnik, die hervor sticht. Normalerweise wird die Geometrie in Spielen über Poligonnetze generiert - der Hauptnachteil dieser Netze ist, dass sie eben naturgemäß scharfe Kanten haben und eckig sind, in der Realität jedoch gibt es viele runde Objekte, die so schwer zu realisieren sind. Tessellation soll hier Abhilfe schaffen.
Der Vorteil an Voxeln ist, dass es komplexe Volumina sind, deren Geometrie stets pixelgenau auf dem Bildschirm abgebildet werden kann. Die Auflösung der Geometrie ist stets gleich hoch, sie wird nur "monitorgerecht" dargestellt. So muss man nicht unmengen an Rechenleistung für eine unglaublich feine Zerstückelung von Flächen verwenden, wenn man runde Objekte darstellen will, das läuft alles über den renderer. Zudem gibt es noch weitere Vorteile, die im Text gegannt werden. Besonders in der Medizin sind Voxel quasi nicht mehr weg zu denken, da man mit ihnen sehr einfach und effizient Volumen darstellen kann. So ist es beispielsweise kein Problem, den Scan eines Röntgengerätes auf den Computer zu übertragen und in 3D zu betrachten - samt der Möglichkeit, das virtuelle Modell aufzuschneiden und den Querschnitt zu betrachten.
Mit Kantenglättung hat das aber nicht wirklich viel zu tun. Nach wie vor spuckt der Renderer ein Rasterbild aus. Bei einem einfachen Rendervorgang ohne zusätzliches Sampling wird jeder Pixel nur ein Mal abgetastet - bei Kantenglättung jeglicher Art muss aber zusätzliches Sampling erfolgen, damit die Bildpunkte noch unter der "Pixelebene" aufgelöst werden können.
EDIT:
Das Problem sehe ich nicht. Nur weil es stark aussieht muss es ja nicht extrem schwierig zu modellieren sein. Viel machen bei den Bildern ja auch die Beleuchtung und die Materialeigenschaften aus. Und das sind eben Punkte, die nichts mit der Modellierung zu tun haben bzw. keinen gesteigerten Aufwand bedeuten. Und ob nun das Bauen eines Modells aus Millionen Voxeln schwieriger sein soll als das aus Hunderttausenden Polygonen, könnte ich auch nicht sicher beantworten. Vermutlich ließen sich die Modelle sogar recht schnell in das jeweils andere umwandeln. Und für Physik- und Beleuchtungsberechnungen können Voxel mitunter mehr Aufwand in der Berechnung, aber eben weniger in der "Logik" bedeuten.
Ich denke nicht, dass es schwer ist, ein Modell mit Voxeln zu erstellen, im Endeffekt kann wohl jedes Format in Voxels umgewandelt werden, da diese ja quasi nur "reine" Geometriedaten sind, keine Poligonskelette oder Ähnliches. Ich kann mir aber gut vorstellen, dass es einfacher sein würde, beispielsweise NURBS in Voxels umzuwandeln, als Poligonnetze, da NURBS auch theoretisch eine unendlich genaue Abtastung besitzen. Wahrscheinlich müsste man für die richtige Umwandlung eines Poligonkörpers erst für jedes Face eine Annäherung über NURBS erstellen, bevor man es umwandelt, aber das ist wohl eine andere Geschichte. Ich glaube jedenfalls, dass Voxels in Zukunft noch eine große Rolle spielen werden, allen Voran natürlich in Volumenkörpern wie Wolken.
 
Zuletzt bearbeitet:
schon jetzt sind die entwicklungskosten extrem hoch, wer könnte sich dann solche qualität leisten?
da wäre "alles selbstmodellieren und dann dreidimensional einscannen" wesentlich einfacher, als das alles "von hand" zu modellieren

Die Leute von unlimited detail machen das bereits.


Das wäre schon hammer wenns bald ein paar Spiele mit der Engine geben würd!
Vor allem wenn man den Hardwareanforderungen glauben schenken darf wäre es ja für nen heutigen High-End PC ja gar kein probleme

Solange du dich mit der im Video genutzten Auflösung (ich schätze mal x480er?) zufriedengibts: Nö, wäre kein Problem.


Das Problem sehe ich nicht. Nur weil es stark aussieht muss es ja nicht extrem schwierig zu modellieren sein. Viel machen bei den Bildern ja auch die Beleuchtung und die Materialeigenschaften aus. Und das sind eben Punkte, die nichts mit der Modellierung zu tun haben bzw. keinen gesteigerten Aufwand bedeuten.

Huh? Die Beleuchtung ist durchschnittlich und wenn du für jedes noch so kleine Detail eines Objektes (und dessen Inneres!) in Zukunft auch noch die Materialeigenschaften definieren musst, wo bislang eine einfache Tapete reichte, dann bedeutet das ganz sicher einen Mehraufwand.

Und ob nun das Bauen eines Modells aus Millionen Voxeln schwieriger sein soll als das aus Hunderttausenden Polygonen, könnte ich auch nicht sicher beantworten.

Wenn deine Voxel nicht einfach nur eine einheitliche, detaillose Fläche ergeben sollen, die du mit einem Polygonrenderer effizienter hättest darstellen können, dann steigt der Modellierungsaufwand wohl um den Faktor 10.

Und für Physik- und Beleuchtungsberechnungen können Voxel mitunter mehr Aufwand in der Berechnung, aber eben weniger in der "Logik" bedeuten.

Beleuchtungsberechnungen hängen allein vom Detailgrad der Objekte und der Zahl der Lichtquellen ab - und werden somit mit steigenden Details (z.B. solche, für die sich der Einsatz von Voxeln lohnt) aufwendiger. Wie "mehr Physikberechnungen" und "weniger Logik" zusammenpasst, ist mir komplett unklar.


Wie sieht es denn mit der Leistung aus? Also braucht es mehr, weniger oder ungefähr gleich viel Leistung der Grafikkarte ?

Da Voxelrenderer bis auf weiteres nicht/kaum von der Grafikkarte beschleunigt werden, belasten sie diese auch nicht.
CPU-Anforderungen wären da ein ganz anderes Thema...


Wenn weltweit unterschiedliche Gruppen an den gleichen Prinzipien arbeiten, kann es ja A nicht so verkehrt sein und B wundert es mich warum man immer nur tech demos, screenshots etc, aber nie realtime videos sieht?

Weltweit versuchen unterschiedliche Gruppen einen Krieg anzuzetteln - ist das deswegen eine gute Idee?

Es gibt jedenfalls wesentlich mehr Teams, die an Polygonrenderern arbeiten, als an der einzigen direkten Alternative, und diese legen sogar regelmäßig ganze Spiele vor.
Was verstehst du eigentlich unter "realtime video"? Die Vorführungen von unlimited und atomontage sind i.d.R. in Echtzeit.
 
Huh? Die Beleuchtung ist durchschnittlich und wenn du für jedes noch so kleine Detail eines Objektes (und dessen Inneres!) in Zukunft auch noch die Materialeigenschaften definieren musst, wo bislang eine einfache Tapete reichte, dann bedeutet das ganz sicher einen Mehraufwand.

Als so schwierig sehe ich das gar nicht an. Du erstellst einen Körper und definierst, woraus er bestehen soll. Somit sind alle Voxel definiert. Du brauchst ja eben nicht jedes Voxel einzeln definieren.

Wenn deine Voxel nicht einfach nur eine einheitliche, detaillose Fläche ergeben sollen, die du mit einem Polygonrenderer effizienter hättest darstellen können, dann steigt der Modellierungsaufwand wohl um den Faktor 10.

Faktor 10 ist aber auch nur ein Schuss ins Blaue, oder? Bedenke, dass auch alle heutigen Polygonrenderer eine enorme Entwicklung hinter sich haben und damals noch viele Dinge von Hand gelöst werden mussten. So gesehen müssen auch bei Voxelrenderern nur die nötigen Automatisierungen entwickelt werden. /* Edit: Bedenke auch, dass heutige Texturen nicht unbedingt "handgemalt" sind. Holzstrukturen z.B. lassen sich auch durch einen Algorithmus erzeugen. Und ob ich das nun für eine Tapete mach oder für ein Volumen ist nur ein wenig mehr Mathematik. */

Beleuchtungsberechnungen hängen allein vom Detailgrad der Objekte und der Zahl der Lichtquellen ab - und werden somit mit steigenden Details (z.B. solche, für die sich der Einsatz von Voxeln lohnt) aufwendiger. Wie "mehr Physikberechnungen" und "weniger Logik" zusammenpasst, ist mir komplett unklar.

Weniger Aufwand in der Logik(!, nicht weniger Logik) soll bedeuten, dass einige Sachen mit Voxel einfach "natürlicher" sind. Dadurch, dass Du Elemente tatsächlich aus Partikeln aufbaust und nicht nur ein hohles, zunächst statisches Modell mit Tapeten, wären Deformationen, Abtragungen, Zerteilungen usw. wenig problematisch. Ein Polygonwürfel, der halbiert wird, bestünde erst einmal aus zwei Hohlschalen. Die Schnittkanten müssen nun aufgefüllt werden. Bei Voxeln ist der Körper massiv und die Schnittkante zwangsläufig vorhanden. Definierst Du eine Masse für die Voxel, ist auch automatisch die Gesamtmasse definiert. Mag das bei homogenen Körpern bei Polygonen ebenso einfach sein, wären inhomogene Körper mit Voxeln mitunter leichter definiert. Definierst Du Kohäsionskräfte für die Voxel wären auch schnell definiert, ob und wie viele Splitter bei der Teilung des Würfels auftreten. Machst Du die Voxel klein genug, könntest Du Körper auf atomarer oder molekularer Ebene simulieren. Nicht nur so aussehen lassen, sondern sich auch so verhalten lassen.
Wie gesagt, der Berechnungsaufwand würde bei sowas natürlich extrem steigen. Aber der Erstellungsaufwand würde sinken, da viele Eigenschaften automatisch vorgegeben sind, wenn Du auf eine Datenbank mit vordefinierten Voxeln zurückgreifen kannst. Baue ich z.B. etwas aus "Eisenvoxel" auf, wären Masse, Deformierbarkeit, Aussehen u.m. gegeben und korrekte physikalische Szenarien, die weit über die heute eher üblichen Protz-Effekte hinausgehen, einfacher umsetzbar.

Edit 2:
Schau am besten einmal das Video, falls noch nicht geschehen. Der Sprecher erwähnt da genau das, was ich versucht habe auszudrücken. :)
 
Zuletzt bearbeitet:
Als so schwierig sehe ich das gar nicht an. Du erstellst einen Körper und definierst, woraus er bestehen soll. Somit sind alle Voxel definiert. Du brauchst ja eben nicht jedes Voxel einzeln definieren.

Hast du schon mal ein komplexes 3D Modell von 0 aus erstellt?
Deine beiden "einfachen" Schritte können von Wochen, in Extremfällen Monate an Arbeit bedeuten, wenn kein Minecraft-Look dabei rauskommen soll.

Faktor 10 ist aber auch nur ein Schuss ins Blaue, oder?

Faktor10 ist ziemlich genau passend, wenn man den von dir genannten Sprung von "100.000den" auf "Millionen" machen will. Ob ich die Position eines weiteren Voxels im Modell festlegen möchte, oder ob ich einen weiteren Eckpunkt platziere, der mit zwei benachbarten ein neues Polygon aufspannt - der Aufwand ist der gleiche und bei 10 mal mehr Elementen habe ich ihn ~10 mal häufiger. (Bei einigen einfachen Objekten wie z.B. einer perfekten Kugel gibt es natürlich keinen Unterschied, weil die Aufteilung automatisch möglich ist. Aber wenn ich ein unregelmäßig geformtes, detailiertes Objekt -z.B. eine Spielfigur habe- dann gibt es keine vereinfachte Formel, die die Form der Details beschreiben könnte. Die müssen alle von Hand kreeirt werden.)

Edit: Bedenke auch, dass heutige Texturen nicht unbedingt "handgemalt" sind. Holzstrukturen z.B. lassen sich auch durch einen Algorithmus erzeugen. Und ob ich das nun für eine Tapete mach oder für ein Volumen ist nur ein wenig mehr Mathematik. */

Das ist nur ein wenig mehr Mathematik, ja. Es ist aber auch genauso wenig Zugewinn an Bildqualität. Willst du aus deinem Stück Holz ein detailliertes Werkstück machen, ist das heute wie morgen eine aufwendige Arbeit - und je detailierter, desto mehr. Die meisten Spiele bleiben mit ihren Polygonzahlen aber schon heute merklich unter dem, was technisch möglich ist (hohe Polygoncounts erzielt man scheinbar nur noch über Partikeleffekte) und verwenden stattdessen lieber Texturen, die oftmals keineswegs individuell generiert sind, sondern eher copy&paste oder gleich kompletter Matsch. In einem Szenario, in dem die Details bereits durch den Modellierungsaufwand limitiert werden, bringt dich eine neue Engine nicht weiter.

Weniger Aufwand in der Logik(!, nicht weniger Logik) soll bedeuten, dass einige Sachen mit Voxel einfach "natürlicher" sind. Dadurch, dass Du Elemente tatsächlich aus Partikeln aufbaust und nicht nur ein hohles, zunächst statisches Modell mit Tapeten, wären Deformationen, Abtragungen, Zerteilungen usw. wenig problematisch. Ein Polygonwürfel, der halbiert wird, bestünde erst einmal aus zwei Hohlschalen. Die Schnittkanten müssen nun aufgefüllt werden. Bei Voxeln ist der Körper massiv und die Schnittkante zwangsläufig vorhanden. Definierst Du eine Masse für die Voxel, ist auch automatisch die Gesamtmasse definiert. Mag das bei homogenen Körpern bei Polygonen ebenso einfach sein, wären inhomogene Körper mit Voxeln mitunter leichter definiert. Definierst Du Kohäsionskräfte für die Voxel wären auch schnell definiert, ob und wie viele Splitter bei der Teilung des Würfels auftreten. Machst Du die Voxel klein genug, könntest Du Körper auf atomarer oder molekularer Ebene simulieren. Nicht nur so aussehen lassen, sondern sich auch so verhalten lassen.
Wie gesagt, der Berechnungsaufwand würde bei sowas natürlich extrem steigen. Aber der Erstellungsaufwand würde sinken, da viele Eigenschaften automatisch vorgegeben sind, wenn Du auf eine Datenbank mit vordefinierten Voxeln zurückgreifen kannst. Baue ich z.B. etwas aus "Eisenvoxel" auf, wären Masse, Deformierbarkeit, Aussehen u.m. gegeben und korrekte physikalische Szenarien, die weit über die heute eher üblichen Protz-Effekte hinausgehen, einfacher umsetzbar.

Edit 2:
Schau am besten einmal das Video, falls noch nicht geschehen. Der Sprecher erwähnt da genau das, was ich versucht habe auszudrücken. :)

Das Video ist mir bekannt, aber der Sprecher -wie auch du- verkennen bzw. ignorieren eben, dass wir heute nicht einen Mangel an eisernen, spaltbaren Objekten deswegen sehen, weil es zu aufwendig wäre, einem Polygonobjekt die Eigenschaften von Eisen zuzuweisen und an einer Trefferstelle ein neues Polygon einzufügen. Den Mangel haben wir, weil eine zerstörbare Spielwelt innerhalb kürzester Zeit für einen extremen Renderaufwand sorgen kann, weil sie eine Katastrophe fürs Balancing ist und weil es ein enormer Aufwand wäre, für jedes einzelne Element in der Spielwelt alle Eigenschaften zu definieren (geschweige, denn sie auch noch ständig zu berechnen - wie in deinem Voxelbeispiel). Und da ist es egal, ob ich eine Felswand erschaffe, indem ich die Landschaftspolygone mit einer Felstextur bepinsele, oder in dem ich sie aus "Fels"Voxeln zusammenbaue. Die Eigenschaften großer, einheitlicher Dinge bekommst du auch in heutigen Engines leicht unter Kontrolle. Einen Vorteil bieten Voxel immer und nur dann, wenn es hochdetailiert werden soll und man alles einzeln macht - und bereit ist, es auch alles einzeln zu berechnen.
 
Hast du schon mal ein komplexes 3D Modell von 0 aus erstellt?
Deine beiden "einfachen" Schritte können von Wochen, in Extremfällen Monate an Arbeit bedeuten, wenn kein Minecraft-Look dabei rauskommen soll.

Nein, ich habe damals nur einfache 3D-Modelle gestaltet.
Ansonsten: Ja, und? Darum ging es ja nicht. Du sagtest, dass es im Vergleich zu einer "einfachen Tapete" einen Mehraufwand bedeuten würde, für jedes noch so kleine Details und das Innere eines Objektes Materialeigenschaften festzulegen. Ich habe dagegen gehalten, dass Du ja nicht jedes einzelne Voxel definieren musst, sondern nur z.B. den Körper. Zudem sind moderne Texturen mit ihren zahlreichen XY Maps auch alles andere als "einfach", insbesondere nicht unbedingt "einfacher".

Faktor10 ist ziemlich genau passend, wenn man den von dir genannten Sprung von "100.000den" auf "Millionen" machen will. Ob ich die Position eines weiteren Voxels im Modell festlegen möchte, oder ob ich einen weiteren Eckpunkt platziere, der mit zwei benachbarten ein neues Polygon aufspannt - der Aufwand ist der gleiche und bei 10 mal mehr Elementen habe ich ihn ~10 mal häufiger. (Bei einigen einfachen Objekten wie z.B. einer perfekten Kugel gibt es natürlich keinen Unterschied, weil die Aufteilung automatisch möglich ist. Aber wenn ich ein unregelmäßig geformtes, detailiertes Objekt -z.B. eine Spielfigur habe- dann gibt es keine vereinfachte Formel, die die Form der Details beschreiben könnte. Die müssen alle von Hand kreeirt werden.)

Die Rechnung sehe ich als zu einfach an, da Polygone keine einheitliche Größe haben. Denke Dir einen einfachen Tetraeder, also eine Pyramide mit dreieckiger Grundfläche, wenn man so will. Das Polygonmodell bleibt immer gleich schwierig zu erstellen, da es unabhängig von der Größe vier Ecken hat. Die Anzahl der Voxel hingegen hängt von deren Größe bzw. der Größe des Tetraeders ab. Mit einem weiteren Eckpunkt kannst Du zudem das Tetraeder einfach um ein recht beliebig großes Volumen verändern, während das Setzen eines zusätzlichen Voxels bei üblichen Objektgrößen nicht viel am Volumen ändert. Allerdings hatte u.a. schon cPT_cAPSLOCK erwähnt, dass sich die unterschiedlichen Modelle (NURBS, Polygone, Voxel) relativ problemlos ineinander umrechnen lassen. Somit könntest Du obigen Tetraeder auch schnell und einfach als Polygonmodell erzeugen und später in Voxel umrechnen lassen.
Zudem: Eine Kugel beispielsweise wird ja auch nicht als Polygonmodell erstellt, zumindest nicht von Hand, da würdest Du ja blöde werden. Entweder gibt es da fertige "Primitives" oder Du gestaltest sie im Handumdrehen per NURBS. Und dann sind wir wieder bei der beliebigen Umrechnung.

Das ist nur ein wenig mehr Mathematik, ja. Es ist aber auch genauso wenig Zugewinn an Bildqualität. Willst du aus deinem Stück Holz ein detailliertes Werkstück machen, ist das heute wie morgen eine aufwendige Arbeit - und je detailierter, desto mehr. Die meisten Spiele bleiben mit ihren Polygonzahlen aber schon heute merklich unter dem, was technisch möglich ist (hohe Polygoncounts erzielt man scheinbar nur noch über Partikeleffekte) und verwenden stattdessen lieber Texturen, die oftmals keineswegs individuell generiert sind, sondern eher copy&paste oder gleich kompletter Matsch. In einem Szenario, in dem die Details bereits durch den Modellierungsaufwand limitiert werden, bringt dich eine neue Engine nicht weiter.

Das Video ist mir bekannt, aber der Sprecher -wie auch du- verkennen bzw. ignorieren eben, dass wir heute nicht einen Mangel an eisernen, spaltbaren Objekten deswegen sehen, weil es zu aufwendig wäre, einem Polygonobjekt die Eigenschaften von Eisen zuzuweisen und an einer Trefferstelle ein neues Polygon einzufügen. Den Mangel haben wir, weil eine zerstörbare Spielwelt innerhalb kürzester Zeit für einen extremen Renderaufwand sorgen kann, weil sie eine Katastrophe fürs Balancing ist und weil es ein enormer Aufwand wäre, für jedes einzelne Element in der Spielwelt alle Eigenschaften zu definieren (geschweige, denn sie auch noch ständig zu berechnen - wie in deinem Voxelbeispiel). Und da ist es egal, ob ich eine Felswand erschaffe, indem ich die Landschaftspolygone mit einer Felstextur bepinsele, oder in dem ich sie aus "Fels"Voxeln zusammenbaue. Die Eigenschaften großer, einheitlicher Dinge bekommst du auch in heutigen Engines leicht unter Kontrolle. Einen Vorteil bieten Voxel immer und nur dann, wenn es hochdetailiert werden soll und man alles einzeln macht - und bereit ist, es auch alles einzeln zu berechnen.

Wie schon gesagt: Der Modellierungsaufwand muss durch Voxel nicht zwangsläufig steigen. Du baust ein Modell schließlich nicht wie bei Minecraft Klotz für Klotz auf.
Hinzu kommt, dass es mir hier nicht um Grafik geht. Polygone mögen geeignet sein, um eine Darstellung einer Welt zu simulieren, Voxel aber sind geeignet, eine Welt zu simulieren. Es geht dabei eben nicht nur um die Optik, sondern die weiteren Effekte, die damit verbunden sind. Und das ist nicht nur die Zerstörbarkeit, sondern beispielsweise das generelle, automatische Vorhandensein physikalischer Eigenschaften der Objekte. Im extremsten Fall würdest Du tatsächlich Voxel auf atomarer Ebene mit eben deren Eigenschaften haben (und damit natürlich wohl nicht zu bewältigen Rechenaufwand erzeugen). Aber selbstverständlich ist der Aufwand auch bei Voxeln skalierbar, bis Du dann meinetwegen Minecraft-Verhältnisse hast. Du kannst ja auch damit "unzerstörbare" Modelle erschaffen, Teile der Eigenschaften verändern oder abschalten.
 
Du gehst weiterhin von primitiven Grundformen aus. Natürlich ist eine Pyramide kinderleicht zu erstellen. Und natürlich ergibt sich eine Kugel direkt aus ihrem Primitiv (respektive sie ist eins) - und es kann mir als Designer wurscht sein, in welcher Engine sie am Ende landet, weil die Umwandlung automatisch geht.
Nur:
Mit Kugeln und Pyramiden konnte man vor 30 Jahren Leute hinterm Ofen vorlocken. Aber dafür braucht(e) man auch keine Voxel, Pyramiden lassen sich mit Polygonen wesentlich effizienter berechnen - und das gilt für die Grafik genauso, wie für die Physik,etc. . Solange dein Objekt nur eine oder wenige Sätze Eigenschaften hat, ist es viel, viel, viel effizienter, diese dem Objekt direkt zuzuweisen, anstatt das Objekt aus Einzelteilen mit eben diesen Eigenschaften zu kreieren und diese einzeln zu berechnen. Alle Flächen, die du bei der Erstellung leicht beschreiben/generieren kannst, weil sie sich eben auf einen beschränkten Satz Primitive und Eigenschaften runterbrechen lassen, kannst du mit genau diesen Parametern auch effizient in der fertigen (Polygon-)Engine generieren. Das ist im wesentlichen der Hintergedanke von Displacement Mapping und Tesselation.

Voxel machen erst dann Sinn, wenn du sie auch nutzt und nicht haufenweise identische Voxel in einer Fläche (egal ob glatt, gewölbt oder in einer anderen, leicht durch Formeln als NURB generierbare Form) hast. Sondern unterschiedliche Eigenschaften (sei es nun Physik oder Aussehen/Form) mit einer Detailverliebt definierst, bei der du in Polygongrafik bei maximal 3-5 Pixeln pro Polygon angelangt wärst - und bei Physikberechnungen die eher einem Partikelsystem denn einer Festkörperphysik gleichen würden, weil die Entitäten so klein sind. Solch komplexe Systeme verarbeitet man lieber als Voxel - denn eine Voxelengine kann konsequent darauf optimiert werden, viele kleine Dinger individuell zu behandeln.
Aber dazu muss man diese eben auch individuell erstellen. In der Medizin ist das einfach, da liefert das der Kernspin. Genau wie der 3D Scanner von Unlimiteddetail. Oder die Deformierungen der (einfachen, polygonfreundlichen) Ausgangswelt in der Atomontage Demo. Aber nichts von all dem hätte Platz in einem aktuellen Spiel, insbesondere nicht, wenn dies auch auf aktuellen Rechnern laufen soll.
 
Naja, dafür das Voxel ja schon einige Jahre aufm Buckel hat und lange vernachlässigt wurde, sieht das ja schonmal ganz gut aus. :daumen:
Was mich allerdings stört ist dieses übertriebene Deept of Field, was man leider auch bei vielen heutigen Titeln sieht! Da habe ich immer das Gefühl ich hätte was auf der Linse, und kann nicht dann auch nicht lange hinschauen!!! :daumen2:
Das DoF ist in diesem Fall notwendig um "verpixelte" bzw. "vervoxelte" Bereiche durch LoD-Sprünge zu verstecken.
Zudem wird, wie in einigen Screenshoots zu sehen, ein Bloom-Shader bei nahen Objekten verwendet um zu vertuschen dass der Renderer auf eine niedrigere LoD-Stufe gewechselt hat, weil dem Renderer die Ressourcen ausgegangen sind.
Quelle: (Letzter Absatz) Atomontage Engine - Dev Blog

Prinzipiell halte ich sowas wie Voxelgrafik für erstrebenswert, da es (zumindest in meinem Kopf) eine realistischere Herangehensweise, also keine hohlen Gitterobjekte mit einseitig durchsichtigen Tapeten beklebt werden, sondern Objekte eben aus Teilchen bestehen (grob formuliert). Das größte Problem, das gegen den (baldigen) Einsatz einer solchen Engine spricht, wäre aber vermutlich nicht einmal die Hardware, sondern eher der gewaltige Umstieg, den solch eine Engine für die Programmierung bedeuten würde. Zahlreiche Erfahrungen bisheriger Modellierung wären nicht übertragbar, es wäre quasi nicht "abwärtskompatibel". Und das ist ja eine der Hauptblockaden in der Computerwelt überhaupt.
Für die Entwickler wäre das wohl tatsächlich ein größerer Umstieg - ebenso für die Animierer, da bei Voxel-Animierung gerne mal Lücken entstehen.
Für die Highpoly-Modeller dürfte es keine so große Rolle spielen, da diese mittlerweile auch sehr häufig mit Sculpting-Programmen arbeiten, die intern sowieso mit Voxeln arbeiten.

[...]da wäre "alles selbstmodellieren und dann dreidimensional einscannen" wesentlich einfacher, als das alles "von hand" zu modellieren
Bei Voxel-Engines ist es üblich, ein Objekt in der gleichen Qualitätsstufe wie heute zu modellieren und weitere Details prozedural (on-the-fly via angepasster Algorithmen) zu generieren.
3D-Modelle heutiger Spiele werden in wesentlich höherer Polygon-Zahl erstellt, als sie letztendlich im Spiel enthalten sind - sofern würde sich auch hier nicht allzu viel ändern.
Schliesslich werden die höher aufgelösten Modelle fürs Baking benötigt, um Normal-, Displacement-Maps usw. zu erstellen, die wiederum Details erzeugen sollen, die man bei Voxel-Engines wegen des besseren LoDs von Haus aus hat :).
Hier ein Beispiel (nichts wurde modelliert, alles prozedural generiert): Procedural Voxel Terrain - YouTube

Faktor10 ist ziemlich genau passend, wenn man den von dir genannten Sprung von "100.000den" auf "Millionen" machen will. Ob ich die Position eines weiteren Voxels im Modell festlegen möchte, oder ob ich einen weiteren Eckpunkt platziere, der mit zwei benachbarten ein neues Polygon aufspannt - der Aufwand ist der gleiche und bei 10 mal mehr Elementen habe ich ihn ~10 mal häufiger. (Bei einigen einfachen Objekten wie z.B. einer perfekten Kugel gibt es natürlich keinen Unterschied, weil die Aufteilung automatisch möglich ist. Aber wenn ich ein unregelmäßig geformtes, detailiertes Objekt -z.B. eine Spielfigur habe- dann gibt es keine vereinfachte Formel, die die Form der Details beschreiben könnte. Die müssen alle von Hand kreeirt werden.)
Lowpoly-Modeller setzen vll. jeden Vertex einzeln, aber von Highpoly-Modellern bei Spielefirmen erwarte ich eigentlich eher, dass sie auf Sculpting oder ähnliche Werkzeuge setzen, statt Vertex für Vertex einzeln zu platzieren.
Und selbst für Anno 2070, bei dem Modelle lediglich von oben in größerer Entfernung sichtbar sind, wurden für die Highpoly-Varianten uber 900.000 (also fast 1 mio.) Polys verbraten.
Quelle: (Absatz 7 u. 11, "ganze 2000 Polygone in LOD2" u. "Das Highpoly-Modell hat etwa die 370-fache Polygonanzahl") Entwicklertagebuch

Grüße
 
Zuletzt bearbeitet:
Zurück