Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

91

14.08.2011, 13:13

Was ich etwas naiv finde, ist dass er sagte, dass es komplett auf der CPU laufen kann.
Aber noch kein bischen KI, Physik, Netzwerk oder gar Gameplay zu sehen ist.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

92

14.08.2011, 13:26

Naja, heute haben wir überall Multicores.
Und da das Rendering nur auf einem Kern läuft, wären die anderen für den Rest übrig.

chrisslfissl

Treue Seele

Beiträge: 186

Wohnort: Bavaria

  • Private Nachricht senden

93

14.08.2011, 13:44

Ganz nach dem Prinzip:

Never touch/change a running System -.-

Dass Crytec jetzt wo sie ihre neue Engine haben was gegen diese Technik haben ist mir klar aber
die entwicklung dauert ja sowiso noch mindestens 5-10 Jahre.
Ich bin offen für neuerungen ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »chrisslfissl« (14.08.2011, 13:51)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

94

14.08.2011, 15:25

Die Frage ist inwiefern sich diese Technik überhaupt für Hardwarebeschleunigung eignet. Die immense Power moderner Grafikkarten erwächst aus der Tatsache dass Rasterisierung ein fast perfekt parallelisierbarer Prozess ist. Und wie gesagt sehe ich da ein potentielles Problem. Außerdem sehe ich noch ein Problem: UD ist garantiert kein immediate-Mode Prozess. Rasterisierung dagegen schon. Meinem Rasterizer kann ich einfach die Polygone hinwerfen die er zeichnen soll und fertig. Raytracing und wohl auch Unlimited Detail benötigen naturgemäß globale Information um überhaupt zu funktionieren

Du meinst de fakto also wie Vertex-Buffer-Objects, die auch heute schon für Terrain benutzt werden?

Also ich kenn genügend Leute die sich beruflich sehr ernsthaft mit Voxeln beschäftigen (wie gesagt, z.B. in medizinischen Anwendungen ist Voxelgrafik ja sowieso praktisch immer schon Standard). Und auch Carmack z.B. sagt ja in dem oben verlinkten Interview dass er sich in seiner Zeit schon immer wieder mit Voxeln beschäftigt hat, aber nie was rauskam was sich wirklich hätte durchsetzen können.

Volumendaten sind nicht immer gleich auch als Voxel gerendert. Ich kenne jemanden, der an Kernspins und sowas herum-programmiert und dort machen sie immer wieder Polygone daraus.

Fraglich ob statisches Gelände die Zukunft ist ;) Kombinieren halte ich auch für potentiell problematisch. Ganz abgesehen davon dass die Komplexität der Software und Contentpipeline sich dadurch verdoppelt bedeutet das einen Wechsel zwischen zwei komplett unterschiedlichen Kontexten in jedem Frame. Auch stelle ich mir UD potentiell sehr sehr Bandbreitenintensiv vor.

Muss nicht der Fall sein, wenn es gleich einmal in den Video RAM gepackt wird. Der Punkt mit dem statischen Gelände ist schon eher zu überdenken. Wenn man sich allerdings heutige Spiele so ansieht, dann sind wie viele davon mit statischem Terrain? Irgendwie fast alle. Und ich sehe auch nicht, wieso sich das für viele Genres ändern sollte, da Veränderung der Umgebung für diese nicht relevant ist. Details hingegen sind für fast jedes Genre interessant, welches auch auf 3D aufbaut.

Und wie ich schon sagte: Alle Ansätze haben Vor- und Nachteile und warum sollte man nicht die Vorteile aller Varianten sinnvoll kombinieren (können)? Lösbar ist alles. Komplexität sollte angesichts der wie viel Millionen Transistoren in einer heutigen Grafikkarte genau eine Rolle spielen? Wenn die Hersteller das gebacken bekommen, dann sollte doch wohl UD jetzt auch nicht gerade eine große Herausforderung sein. Dass sie sich dagegen wehren werden, weil das Konkurrenz und eine Umstellung bereits so lange ausgetüftelter Hardware und Oligopolstellungen erfordert, DAS sehe ich viel eher als ein Problem. Niemand lässt sich gern sagen: "Wisst ihr was? Ich kann etwas besser in Software als ihr mit euren Hardware-Beschleunigern."
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (14.08.2011, 15:31)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

