Archiv verlassen und diese Seite im Standarddesign anzeigen : Diskussion zu: Echtzeit-Raytracing der Universität des Saarlandes
Leonidas
2007-03-31, 18:45:12
Die Ankündigung der Universität des Saarlandes, einen Quantensprung in Bezug auf die Realisierbarkeit von Raytracing auf normaler Computer-Hardware hingelegt zu haben, löste vor einiger Zeit ein gewisses Medienecho und ein allgemein größeres Interesse dem Thema gegenüber aus. Wir hatten auf der CeBIT die Gelegenheit, mit Vertretern der Universität zu sprechen und können deshalb nun ein genaueres Bild des bei der Universität des Saarlandes derzeit erreichten Fortschritts auf dem Gebiet des Raytracings zeichnen.
Link:
http://www.3dcenter.org/artikel/2007/03-31.php
Bisher behandeln die Saarland-Raytracing-Lösungen an Geometrie nur Dreiecke.
Falsch. Kann man leicht an der Veröffentlichungen erkennen.
Dass man statische Geometrie in eine Baumstruktur so einordnen kann, dass sich pro Ray relativ schnell die unsichtbaren Objekte wegschneiden lassen bzw. dass sich eine intelligent entwickelte Baumstruktur sehr schnell durchsuchen lässt, ist einsichtig.
Allerdings auch beim Rasterisierung umsetzbar.
Als "Heiligen Gral" kann man die Schattenberechung sehen.
Etwas übertrieben.
Denn beim Raytracing kann man schnell überprüfen, ob eine Lichtquelle an einem beliebigen Punkt verdeckt ist.
Schnell ist immer eine relative Sache.
So günstig ist das garnicht.
Der Vorteil beim "Ray-Shader" besteht darin, dass auch für diesen Shader die Kenntnis der kompletten Szene vorliegt. Was sich damit an Effekten realisieren ließe, ist noch zu erforschen.
Aber bestimmt nicht beim OpenRT. Der Shader kann sich nur das Schiessen von Strahlen einen Eindruck der Szene ersamplen.
Indirekte Beleuchtung und Flächenlichtquellen lassen sich laut der Universität des Saarlandes mittels Raytracing berechnen, indem nach einem bestimmten Verfahren zusätzliche Punktlichtquellen erzeugt werden, die dann für ein Zurückstrahlen erhaltener Energie sorgen.
Für rein statische Szenen.
Das sind mal die gröbsten Mackel.
Der Shaderoverhead bei Rasterizierung sinkt momentan so stark, dass Raytracing hier nicht mehr viele Vorteile bietet. Innerhalb der Shader kann man, abgesehen von neuen Strahlen, die selben Features nutzen. Volumenraytracing ist heute auf jeder Grafikkarte machbar und wird auch demnächst in den ersten Spielen zu sehen sein (e.g. Hellgate London).
Zusammenfassend könnte man es so sehen: Raytracing ist in bestimmten Bereichen wirklich besser. Allerdings ist das für Spiele nicht der Fall. Mit Raytracing lässt sich eigentlich alles realisieren, aber halt sehr langsam. Für Spiele reichen meistens Fakes aus, die immer mehr Bereiche abdecken, immer echter aussehen und sehr viel günstiger sind.
Zu den Vorteilen bei der Geometrie:
Wenn ich alles rendern kann, was ich den Hauptspeicher kriege, was genau bringt mir eine theoretisch bessere Laufzeit bei noch mehr Geometrie. Daraus folgend setzt sich bei Rasterisierung gerade zur Laufzeit produzierte Geometrie durch. Dadurch wird man die Speicherplatzprobleme los. Raytracing hat damit aber sehr große Probleme, da man die Beschleunigerstrukturen nicht im Voraus berechnen kann.
haifisch1896
2007-03-31, 21:32:59
Eigentlich im falschen Forum... :rolleyes:
Herr Gast, danke für die Anmerkungen. Ich wäre erfreut, dich als registrierten User im Forum begrüßen zu dürfen.
Falsch. Kann man leicht an der Veröffentlichungen erkennen.Ich wurde so informiert, dass Freiformflächen vorgesehen waren, aber in der Hardwarebeschleunigung (via FPGA) nicht umgesetzt wurden. Hier werde ich mich noch mal schlau machen.
Allerdings auch beim Rasterisierung umsetzbar.Beim Rastern versucht man, so viel wie möglich in einem Rutsch zu rendern und so wenig wie möglich Renderstates oder Texturen zu wechseln. Man kann sicherlich beim Rastern auch etwas clippen, so dass das Triangle Setup nicht unnötig belastet wird. Soweit ich weiß, wird das auch gemacht. Bei Raytracing belegt ungenutzte Geometrie nur Speicherplatz und belastet nicht die Bandbreite (wenn man von erhöhter Cache-Miss-Rate absieht.)
Etwas übertrieben.Aus meiner Sicht nicht – perfektes Shading bringt wenig, wenn man keine korrekte Schatten hat. Aus eigener Erfahrung weiß ich, dass die Berechnung von korrekten Schatten – selbst wenn man harte Ränder akzeptiert – kein so einfaches Ding ist wie das pixelgenaue Shading eines Objektes. Das Sprichwort sagt "Wo Licht ist, ist auch Schatten" während Rastergrafik erst mal nur das Licht berücksichtigt und den Schatten außer Acht lässt.
Schnell ist immer eine relative Sache.
So günstig ist das garnicht.Zu gucken, ob der Weg zur Lichtquelle verdeckt ist oder nicht, ist ziemlich schnell. Man muss, sofern keine Halbtransparenz vorliegt, nur gucken ob verdeckt ist und nicht das Objekt ermitteln, was am nächsten liegt. Natürlich muss das pro Iteration gemacht werden, wenn indirekte Beleuchtung mitberechnet werden soll. Der Aufwand bleibt trotzdem überschaubar.
Aber bestimmt nicht beim OpenRT. Der Shader kann sich nur das Schiessen von Strahlen einen Eindruck der Szene ersamplen.(Schießen bitte mit ß.) Soweit ich weiß, arbeitet die Uni Saarland nicht oder nicht vorrangig an OpenRT. Ich werde trotzdem noch mal nachfragen, ob die Lösung der Uni Saarland beim "Ray Shader" (der Begriff stammt von mir) die gesamte Szene nutzen kann.
Für rein statische Szenen.Auch in dynamischen Szenen. In dem Beispiel war der Tisch, der für indirekte Beleuchtung sorgte, im Raum beweglich.
Das sind mal die gröbsten Mackel.
Der Shaderoverhead bei Rasterizierung sinkt momentan so stark, dass Raytracing hier nicht mehr viele Vorteile bietet. Innerhalb der Shader kann man, abgesehen von neuen Strahlen, die selben Features nutzen. Volumenraytracing ist heute auf jeder Grafikkarte machbar und wird auch demnächst in den ersten Spielen zu sehen sein (e.g. Hellgate London).Man kann mit Pixelshadern auch gewisse Raytracing-Sachen machen, ja. Was korrekte Spiegel-Effekte angeht, ist man bei Rastergrafik trotzdem aufgeschmissen. Bei Spielen kommt es nun nicht unbedingt auf volle Korrektheit an, mit Cubemapping lässt sich ein einfacher Spiegeleffekt (ohne Iterationen) bekanntlich ganz gut faken.
Zusammenfassend könnte man es so sehen: Raytracing ist in bestimmten Bereichen wirklich besser. Allerdings ist das für Spiele nicht der Fall. Mit Raytracing lässt sich eigentlich alles realisieren, aber halt sehr langsam. Für Spiele reichen meistens Fakes aus, die immer mehr Bereiche abdecken, immer echter aussehen und sehr viel günstiger sind.Der Artikel behauptet nichts anderes. Ich bin was Echtzeitgrafik angeht bei Raytracing sehr skeptisch und Rasterfan. Lieber gut gefakt als schlecht berechnet.
Zu den Vorteilen bei der Geometrie:
Wenn ich alles rendern kann, was ich den Hauptspeicher kriege, was genau bringt mir eine theoretisch bessere Laufzeit bei noch mehr Geometrie. Daraus folgend setzt sich bei Rasterisierung gerade zur Laufzeit produzierte Geometrie durch. Dadurch wird man die Speicherplatzprobleme los. Raytracing hat damit aber sehr große Probleme, da man die Beschleunigerstrukturen nicht im Voraus berechnen kann.Das Speicherplatzproblem wird dann nur gegen ein Bandbreitenproblem eingetauscht. Raytracing hat das Problem, dass dynamische Geometrie erst mal in einen Suchbaum einsortiert werden muss.
Ich wurde so informiert, dass Freiformflächen vorgesehen waren, aber in der Hardwarebeschleunigung (via FPGA) nicht umgesetzt wurden. Hier werde ich mich noch mal schlau machen.
Die RTUT (so nennen sie ihren FPGA glaub ich) hat einen programmierbaren Intersector. Damit sollte alles machbar sein. Ihre Softwarelösung hat Freiformflächen.
Beim Rastern versucht man, so viel wie möglich in einem Rutsch zu rendern und so wenig wie möglich Renderstates oder Texturen zu wechseln. Man kann sicherlich beim Rastern auch etwas clippen, so dass das Triangle Setup nicht unnötig belastet wird. Soweit ich weiß, wird das auch gemacht.
View Frustum Culling, vorberechnte Sichtbarkeit, Occlusion Querries und nun mit DX10 Predicated Rendering bringen da schon einiges.
Bei Raytracing belegt ungenutzte Geometrie nur Speicherplatz und belastet nicht die Bandbreite (wenn man von erhöhter Cache-Miss-Rate absieht.)
Raytracing hat halt perfektes Occlusionculling.
Ob der Vorteil aber in Zukunft noch so groß sein wird?
Aus meiner Sicht nicht – perfektes Shading bringt wenig, wenn man keine korrekte Schatten hat. Aus eigener Erfahrung weiß ich, dass die Berechnung von korrekten Schatten – selbst wenn man harte Ränder akzeptiert – kein so einfaches Ding ist wie das pixelgenaue Shading eines Objektes. Das Sprichwort sagt "Wo Licht ist, ist auch Schatten" während Rastergrafik erst mal nur das Licht berücksichtigt und den Schatten außer Acht lässt.
Schatten sind halt ein schwer Thema. Entweder sauteuer oder hässlich. Raytracing ist da auch nicht anders. Entweder harte Schatten oder sauteure über distributed Raytracing. Softe Schatten sind mit Rasterisierung i.d.R. in annehmbarer Qualität wesentlich günstiger.
Zu gucken, ob der Weg zur Lichtquelle verdeckt ist oder nicht, ist ziemlich schnell. Man muss, sofern keine Halbtransparenz vorliegt, nur gucken ob verdeckt ist und nicht das Objekt ermitteln, was am nächsten liegt.
Und das machst du wie? Du traversierst die Beschleunigerstruktur entlang des Strahls und suchst einen Schnittpunkt. Die Annahme, dass man nicht den nächsten Schnittpunkt finden muss, bringt nur etwas wenn in einem Leaf mehr als ein Dreieck gespeichert ist und man dort nach einem erfolgreichen Test abbrechen kann. Bringt also kaum etwas.
Im Endeffekt sind diese Shadowrays sogar teurer als Primary Rays da man durch eine schlechtere Koherenz der Strahlen mehr Cache Misses hat.
Soweit ich weiß, arbeitet die Uni Saarland nicht oder nicht vorrangig an OpenRT.
Der war gut. ;)
OpenRT stammt von Saarbrücker Grafiklehrstuhl, wird dort weiterentwickelt und fast ausschliesslich dort verwendet. Das Spinoffs des Lehrstuhl known as Intrace vertreibt eine kommerzielle OpenRT Version.
Abgesehen vom Hardwareraytracer und NMM machen die dort afaik nichts anderes. ;)
Ich werde trotzdem noch mal nachfragen, ob die Lösung der Uni Saarland beim "Ray Shader" (der Begriff stammt von mir) die gesamte Szene nutzen kann.
Tu das.
Da ein Shader in der Softwarelösung allerdings theoretisch auf den kompletten Speicher zugreifen kann wird man dies wohl bejahen. Auch wenn man den Speicherbereich als Parameter in Form eines Pointers mitgeben muss.
Ob die Hardwarelösung darauf zugreifen kann, wäre interessant.
Auch in dynamischen Szenen. In dem Beispiel war der Tisch, der für indirekte Beleuchtung sorgte, im Raum beweglich.
Ach das Demo.
Dort nutzen die Pathtracing. Das profitiert extrem von Caching. Sobald man in der Szene etwas ändert, muss extrem viel wegschmeissen. Bei einem eh ruckeligen Demo fallen diese Neuberechnungsruckler dann auch nicht weiter auf. ;)
Für richtig dynamische Szenen mit mehr als einem bewegte statischem Mesh ist es aber auch nicht mehr so effektiv.
Man kann mit Pixelshadern auch gewisse Raytracing-Sachen machen, ja. Was korrekte Spiegel-Effekte angeht, ist man bei Rastergrafik trotzdem aufgeschmissen. Bei Spielen kommt es nun nicht unbedingt auf volle Korrektheit an, mit Cubemapping lässt sich ein einfacher Spiegeleffekt (ohne Iterationen) bekanntlich ganz gut faken.
Eben. Raytracing ist hier besser. Für Spiele sind die Fakes aber noch lange ausreichend.
Das Speicherplatzproblem wird dann nur gegen ein Bandbreitenproblem eingetauscht. Raytracing hat das Problem, dass dynamische Geometrie erst mal in einen Suchbaum einsortiert werden muss.
Was bei volldynamischer Geometrie dann in O( n ) oder noch schlechter resultiert und eine unterirdische Performance zu folge hat.
Passend zum Thema eben noch gefunden:
http://geomerics.com/
Sorry, aber der Artikel gefällt mir mal wieder überhaupt nicht. Völlig an der Realität vorbei.
Moderne Raytracing-Algorithmen skalieren in ihrer Leistung mit der Geometrie nur logarithmisch. Das heißt, für eine doppelte Geometrie ist weniger als die doppelte Rechenleistung notwendig – de fakto skaliert die Framerate nur mit der Zielauflösung, (fast) unabhängig von der Komplexität des berechneten Modells. Dies hat einige angenehme Nebeneffekte, zum Beispiel dass man auf geometrisches Level-of-Detail verzichten kann, jedenfalls aus Performance-Sicht (zur Aliasing-Vermeidung ist dann doch ein geometrisches LOD anzuraten).
Geo-LOD ist genauso wie Mipmapping IMMER notwendig, sonst hat man Flimmer-Hölle. Das ist ein ganz ganz grober Denkfehler, den die Leute im Saarland anscheinend selber nicht kapieren und dann auch noch grausige Flimmer-Videos von ihrer tollen Technologie veröffentlichen.
Raytracing macht LOD nicht unnötig, und der so hoch angepriesene logarithmische Aufwand nach der Anzahl der Polygonen relativiert sich damit ggü. einem Rasterizer auch ganz ganz schnell.
Wie das genau funktionieren soll ist uns nicht klar, andererseits wären wir auch nicht auf die Idee gekommen, bestimmte dynamische Sachen wie sich im Wind wiegende Baumwipfel über eine Transformation des Strahles (und nicht der Geometrie) zu realisieren. Das kann echte dynamische Geometrie natürlich nicht überall ersetzen.
Das würde ich gerne erklärt haben. Meiner Meinung nach ist das ziemlicher Blödsinn.
Als "Heiligen Gral" kann man die Schattenberechung sehen.
Kann man nicht. Man bekommt relativ günstig harte Schatten, die exakt gleich aussehen wie Stencil-Schatten. Wenn man weiche Schatten mit korrekter Penumbra will sind weitaus billigere Algorithmen mit Shadowmaps auf einem Rasterizer genauso schnell wieder viel effizienter.
Auch softe Stencil-Schatten sind (mittels mehreren Passes) im Prinzip möglich, in der Praxis aber aus Performancegründen indiskutabel. Beim Raytracing sind Softshadows, die nicht nur soft aussehen, sondern korrekt sind, zwar auch aufwändig – aber auf absehbare Zeit in Echtzeit möglich.
Das sehe ich genau umgekehrt.
Auch korrekte Spiegel-Effekte oder Lichtbrechungs-Effekte sind mit Raytracing (bis zu einer endlichen Iterationstiefe) kein Problem.
D3D10 Single-Pass-Cubemap mit 3 Iterationen-Raytrace-Emulation. Deutlich effizienter, sieht kein Mensch den Unterschied. Das gleiche wie oben.
Hallo,
noch mal:
Herr Gast, danke für die Anmerkungen. Ich wäre erfreut, dich als registrierten User im Forum begrüßen zu dürfen.
Die RTUT (so nennen sie ihren FPGA glaub ich) hat einen programmierbaren Intersector. Damit sollte alles machbar sein. Ihre Softwarelösung hat Freiformflächen.Ich werde es bald wissen.
View Frustum Culling, vorberechnte Sichtbarkeit, Occlusion Querries und nun mit DX10 Predicated Rendering bringen da schon einiges.
Raytracing hat halt perfektes Occlusionculling.
Ob der Vorteil aber in Zukunft noch so groß sein wird?Die Effizienz bei der Rastergrafik steigt weiter, das ist klar. (Noch sehr viel stärker wächst die Rohpower. Ob Raytracing da Schritt halten kann?) Andererseits ist die Entwicklung beim Raytracing auch nicht abgeschlossen. Bisher habe ich zum Beispiel keine Details darüber, in welcher Form die Geometrie gespeichert wird. Vielleicht wäre es – möglicherweise zulasten der Speicherkapazität – noch optimierbar, die entsprechende Intersection schneller zu finden.
Vor dem Besuch der Uni-Saarland-Vertretung auf der CeBit 2007 hatte ich mich für Raytracing kaum interessiert. Echtzeit-Raytracing hielt ich ohnehin für Fantasterei. Entsprechend wenig war ich auf Details vorbereitet und stecke auch jetzt nicht schon in den Feinheiten.
(Klingt nach Klugscheißerei, ich sags trotzdem: D3D10 bitte, nicht DX10.)
Schatten sind halt ein schwer Thema. Entweder sauteuer oder hässlich. Raytracing ist da auch nicht anders. Entweder harte Schatten oder sauteure über distributed Raytracing. Softe Schatten sind mit Rasterisierung i.d.R. in annehmbarer Qualität wesentlich günstiger.Soft, mit weichen Rändern, ja. Mit korrekten weichen Rändern? Da ist mir (abgesehen von Stencilshadows mit sehr vielen Passes) kein Verfahren bekannt. Soft Shadowing mit Raytracing ist mit bisherigen Verfahren auch nicht billig. Vielleicht wird mal etwas entwickelt, welches über Effekte mit Lichtbrechung u. ä. viel schneller korrekte Softshadows berechnet. Lichtschluckende Nebel zwischen Lichtquelle und Fläche mit einem Lichtstreuungseffekt stelle ich mir mit Rasterung extrem schwer vor. Wenn man (neben hochwertig gestalteten Oberflächen) nur "gut aussehende" Schatten braucht, sollte das mit Rasterung eher in Echtzeit machbar sein als mit Raytracing.
Und das machst du wie? Du traversierst die Beschleunigerstruktur entlang des Strahls und suchst einen Schnittpunkt. Die Annahme, dass man nicht den nächsten Schnittpunkt finden muss, bringt nur etwas wenn in einem Leaf mehr als ein Dreieck gespeichert ist und man dort nach einem erfolgreichen Test abbrechen kann. Bringt also kaum etwas.
Im Endeffekt sind diese Shadowrays sogar teurer als Primary Rays da man durch eine schlechtere Koherenz der Strahlen mehr Cache Misses hat.Hat man das? Bei mehreren Intersections des Lightrays dürfte sich pro Intersection der jeweilige Shadowray ähneln.
Der war gut. ;)
OpenRT stammt von Saarbrücker Grafiklehrstuhl, wird dort weiterentwickelt und fast ausschliesslich dort verwendet. Das Spinoffs des Lehrstuhl known as Intrace vertreibt eine kommerzielle OpenRT Version.
Abgesehen vom Hardwareraytracer und NMM machen die dort afaik nichts anderes. ;)(Ausschließlich bitte mit ß.) Ok, von OpenRT habe ich auf der CeBit nichts gesehen. Ein schneller Blick auf www.openrt.de hätte allerdings die Nähe zur Uni Saarland sofort erkennen lassen.
Tu das.
Da ein Shader in der Softwarelösung allerdings theoretisch auf den kompletten Speicher zugreifen kann wird man dies wohl bejahen. Auch wenn man den Speicherbereich als Parameter in Form eines Pointers mitgeben muss.
Ob die Hardwarelösung darauf zugreifen kann, wäre interessant.In der Tat. So wie ich das verstanden habe, ist die Beschleunigungshardware bisher ein Einmannprojekt und eher eine Machbarkeitsstudie.
Ach das Demo.
Dort nutzen die Pathtracing. Das profitiert extrem von Caching. Sobald man in der Szene etwas ändert, muss extrem viel wegschmeissen. Bei einem eh ruckeligen Demo fallen diese Neuberechnungsruckler dann auch nicht weiter auf. ;)
Für richtig dynamische Szenen mit mehr als einem bewegte statischem Mesh ist es aber auch nicht mehr so effektiv.(Auch "wegschmeißen" bitte mit ß, noch besser "wegwerfen".) Mir wurde die Demo als allgemeine Demo einer Global-Illumination- (oder Global-Lighting-) Lösung verkauft. Ein globales Beleuchtungsmodell hat einsichtigerweise nur dann Sinn, wenn sie dynamisch ist, da man sonst gleich Lightmaps nehmen könnte.
Geht man davon aus, dass das Moorsche Gesetz von der Zahl der Transistoren linear mit der Rechenleistung skaliert, und setzt konservativ 24 Monate für eine Verdopplung an, hat man in 6,6 Jahren die 10- und in 13,3 Jahren die 100-fache Rechenleistung von heute. Bei 18 Monaten sind es nur 5 bzw. 10 Jahre. Dynamische Beleuchtung inkl. indirekter Beleuchtung sollte dann in Echtzeit auch bei komplexeren Modellen möglich sein.
Sofern man eine korrekte globale Beleuchtung braucht, ist das notwendigerweise mit extremer Rechenarbeit verbunden. Das ist kein Nachteil des Raytracings. Will man nur gute Lichteffekte faken, ließe sich das mit Rastergrafik wohl um Größenordnungen performanter gestalten. Da hierüber keine Uneinigkeit herrscht weiß ich nicht ganz, worauf du hinaus willst.
Eben. Raytracing ist hier besser. Für Spiele sind die Fakes aber noch lange ausreichend.Das sehen die Leute von der Uni Saarland, mit denen ich gesprochen habe, genauso. Ich halte (gute) Fakes in Spielen für immer ausreichend, da sich Rasterchips nun mal als spezialisierte Chips bei als gleichwertig empfundener Qualität preiswerter bauen lassen.
Nicht nur die Anforderungen an die Grafik steigen. In Gran Turismo 4 spiegelt sich zum Beispiel nur eine Fakeumgebung in den Autos. Mir wäre es viel wichtiger, mehr als 6 Autos gleichzeitig auf der Strecke zu haben (und auch ein Schadensmodell geboten zu bekommen) als korrekte Spiegel-in-Spiegel-Effekte zu sehen.
Was bei volldynamischer Geometrie dann in O( n ) oder noch schlechter resultiert und eine unterirdische Performance zu folge hat.Bei heutiger Implementierung möglicherweise. Volldynamische Geometrie, die sich pro Frame nur langsam ändert, wäre sicherlich auch schneller sortierbar als hätte man von Frame zu Frame eine völlig neue, unvorhersehbare Verteilung. "Unterirdisch schlecht" ist nur zu einem bestimmten Zeitpunkt korrekt. Die verfügbare Rechenleistung steigt ja weiterhin. Da man zur Aliasingvermeidung eh auf geometretisches LOD setzen sollte, wäre eine Sortierung der zur Berechnung genutzten Geometrie wohl immer deutlich schneller als die Berechnung der einzelnen Pixelfarben.
Passend zum Thema eben noch gefunden:
http://geomerics.com/Neben korrekten Schatten, die ich als heiligen Gral sehe, ist natürlich auch indirekte Beleuchtung wichtig. Ob die Jungs jetzt den ultimativen Durchbruch geschafft haben, weiß ich (nach einem kurzen Durchsehen der Site) nicht. Ich bin gespannt, was Alan Wake bieten wird.
Mit korrekten weichen Rändern? Da ist mir (abgesehen von Stencilshadows mit sehr vielen Passes) kein Verfahren bekannt.
Die gibt es aber. Schau mal ins neuste nVIDIA-SDK. Vor allem mit D3D10 gibt's da etliche sehr interessante Ansätze.
Und so einfach wie du tust sind die echten korrekten Penumbra-Schatten mit Raytracing nämlich auch nicht. Monte-Carlo Sampling von der Fläche der Lichtquelle aus ist brutal teuer und man braucht viele Rays dafür.
Slipknot79
2007-04-01, 00:50:35
Raytracing in der Akustik wäre vielleicht nicht schlecht. Was sich da alles machen ließe? Und vor allem, wie sich das mit dem grafischen Raytracing kombinieren ließe?
Das hatten die Aureal-Chips soweit ich weiß mal.
Auch softe Stencil-Schatten sind (mittels mehreren Passes) im Prinzip möglich, in der Praxis aber aus Performancegründen indiskutabel. Beim Raytracing sind Softshadows, die nicht nur soft aussehen, sondern korrekt sind, zwar auch aufwändig – aber auf absehbare Zeit in Echtzeit möglich.
zumindest gibt es schon spiele die das bei heutiger hardware in echtzeit zeigen können, bei riddick sieht es sogar richtig gut aus.
Sorry, aber der Artikel gefällt mir mal wieder überhaupt nicht. Völlig an der Realität vorbei.
Geo-LOD ist genauso wie Mipmapping IMMER notwendig, sonst hat man Flimmer-Hölle. Das ist ein ganz ganz grober Denkfehler, den die Leute im Saarland anscheinend selber nicht kapieren und dann auch noch grausige Flimmer-Videos von ihrer tollen Technologie veröffentlichen.Na dann werde doch bei denen vorstellig und beglücke sie mit deinem Wissen.
Im Moment ist geometrisches LOD noch nicht implementiert. Man kann nicht alles zugleich haben. Kommt Zeit, kommt Rat. Dass diese Szene überhaupt so geraytract werden kann, ist schon ein Fortschritt.
Raytracing macht LOD nicht unnötig, und der so hoch angepriesene logarithmische Aufwand nach der Anzahl der Polygonen relativiert sich damit ggü. einem Rasterizer auch ganz ganz schnell.Ich schrieb auch nicht, dass geometrisches LOD aus Qualitätssicht bei Raytracing unnötig sei. Aus Performance-Sicht ist geometrisches LOD jedoch weniger notwendig als beim Rasterverfahren.
Das würde ich gerne erklärt haben. Meiner Meinung nach ist das ziemlicher Blödsinn.Wenn du dich mehr in der Wortwahl bemühst, erkläre ich es gerne soweit ich dazu imstande bin.
Kann man nicht. Man bekommt relativ günstig harte Schatten, die exakt gleich aussehen wie Stencil-Schatten. Wenn man weiche Schatten mit korrekter Penumbra will sind weitaus billigere Algorithmen mit Shadowmaps auf einem Rasterizer genauso schnell wieder viel effizienter.Für einen korrekten Schatten brauchst du unter anderem den Abstand zwischen schattenwerfendem Objekt und der beschatteten Fläche. Dazu kommen weiche Ränder durch die Flächigkeit der Lichtquelle, was bei Shadowmaps nicht berücksicht wird (und durch die Größe des Filterkernels auch nur gefakt und nicht korrekt berechnet wird.) Und ein globales Beleuchtungsmodell mit indirekter Beleuchtung, welches die Schatteninnenfläche noch erhellen kann. Shadowmaps können weiche Ränder liefern die schon ganz gut aussehen, aber nicht unbedingt korrekt sind. Davon abgesehen haben Shadowmaps Präzisionsprobleme bei bestimmten Winkeln.
Das sehe ich genau umgekehrt.Aha.
D3D10 Single-Pass-Cubemap mit 3 Iterationen-Raytrace-Emulation. Deutlich effizienter, sieht kein Mensch den Unterschied. Das gleiche wie oben.Da müssen die Leute von der Uni Saarland ja ziemliche Nixblicker sein. Immerhin hatten die was (in Echtzeit) zum Vorzeigen. Was hast du zum Vorzeigen?
Cubemaps berechnen den Spiegeleffekt auch nur für den Mittelpunkt des Objektes. In der Industrie werden aber schon mal korrekte Bilder benötigt.
zumindest gibt es schon spiele die das bei heutiger hardware in echtzeit zeigen können, bei riddick sieht es sogar richtig gut aus.Es sieht gut aus – aber zum Preis, dass sie nicht völlig korrekt sind. Das ist bei Spielen auch nicht notwendig.
Die gibt es aber. Schau mal ins neuste nVIDIA-SDK. Vor allem mit D3D10 gibt's da etliche sehr interessante Ansätze.
Und so einfach wie du tust sind die echten korrekten Penumbra-Schatten mit Raytracing nämlich auch nicht. Monte-Carlo Sampling von der Fläche der Lichtquelle aus ist brutal teuer und man braucht viele Rays dafür.Die Demo der Uni Saarland berechnete in Bewegung nur wenige Strahlen und verfeinerte das Bild, wenn sich nichts bewegte. Klar sind korrekte Schatten sehr teuer. Das ist nunmal so.
Anstatt zu sagen "Schau mal ins SDK"wäre eine genauere Angabe nützlich.
http://developer.download.nvidia.com/presentations/2007/gdc/UsingD3D10Now.pdf
U.a. Seite 80 ff.
Da müssen die Leute von der Uni Saarland ja ziemliche Nixblicker sein. Immerhin hatten die was (in Echtzeit) zum Vorzeigen. Was hast du zum Vorzeigen?
http://forum-3dcenter.org/vbulletin/showpost.php?p=4979465&postcount=40
Cubemaps berechnen den Spiegeleffekt auch nur für den Mittelpunkt des Objektes. In der Industrie werden aber schon mal korrekte Bilder benötigt.
Es geht mir aber nicht um "die Industrie" (was auch immer das sein soll).
Und nein, ich werde meinen Ton dir ggü. nicht ändern solange du dich ggü. jeglicher Kritik verschließt. Die Praxis unterscheidet sich von der Theorie nunmal ziemlich. Und falls mich mal wieder jemand falsch verstehen sollte, ich hab nichts gegen Raytracing. Aber der "heilige Gral" in Sachen Schattenberechnung ist es bei der "Effizienz" ganz bestimmt nicht.
Und dann ein prolliges "3D-Guru" als Usertitel und komische Pseudodefinitionen ala MDR, die keinerlei Praxisrelevanz haben. Das geht mir am meisten aufn Sack. Aths ich geb dir einen Rat: Wenn du wirklich was über 3D-Grafik lernen willst wirf den Compiler an und bastel damit rum. Sonst wirst du immer nur an der schönen Oberfläche kratzen. Die Realität darunter sieht ganz anders aus.
Markchen
2007-04-01, 10:20:46
Da müssen die Leute von der Uni Saarland ja ziemliche Nixblicker sein.
Nanana hier wird doch nix böses über Saarländer gesagt ? :P
Edit: und ausserdem sind die Jungs hier führend in der KI-Forschung ^^
RavenTS
2007-04-01, 12:47:51
Das wär ja furchtbar! :biggrin:
Was mir etwas vom stilistischen her auf den Magen schlägt ist die fehlende Einleitung, es wird direkt mit der Tür ins Haus gefallen. Mag sowas net... ;(
Edit: und ausserdem sind die Jungs hier führend in der KI-Forschung ^^
Das liegt aber auch nur daran, dass wir das DFKI und nen guten Computerlinguistik Fachbereich hier haben. Die Fachbereich Informatik eigene KI Forschung ist eigentlich kaum existient. ;)
Aths vermittelt immer den Eindruck, dass die Raytracingabteilung so groß wäre. Dabei sind das nur 5-10 Leute als Teil eines Lehrstuhls für Computergrafik, der ein Bruchteil der Größe der Computergrafikarbeitsgruppe von H.P. Seidel (wer sich mit Freiformflächen beschäftigt hat, sollte den kennen) am MPI 25m weiter hat.
Da immer von den Leuten der Saarbrücker Uni zu sprechen... Naja. ;)
Das liegt aber auch nur daran, dass wir das DFKI und nen guten Computerlinguistik Fachbereich hier haben. Die Fachbereich Informatik eigene KI Forschung ist eigentlich kaum existient. ;)
Aths vermittelt immer den Eindruck, dass die Raytracingabteilung so groß wäre. Dabei sind das nur 5-10 Leute als Teil eines Lehrstuhls für Computergrafik, der ein Bruchteil der Größe der Computergrafikarbeitsgruppe von H.P. Seidel (wer sich mit Freiformflächen beschäftigt hat, sollte den kennen) am MPI 25m weiter hat.
Da immer von den Leuten der Saarbrücker Uni zu sprechen... Naja. ;)Als Grafikfan ist mir von der Saarbrücker Uni natürlich vor allem der Grafikteil bekannt, der ja inzwischen auch Weltgeltung hat. Leider erweckt deren Pressearbeit gelegentlich den Eindruck als ginge es vor allem darum, Computerspielgrafik zu revolutionieren.
Gerne nehme ich Anmerkungen auf, um sie in einem möglichen zweiten Artikel zu verarbeiten ("Sie haben das Recht, Ihr Wissen zu teilen. Alles was Sie sagen, kann in einem Artikel verwendet werden!") Da ich gerne konkrete Namen nenne und nur ungerne diffus das Forum als eine Quelle angebe, wäre ich froh wenn du dich angemeldet schreiben würdest.
Das wär ja furchtbar! :biggrin:
Was mir etwas vom stilistischen her auf den Magen schlägt ist die fehlende Einleitung, es wird direkt mit der Tür ins Haus gefallen. Mag sowas net... ;(Hrm ... das mit Wolfenstein und Doom ist eigentlich die Einleitung (die zum Schluss dazukam.) Ich hätte auch damit beginnen können dass ich die Begriffe nenne, worum es geht – allerdings war der Artikel ursprünglich nicht als der erste 3DCenter-Artikel speziell zum Thema Raytracing gedacht und vielmehr, darüber zu berichten was die Uni Saarland auf der CeBit vorgestellt hat. (Ob andere Arbeitgruppen von dieser Uni auch auf der CeBit 2007 mit einem Stand waren, weiß ich jetzt nicht.) Der Artikel war original als Teil des CeBit-Reports gedacht weshalb ich mich nicht mit langen Einleitungen aufhalten wollte. Sprachliche Unzulänglichkeiten im Artikel lenken wahrscheinlich von der Gedankenführung ab:
(1) Zeigen, dass Raytracing-Prinzipien in der Spiele-Grafik nichts neues sind.
(2) Kurz ausführen, dass Rasterung aufgeholt hat.
(3) Einstieg in den eigentlichen Report: Ein paar Zahlen zur Uni-Saarland-Raytracing-Lösung
(4) Diskussion der Einsatzreife
(4a) Problem Geometriedetail
(4b) Problem Schatten
(4c) Problematik weitere Grafik-Effekte
(5) Erneut kurz ausführen, dass auch Rastergrafik nicht am Ende der Entwicklung ist
(6) Hinweis, dass auch Echtzeit-Raytracing noch weiterentwickelt werden wird
http://developer.download.nvidia.com/presentations/2007/gdc/UsingD3D10Now.pdf
U.a. Seite 80 ff.Das PDF spricht von "Perceptually accurate soft shadows" und von "Penumbra estimate uses PCF" (Hervorhebungen von mir.) Steht im 3DC-Artikel irgendwo, dass mit Rastergrafik keine gut gefakten Schatten möglich sind?
Ich weiß nicht, wie korrekt die Schattenwurf-Demo arbeitet die die Saarbrücker Uni auf der CeBit zeigte. Vielleicht gibts da auch noch einige Vereinfachungen. Um es korrekt zu machen, kommt man aber bei Rastergrafik in Teufels Küche. Dass es auch mit Raytracing irre aufwendig ist, verschweigt der Artikel nicht. Dass die (Raster-) GPUs auch für Schattenwurf immer besser werden, steht ebenfalls im Artikel. Insofern finde ich es ein starkes Stück zu lesen Sorry, aber der Artikel gefällt mir mal wieder überhaupt nicht. Völlig an der Realität vorbei. – schreib einen besseren Artikel und ich bin der erste, der Leo drängt, ihn auf der Hauptseite zu veröffentlichen.
http://forum-3dcenter.org/vbulletin/showpost.php?p=4979465&postcount=40Hast du auch was eigenes anzubieten? Meine Schatten-Demo (www.dudv.de/files/3dcf/Haus-Schatten1(gefixt).rar) Anno 2003 ist zwar ziemlich einfach (und die Seitenwände werden falsch beleuchtet – ich hab die Normalisierung vergessen, kleine Flächen sind dunkler) aber dafür ist alles selbst erdacht und umgesetzt. edit: Habe eben eine gefixte Version hochgeladen, die Beleuchtungshelligkeiten auf der Hausfläche sind jetzt korrekt.
Es geht mir aber nicht um "die Industrie" (was auch immer das sein soll).Mir aber. Steht so auch im Artikel. ... Das war jetzt alles was du inhaltlich auf meine Antwort noch anzumerken hattest?
Und nein, ich werde meinen Ton dir ggü. nicht ändern solange du dich ggü. jeglicher Kritik verschließt.Ich bin nicht bereit, mir jeden Tonfall bieten zu lassen und auf deine (auch im weiteren Posting) ganzen Sachen einzugehen, die im Artikel gar nicht drinstanden bzw. auf deinen Missverständnissen beruhen.
Im Prinzip lässt sich mittels Raytracing alles berechnen, wenn das physikalische Verhalten des echten Lichtes bekannt ist.
Wie verhält sich denn das fertige Bild, wenn man
in einer 3d Szene, welche mit Raytracing dargestellt wird,
diese 3d Szene mit Lichtgeschwindigkeit durchquert?
Verhält sich dann das Licht physikalisch korrekt auch so wie in Echt?
D.h. es wird alles schwarz um einen herum?
Wie verhält sich denn das fertige Bild, wenn man
in einer 3d Szene, welche mit Raytracing dargestellt wird,
diese 3d Szene mit Lichtgeschwindigkeit durchquert?
Verhält sich dann das Licht physikalisch korrekt auch so wie in Echt?
D.h. es wird alles schwarz um einen herum?Solche Sachen könnte man einbauen, das dürfte allerdings bei den derzeit geplanten Anwendungen komplett ohne Belang sein. Allerdings bleibt Lichtgeschwindigkeit Lichtgeschwindigkeit unabhängig von der Geschwindigkeit des Beobachters.
Wie verhält sich denn das fertige Bild, wenn man
in einer 3d Szene, welche mit Raytracing dargestellt wird,
diese 3d Szene mit Lichtgeschwindigkeit durchquert?
Verhält sich dann das Licht physikalisch korrekt auch so wie in Echt?
D.h. es wird alles schwarz um einen herum?
die szene verhält sich physikalisch korrekt, indem verhindert wird dass die lichtgeschwindigkeit überhaupt erreicht wird ;)
ein anderer Gast
2007-04-02, 00:27:21
Nicht nur die Anforderungen an die Grafik steigen. In Gran Turismo 4 spiegelt sich zum Beispiel nur eine Fakeumgebung in den Autos. Mir wäre es viel wichtiger, mehr als 6 Autos gleichzeitig auf der Strecke zu haben (und auch ein Schadensmodell geboten zu bekommen) als korrekte Spiegel-in-Spiegel-Effekte zu sehen..
Das sehe ich anders, da noch gar nicht absehbar ist, inwieweit sich ein korrekter Spiegel in Spiegel Effekt auf das Gameplay auswirkt.
In der Realität genügen z.B. schon kleinste Spiegelungen oder durch Spiegelungen verursachte Blendungen um z.b. ein Auto, das von links überholen will, wahrzunehmen ohne es direkt zu sehen.
Das gleiche kann man sich auch in einer Szene für Ego-Shooter gut vorstellen.
Durch Spiegeleffekte wird es möglich, daß man einen Soldaten der auf einem Berg mit einem Stück Metall hantiert, sehen kann, wenn das Stück Metall das Sonnenlicht zurückspiegelt.
Die Spielemechanischen Möglichkeiten sind noch gar nicht abzusehen, was da alles möglich werden könnte, wenn Spiegel in Spiegel Effekte z.b. bis zu 4-8 Iterationen weit sichtbar werden.
Außerdem wirkt die 3d Szene dadurch deutlich natürlicher und nicht so steril.
Und was mich bei Spielen mit Rastergrafik schon immer gestört hat, ist,
daß es in Autorennspielen oder Flugsimulatoren (ein Kampfjet hat Spiegel!) kaum vernünftige Spiegel gibt, das man die eigene Spielfigur oder den Gegner nicht durch die Spiegelung im Wasser sehen kann und das man von nahezu keinem Gegenstand wie Fensterscheiben, Alufelgen und Co. geblendet wird.
Wie sieht es eigentlich mit Grafiktricks aus?
Ich habe mal irgendwo gelesen, daß Grafiktricks und Effekte für Computerspiele, die mit der Rastergrafiktechnik realisiert wurden, mit Raytracing nicht mehr möglich sind.
Leider gab es dazu keine Beispiele und keine weiterführenden Informationen.
Könnte hier von euch 3d Gurus das etwas näher erörtern und vielleicht ein Beispiel nennen,
wo das so ist?
Wie sieht es z.b. mit Billboarding und Impostern bei Raytracinggrafik aus?
Funktioniert das noch, oder muß jedes Objekt in einer Raytracingszene aus einem richtigen 3d Objekt bestehen?
die szene verhält sich physikalisch korrekt, indem verhindert wird dass die lichtgeschwindigkeit überhaupt erreicht wird ;)
Falsch, die ganze Szene verbigt sich und die Farben verschieben sich ins rote bis sie schwarz werden und man nichts mehr sieht.
Siehe auch die Screenshots und Videos hier:
http://www.spacetimetravel.org/tuebingen/tue0.html
Das sehe ich anders, da noch gar nicht absehbar ist, inwieweit sich ein korrekter Spiegel in Spiegel Effekt auf das Gameplay auswirkt.
In der Realität genügen z.B. schon kleinste Spiegelungen oder durch Spiegelungen verursachte Blendungen um z.b. ein Auto, das von links überholen will, wahrzunehmen ohne es direkt zu sehen.
Das gleiche kann man sich auch in einer Szene für Ego-Shooter gut vorstellen.
Durch Spiegeleffekte wird es möglich, daß man einen Soldaten der auf einem Berg mit einem Stück Metall hantiert, sehen kann, wenn das Stück Metall das Sonnenlicht zurückspiegelt.
Die Spielemechanischen Möglichkeiten sind noch gar nicht abzusehen, was da alles möglich werden könnte, wenn Spiegel in Spiegel Effekte z.b. bis zu 4-8 Iterationen weit sichtbar werden.
Außerdem wirkt die 3d Szene dadurch deutlich natürlicher und nicht so steril.Eben, die spielmechanischen Möglichkeiten sind gar nicht abzusehen. Das ist auch ein Grund, der vorläufig gegen spielrelevante Physik bzw. eine weitgehend interagierbare Spielwelt spricht.
Und was mich bei Spielen mit Rastergrafik schon immer gestört hat, ist,
daß es in Autorennspielen oder Flugsimulatoren (ein Kampfjet hat Spiegel!) kaum vernünftige Spiegel gibt, das man die eigene Spielfigur oder den Gegner nicht durch die Spiegelung im Wasser sehen kann und das man von nahezu keinem Gegenstand wie Fensterscheiben, Alufelgen und Co. geblendet wird.Man kann nicht alles zugleich zu haben. Wenn du eine Wunschliste erstellst und dann die Einträge priorisierst, sind bessere Spiegeleffekte dann wirklich ganz oben?
Wie sieht es eigentlich mit Grafiktricks aus?
Ich habe mal irgendwo gelesen, daß Grafiktricks und Effekte für Computerspiele, die mit der Rastergrafiktechnik realisiert wurden, mit Raytracing nicht mehr möglich sind.
Leider gab es dazu keine Beispiele und keine weiterführenden Informationen.
Könnte hier von euch 3d Gurus das etwas näher erörtern und vielleicht ein Beispiel nennen,
wo das so ist?
Wie sieht es z.b. mit Billboarding und Impostern bei Raytracinggrafik aus?
Funktioniert das noch, oder muß jedes Objekt in einer Raytracingszene aus einem richtigen 3d Objekt bestehen?("3D-Objekt" bitte mit Bindestrich.) Natürlich kann man auch bei Raytracing Imposter nutzen. Nun ist nicht immer einfach zu entscheiden, ab wann man was als "korrekt berechnet" bezeichnet und wann man es als "Fake" betrachtet. Da gibt es auch Graustufen. (Sind Fototexturen zum Beispiel noch korrekt oder nicht eigentlich auch nur Fakes?)
In der Regel nutzt man Raytracing, um Dinge zu berechnen, die mit Rastergrafik so nicht möglich sind – insofern besteht nicht unbedingt Bedarf nach Rastergrafikeffekten. Zum Beispiel ergibt Schattenwurf via Shadow Volumes beim Raytracing nicht viel Sinn. Man kann auch nicht à la Rastergrafik Multisampling-Antilialiasing machen. Man kann aber so oder so mit Raytracing eine Grafikqualität erzeugen, die der Rastergrafik mindestens gleichwertig oder überlegen ist – nur ist dies sehr viel rechenaufwändiger. Deshalb wird in Spielen nur Rastergrafik genutzt. Für bestimmte Effekte ist aber durchaus in Diskussion, im Pixelshader gewisse Raytracing-Verfahren nachzubilden, zum Beispiel bei diesem "3D-Bumpmapping" (gemeint ist jetzt ein Parallaxmapping-Verfahren welches eine tatsächlich raue Oberfläche erzeugt.) Die Verfahren sind schon entwickelt. In Spielen gibts sie bisher nicht – sie sind noch vom Rechenaufwand her zu teuer.
Falsch, die ganze Szene verbigt sich und die Farben verschieben sich ins rote bis sie schwarz werden und man nichts mehr sieht.
Siehe auch die Screenshots und Videos hier:
http://www.spacetimetravel.org/tuebingen/tue0.html
Through the city at nearly the speed of light
auch in dieser simulation wird nicht gezeigt wie man sich mit lichtgeschwindigkeit fortbewegt.
FlashBFE
2007-04-02, 17:22:42
Eben, die spielmechanischen Möglichkeiten sind gar nicht abzusehen. Das ist auch ein Grund, der vorläufig gegen spielrelevante Physik bzw. eine weitgehend interagierbare Spielwelt spricht.
Um das nochmal zu präzisieren: Die spielmechanischen Möglichkeiten sind dann das Problem, wenn sie nicht alle Spieler nutzen können oder wollen.
Einfaches Beispiel: FarCry Multiplayer. Früher war auf allen Multiplayerkarten Gras, typische FarCry Qualität eben. Da aber das Gras viel Performance kostete, war es natürlich abschaltbar. Abgeschaltetes Gras im Multiplayer ist aber ein riesen Vorteil, denn so kann sich kein Gegner mehr drin verstecken.
Also gabs nur zwei Möglichkeiten: Entweder Gras für alle oder keinen. Die Konsequenz ist wahrscheinlich bekannt: Kein Gras mehr, hässliche und teils langweilige Maps blieben übrig.
Man kann nicht alles zugleich zu haben. Wenn du eine Wunschliste erstellst und dann die Einträge priorisierst, sind bessere Spiegeleffekte dann wirklich ganz oben?
Bei mir belegen sie tatsächlich auch einen oberen Platz. Ich kenne nämlich auch kein Rennspiel, wo die Rückspiegel wirklich gut und brauchbar umgesetzt wurden. Und Spiegelungen in diffuser Ausführung haben ja auch nen riesen Einfluss auf die Gesamtstimmigkeit der Beleuchtung. Im Prinzip spiegelt ja jedes Material. Ambient- Licht ist ein Witz dagegen.
Also gabs nur zwei Möglichkeiten: Entweder Gras für alle oder keinen. Die Konsequenz ist wahrscheinlich bekannt: Kein Gras mehr, hässliche und teils langweilige Maps blieben übrig.
Nein, es gab nur eine Möglichkeit.
Denn Gras für alle kann man sehr leicht umgehen.
Einfach die Transparenz der Gastexturen auf 100 % schalten und schon sieht man alle Gegner.
Bei mir belegen sie tatsächlich auch einen oberen Platz. Ich kenne nämlich auch kein Rennspiel, wo die Rückspiegel wirklich gut und brauchbar umgesetzt wurden.
TDU? die spiegel sehen da jedenfalls sehr gut aus, wobei das problem eher ist dass man mit einem monitor die spiegel garnicht wirklich zu gesicht bekommen kann, sofern sie an ihren realen stellen platziert sind.
Monger
2007-04-03, 09:25:22
Das gleiche kann man sich auch in einer Szene für Ego-Shooter gut vorstellen.
Durch Spiegeleffekte wird es möglich, daß man einen Soldaten der auf einem Berg mit einem Stück Metall hantiert, sehen kann, wenn das Stück Metall das Sonnenlicht zurückspiegelt.
Da kommen wir wieder an eine andere, leidige Schwachstelle. Klassischerweise verlangt Raytracing, dass die gesamte Szene vollständig bekannt ist. Auch wenn sie nicht sichtbar ist, so muss sie doch vollständig in einem aktuellen Zustand im Speicher liegen.
Das heißt: wenn ich von einem Turm auf eine 20 km² große Fläche herab schaue, auf der sich hunderte von Personen tummeln, muss ich deren Animationen allesamt vollständig berechnen, weil es könnte ja sein dass sie gerade ein Stück Metall im richtigen Winkel halten und so die Sonne reflektieren! ;)
In der Realität wird man an der Stelle wohl auch wieder mit LOD arbeiten, und kann damit diesen Effekt auch genausowenig darstellen wie ein Rasterizer.
auch in dieser simulation wird nicht gezeigt wie man sich mit lichtgeschwindigkeit fortbewegt.Lichtgeschwindigkeit zu erreichen ist für Materie auch unmöglich.
Um das nochmal zu präzisieren: Die spielmechanischen Möglichkeiten sind dann das Problem, wenn sie nicht alle Spieler nutzen können oder wollen.
Einfaches Beispiel: FarCry Multiplayer. Früher war auf allen Multiplayerkarten Gras, typische FarCry Qualität eben. Da aber das Gras viel Performance kostete, war es natürlich abschaltbar. Abgeschaltetes Gras im Multiplayer ist aber ein riesen Vorteil, denn so kann sich kein Gegner mehr drin verstecken.
Also gabs nur zwei Möglichkeiten: Entweder Gras für alle oder keinen. Die Konsequenz ist wahrscheinlich bekannt: Kein Gras mehr, hässliche und teils langweilige Maps blieben übrig.Die zunehmende Wichtigkeit von Multiplayer-Modi ist auch ein Grund, warum ich für spielrelevante Physikbeschleunigung relativ wenig Spielraum sehe. Will man mit Raytracing einen spielrelevanten Grafik-Effekt erzeugen ergibt es natürlich nur Sinn, wenn auf allen Plattformen die entsprechende Performance geboten wird.
Bei mir belegen sie tatsächlich auch einen oberen Platz. Ich kenne nämlich auch kein Rennspiel, wo die Rückspiegel wirklich gut und brauchbar umgesetzt wurden. Und Spiegelungen in diffuser Ausführung haben ja auch nen riesen Einfluss auf die Gesamtstimmigkeit der Beleuchtung. Im Prinzip spiegelt ja jedes Material. Ambient- Licht ist ein Witz dagegen.In Spielen ist es oft nicht so wichtig, obs korrekt ist oder nur gut genug aussieht. Angenommen, mit Raytracing könnte man ein Wasserglas fotorealistisch rendern, während du mit Rasterung bei nur minimalen optischen Nachteilen mindestens 10 Gläster rendern könntest. Wofür würde sich der Spiel-Designer entscheiden?
Man könnte so argumentieren, dass "gut gemachtes Faken" den Aufwand weg von der Hardwarepower hin zur Manpower verschiebt. Man spart mittel vorberechneten oder vorgezeichneten Sachen Rechenaufwand und erreicht nur ein gut aussehendes, aber eigentliches optisch falsches Ergebnis. Daraus ließen sich zwei sich widersprechende Dinge ableiten:
- Das Ziel ist, dereinst ein optisch korrektes Ergebnis zu erhalten. Faken ist nur eine Methode die man nutzt, bis die erforderliche Rechenleistung verfügbar ist.
- Das Ziel ist es, mit möglichst geringem Hardwareaufwand eine glaubwürdige Grafik zu schaffen wobei es auf tatsächliche Korrektheit nicht ankommt.
Da kommen wir wieder an eine andere, leidige Schwachstelle. Klassischerweise verlangt Raytracing, dass die gesamte Szene vollständig bekannt ist. Auch wenn sie nicht sichtbar ist, so muss sie doch vollständig in einem aktuellen Zustand im Speicher liegen.
Das heißt: wenn ich von einem Turm auf eine 20 km² große Fläche herab schaue, auf der sich hunderte von Personen tummeln, muss ich deren Animationen allesamt vollständig berechnen, weil es könnte ja sein dass sie gerade ein Stück Metall im richtigen Winkel halten und so die Sonne reflektieren! ;)Zumindest bei teilweiser Verdeckung (durch irgendwas) wäre es sicherlich möglich, zunächst mit einer groben Vorberechnung bestimmte Bereiche von vornherein ausschließen zu können. Guckt man direkt auf eine freie Fläche wie in deinem Beispiel, hinge es auch von der Bildschirmauflösung ob, ob man zufällig eine Reflexion sieht oder nicht. Handelt es sich um einen spielrelevanten Effekt, müsste die Fläche groß- und der Winkel genau genug sein, damit er garantiert ausgelöst werden kann. Ansonsten könnte man das auch mit eingesprenkelten Zufallsreflexionen faken (und bräuchte dafür nicht zwingend Raytracing.)
Man hat ja manchmal im (oder auf dem) Asphalt kleine blanke Steine oder Scherben, die glitzern. Ich könnte mir allerdings schwer einen spielrelevanten Effekt damit vorstellen. Muss man irgendwie mit Spiegeln Licht- oder Laserstrahlen umleiten, um in einem Rollenspiel (oder Shooter-Puzzle) eine Tür zu öffnen, geht das auch mit Raster-Verfahren.
Ansonsten könnte man das auch mit eingesprenkelten Zufallsreflexionen faken (und bräuchte dafür nicht zwingend Raytracing.)
Das ist aber nicht das gleiche, denn dann würde die Spiegelung ja mit Absicht durchgeführt werden, während es
beim Raytracing Glücksache wäre zur richtigen Zeit am richtigen Ort zu sein und Glück ist auch ein spielerisches Element und in diesem Fall wäre es auch mehr Realismus.
Gerade wenns nur Glück ist, könnte man es auch gut faken.
Ich bin nicht völlig gegen Raytracing in Spielen, halte aber den Trade-Off für nicht besonders gut.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.