95

14.08.2011, 15:59

Die Frage ist inwiefern sich diese Technik überhaupt für Hardwarebeschleunigung eignet. Die immense Power moderner Grafikkarten erwächst aus der Tatsache dass Rasterisierung ein fast perfekt parallelisierbarer Prozess ist. Und wie gesagt sehe ich da ein potentielles Problem. Außerdem sehe ich noch ein Problem: UD ist garantiert kein immediate-Mode Prozess. Rasterisierung dagegen schon. Meinem Rasterizer kann ich einfach die Polygone hinwerfen die er zeichnen soll und fertig. Raytracing und wohl auch Unlimited Detail benötigen naturgemäß globale Information um überhaupt zu funktionieren

Du meinst de fakto also wie Vertex-Buffer-Objects, die auch heute schon für Terrain benutzt werden?

Mit VBOs ist das vermutlich nicht vergleichbar. Du brauchst wohl eine große Datenstruktur die die gesamte Szene enthält. Und jede Änderung daran wird irgendeine Form von Sortierung erfordern. Und die Datenmengen über die wir hier reden sind sicherlich nicht gering.

Also ich kenn genügend Leute die sich beruflich sehr ernsthaft mit Voxeln beschäftigen (wie gesagt, z.B. in medizinischen Anwendungen ist Voxelgrafik ja sowieso praktisch immer schon Standard). Und auch Carmack z.B. sagt ja in dem oben verlinkten Interview dass er sich in seiner Zeit schon immer wieder mit Voxeln beschäftigt hat, aber nie was rauskam was sich wirklich hätte durchsetzen können.

Volumendaten sind nicht immer gleich auch als Voxel gerendert. Ich kenne jemanden, der an Kernspins und sowas herum-programmiert und dort machen sie immer wieder Polygone daraus.

Ja, mir ist durchaus klar dass es nicht nur Voxel gibt. Aber wir reden hier von Voxeln und Hintergrund meiner Aussage war, aufzuzeigen dass es eben wohl nicht so ist dass sich "mit Voxeln auch damals keiner ernsthaft beschäftigt hat"...

Komplexität sollte angesichts der wie viel Millionen Transistoren in einer heutigen Grafikkarte genau eine Rolle spielen? Wenn die Hersteller das gebacken bekommen, dann sollte doch wohl UD jetzt auch nicht gerade eine große Herausforderung sein.

Worums mir ging: Viele Millionen Transistoren helfen dir nix wenn du sie nicht auslasten kannst ;)

Naja, heute haben wir überall Multicores.
Und da das Rendering nur auf einem Kern läuft, wären die anderen für den Rest übrig.

Ich sehe ein Problem eher darin dass das Rendering nur auf einem Kern läuft, denn bei Quadcores wirds nicht bleiben ;)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

96

14.08.2011, 16:03

Fraglich ob statisches Gelände die Zukunft ist ;) Kombinieren halte ich auch für potentiell problematisch. Ganz abgesehen davon dass die Komplexität der Software und Contentpipeline sich dadurch verdoppelt bedeutet das einen Wechsel zwischen zwei komplett unterschiedlichen Kontexten in jedem Frame.

Worums mir ging: Viele Millionen Transistoren helfen dir nix wenn du sie nicht auslasten kannst ;)

Dann hast Du Dich allerdings sehr... ungeschickt ausgedrückt, wenn es dir nicht um mehr Komplexität ging, sondern um weniger und die GPU dann immer auf idle ist. 8|
Btw, wo ist das Problem, wenn die GPU idle und nicht ausgelastet ist? Kann man dann nicht einfach mehr dazu packen und schon ist sie es? Irgendwie sind mir Deine beiden Aussagen etwas unklar.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

97

15.08.2011, 00:15

Du vermischt da einige meiner Aussagen die nichts miteinander zu tun haben ;)

Ich sagte wenn du beide Techniken kombinieren willst verdoppelt sich die Komplexität der Software und Contentpipeline, da du dann ein System hast in dem zwei grundverschiedene Techniken, die auf gegensätzlichen Prinzipien basieren und völlig verschiedenen Input benötigen zusammenarbeiten müssen. Damit wollte ich ausdrücken dass man nicht unbedingt alles "einfach kombinieren" kann und am Ende auch was wirklich brauchbares rauskommt.

Die andere Aussage bezüglich der nicht ausgelasteten Transistoren bezog sich nicht auf die Auslastung der GPU, sondern auf die Möglichkeit einer Hardware-Beschleunigung für UD. Wie ich schon gesagt hab, halte ich es für sehr wahrscheinlich dass diese Technologie, die sicherlich auf einer sehr komplexen Datenstruktur basiert, nur schlecht bis gar nicht parallelisierbar ist. Wenn es nicht parallelisierbar ist, dann seh ich nicht nur für die Möglichkeit der Existenz einer hypothetischen Hardwarebeschleunigung eher schwarz, sondern dann verliert es eigentlich mit einem Schlag jeden praktischen Wert.

Anyway, natürlich hab ich keine Ahnung was Unlimited Detail genau tut und ich kann, mangels Information, natürlich nicht ganz ausschließen dass die Technologie wirklich so revolutionär ist wie Euclideon behauptet. Ich halte es aber für sehr unwahrscheinlich. Mehr als äußerst arrogant präsentierte, teilweise einfach völlig unglaubwürdige Behauptungen von Seiten von Euclideon konnte ich für mich noch in keinem der veröffentlichten Videos entdecken. Um ehrlich zu sein finde ich die Videos auf traurige Weise amüsant. Einige der potentiellen Probleme die ich auf technischer Ebene sehe habe ich ja hier aufgezeigt, aber natürlich kann ich da nur spekulieren. Den Hype finde ich jedenfalls völlig ungerechtfertigt. In keinem der Demos/Videos gibt es imo etwas Besonderes zu sehen, schon gar keine Indizien für etwas irgendwie Weltbewegendes. Es sind nette Demos von einem Hobbyprogrammierer, das will ich nicht bestreiten. Aber mehr seh ich da nicht. Und so lange es sich um eine unoptimierte, single-threaded Anwendung handelt, die uns auf 1024x768 beliebig viele Instanzen der selben 10 Modelle rendert wird sich daran nichts ändern. Ich sehe jedenfalls keinen Grund irgendwas davon ernst zu nehmen, solange nichtmal ernsthaft auf berechtigte Kritik von Leuten die wirklich was von ihrem Handwerk verstehen eingegangen wird oder man zumindest mal irgendwelche ernstzunehmenden Fakten über die Technologie erfährt. Denn was wir bis jetzt an "Fakten" gehört haben ist eigentlich nur leeres und teilweise einfach nur falsches Gebrabbel, unterbrochen von der gelegentlichen, jeder Realität entbehrenden Behauptung, vor dem Hintergrund von subtanzlosen Bildern. Das einzige was Euclideon uns bis zum heutigen Tage mit Bestimmtheit erzählt hat ist dass sie alles besser können, Polygone des Teufels sind und die ganze Welt der bösen großen Konzerne sich gegen sie verschworen hat. Eigentlich wundert es mich zutiefst wie es überhaupt dazu kommen konnte dass die von irgendjemandem ernstgenommen werden...

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »dot« (15.08.2011, 00:49)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

98

15.08.2011, 06:37

Eigentlich haben sie doch genau genug beschrieben, was sie tun. Sie suchen für jeden Pixel des Bildschirms ein Voxel in ihrer Datenstruktur. Das klingt für mich sehr nach Parallelisierbarkeit. Genau genommen klingt es sogar nach Raytracing oder Raycasting, nur dass sie sich gegen diese Betrachtung der Sache verweigern. Die Sache mit den Instanzen finde ich übrigens auch sehr spannend dargelegt von Dir. Da frag ich mich doch gerade ob heutige Spiele ihre Wiesen, Felder, Wälder und Gegner auch mit Instanzen rendern oder gar Texturen mehrfach verwenden... wollen wir's lieber nicht hoffen...

Deinen letzten Absatz finde ich (auch wenn ich den "fehlenden Fakten" zustimmen kann) ziemlich polemisch und Du klingst da wieder mal so als wäre die Welt nur entweder weiß oder schwarz. Und so wirkst Du übrigens jedes Mal, wenn jemand daher kommt und sagt, dass es doch etwas besseres geben könne (für bestimmte Zwecke) als Polygone. Sorry, das finde ich wenig konstruktiv.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (15.08.2011, 06:42)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

99

15.08.2011, 10:54

Eigentlich haben sie doch genau genug beschrieben, was sie tun. Sie suchen für jeden Pixel des Bildschirms ein Voxel in ihrer Datenstruktur. Das klingt für mich sehr nach Parallelisierbarkeit. Genau genommen klingt es sogar nach Raytracing oder Raycasting, nur dass sie sich gegen diese Betrachtung der Sache verweigern.

Ich vermute es handelt sich um Beam-Tracing in eine Beschleunigungsstruktur. Hast du schonmal versucht eine hierarchische Datenstruktur massiv-parallel zu traversieren? Du wirst sehen dass schon ein simpler Octree ziemlich ungeeignet dafür ist. Ja, die einzelnen Pixel sind vielleicht unabhängig voneinander. Aber sie nehmen auch stark voneinander unabhängige Branches. Während einige wenige Pixel sehr tief suchen müssen ist ein großer Teil der Pixel sehr schnell fertig. Solange das in einem einzelnen Thread auf der CPU läuft spielt das keine Rolle. Aber eine GPU auszulasten ist mit so ein Ansatz unmöglich. Dazu kommt dass der Memory-Access-Pattern der sich mit Voxelgrafik zwangsweise ergibt extrem nichtlinear ist, was Caches absolut nicht mögen, was bedeutet dass UD potentiell sehr bandbreitenintensiv ist. Und Bandbreite ist genau das wo es mit aktueller Technologie sehr schnell eng wird, Dinge wie Tesselation wurden gerade deshalb überhaupt erst entwickelt. Dazu kommen die riesigen zu durchsuchenden Datenmengen dies auch nicht wirklich besser machen...

Die Sache mit den Instanzen finde ich übrigens auch sehr spannend dargelegt von Dir. Da frag ich mich doch gerade ob heutige Spiele ihre Wiesen, Felder, Wälder und Gegner auch mit Instanzen rendern oder gar Texturen mehrfach verwenden... wollen wir's lieber nicht hoffen...

Du findest es also nichtmal bestenfalls seltsam dass sämtliche Szenen aus all den Jahren, die man bisher gesehen hat, aus Millionen Instanzen von einer Handvoll Modellen bestehen die ausschließlich um die y-Achse rotiert sind!? Und das obwohl die dem Video nach mittlerweile gleich viele Leute für Contentcreation haben wie an der Engine arbeiten!? Der einzige Schluss zu dem ich da kommen kann ist, dass es sich um eine ernsthafte Limitierung des Systems handeln muss...

Deinen letzten Absatz finde ich (auch wenn ich den "fehlenden Fakten" zustimmen kann) ziemlich polemisch und Du klingst da wieder mal so als wäre die Welt nur entweder weiß oder schwarz. Und so wirkst Du übrigens jedes Mal, wenn jemand daher kommt und sagt, dass es doch etwas besseres geben könne (für bestimmte Zwecke) als Polygone. Sorry, das finde ich wenig konstruktiv.

Und die Videos von Euclideon findest du nicht polemisch? Wer solche Aussagen von sich gibt wie Euclideon ist für mich erst glaubwürdig wenn er auch etwas mindestens so spektakuläres vorzuweisen hat. Und das ist bei Unlimited Detail absolut nicht der Fall. Oder kannst du mir irgendetwas von denen zeigen was deren Behauptungen wirklich untermauern würde? Mir ist durchaus bewusst dass meine Posts hier gern mal auch etwas überzogen sind. Das ist auch ganz meine Absicht. In einer Diskussion über eine Technologie die von sich behauptet unendlich viel Detail auf endlichen Maschinen zu bieten, wo auf direkte Nachfrage im Interview ohne mit der Wimper zu zucken darauf bestanden wird dass es sich wirklich um unendlich hohen Detailgrad handelt, erlaube ich mir einfach mal auch ein wenig zu übertreiben, um dem Versuch das Ganze vielleicht etwas zu relativieren Nachdruck zu verleihen. Die einzige mir bekannte Möglichkeit das theoretisch zu erreichen wären Fraktale. Und wenn sie es wirklich geschafft haben ein System zu entwickeln um beliebige Geometrie durch in O(1) berechenbare Fraktale zu repräsentieren dann verbeuge ich mich tiefer Demut und gönne ihnen all die Turing-Awards, Nobelpreise und Fields-Medaillen von Herzen. Das käme wohl in etwa der Lösung sämtlicher Millenium-Probleme gleich...

Dieser Beitrag wurde bereits 24 mal editiert, zuletzt von »dot« (15.08.2011, 12:14)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

100

15.08.2011, 12:48

Du findest es also nichtmal bestenfalls seltsam dass sämtliche Szenen aus all den Jahren, die man bisher gesehen hat, aus Millionen Instanzen von einer Handvoll Modellen bestehen die ausschließlich um die y-Achse rotiert sind!? Und das obwohl die dem Video nach mittlerweile gleich viele Leute für Contentcreation haben wie an der Engine arbeiten!? Der einzige Schluss zu dem ich da kommen kann ist, dass es sich um eine ernsthafte Limitierung des Systems handeln muss...

Seltsam finde ich daran gar nichts, nein. Es ist sicherlich nicht gerade förderlich oder hübsch. Ich glaube aber einfach (und das auch basierend auf der Datenstruktur, die vermutlich ohnehin *alles* halten muss und Instanzieren überhaupt gar nicht unterstützt), dass das daran liegt, dass der Aufwand solche vielfältigen Daten zu erzeugen für eine Tech-Demo weder relevant noch in Relation zum Nutzen steht.

Der zweite Absatz ist mir mal wieder zu albern. Sorry, es klingt nach einem Kind, was mit den Füßen auf dem Boden rumstampft.
Uns ist allen bewusst, dass "unlimited" nicht funktioniert. Niemand hier von uns hat behauptet, dass man mit beschränktem Speicher (und Aufwand) unendliche Details erzeugen könnte. Das ist offensichtlicher Unfug. Aber wenn Du Dich nur an dieser Definition der Macher aufziehst, dann tust Du mir Leid. Ich sehe in der Technik wie schon gesagt sehr viel Potential, solange es sich um statische Inhalte wie Gelände handelt. Und mal Hand hoch, wer hat nicht die Nase voll von Low-Poly-Objekten am Rand einer Autorennstrecke oder Low-Poly-Häusern, Höhlen und Bäumen in einem MMORPG? Also ich schon und genau dafür sehe ich diese Technik als durchaus sinnvoll an. Ob man da jetzt alles so parallelisieren kann, dass alle Pixel gleich schnell berechnet werden, das halte ich für nicht relevant. Wenn ich 1000 davon gleichzeitig machen kann, dann warte ich lieber auf ein einzelnes 20mal länger als auf die anderen 999, da das dann immer noch bedeutet, dass ich in der selben Zeit, wo ich sonst nur das eine langsame Pixel hätte rendern können, gleich 1000 Stück parallel erledigt habe. Sorry, das ist und bleibt meiner Meinung nach eine Optimierung, die momentan bei Software-Rendering auf einem einzelnen Core eben nicht durchgeführt wird. Zusäzlich hat noch niemand definiert, wie so eine Architektur für UD überhaupt aussehen könnte. Es ist doch auch vorstellbar, dass die Cores, die ein Pixel schneller berechnen konnten als der Rest, schon mit dem nächsten beginnen, während der Rest noch am ersten rechnet. Ein Bildschirm hat eh mehr Pixel als die GraKa Cores.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige