Archiv verlassen und diese Seite im Standarddesign anzeigen : Intel zeigt auf Games Convention Raytraycing in Echtzeit
Die Demo schafft bei 8 Kernen eine flüssige Darstellung mit 127 Bildern die Sekunde. Da mit Raytracing der Rechenaufwand für zusätzliche Polygone nur minimal (genauer gesagt logarithmisch) steigt, erwartet man für 2009 bereits erste Spiele mit Raytracing-Engine, die auf 16 Kern-Prozessoren ihre Grafikpracht entfalten können. Noch mehr Kerne könnte man dann in realistischere Beleuchtung mit indirektem Licht etc. investieren. Denn Raytracing skaliert auf Mehrkern-Systemen linear. Mit 16 Kernen konnte das 15,2fache der Leistung eines Systems mit einem Kern erzielt werden.
http://www.hartware.de/column_23.html
http://www.heise.de/newsticker/meldung/94619
Wieder der log-Mythos...
Und warum alle diesen Herrn Pohl so hypen versteh ich auch nicht. Soweit ich weiß hat er nur Spiele auf Basis des fertigen Saarland-Tracers entwickelt.
Also ich bin durchaus bereit mitzuhypen, wenn ich denn mal ordentlich Screenshots sehen könnte, die mich so richtig vom Hocker reißen :frown:
bilder von wiki
http://upload.wikimedia.org/wikipedia/commons/c/cb/Alexclass.jpg
http://upload.wikimedia.org/wikipedia/commons/0/0d/Global_illumination.JPG
http://upload.wikimedia.org/wikipedia/commons/8/8d/Glas-2000-enery.jpg
können einzelne szene wie diese schon mit quads gerendert werden bei zb 800x600 ?
.. also ich meinte : in Echtzeit
gehe ich richtig in der annahme dass beim rechnen sehr viele Floatpoint rechnungen vorkommen? würde dem neuen AMD quad ja zuspielen.
Raytracing braucht vor allem intelligentes Speichermanagement, ich glaube nicht dass AMD da besonders gute Karten hat.
.. also ich meinte : in Echtzeit
Nein.
Simon
2007-08-22, 04:13:59
bilder von wiki
http://upload.wikimedia.org/wikipedia/commons/c/cb/Alexclass.jpg
http://upload.wikimedia.org/wikipedia/commons/0/0d/Global_illumination.JPG
http://upload.wikimedia.org/wikipedia/commons/8/8d/Glas-2000-enery.jpg
können einzelne szene wie diese schon mit quads gerendert werden bei zb 800x600 ?
Nein, dafür in Echtzeit (>=20FPS) auf einer einzelnen 8800GTS in 1280x1024....alles dynamisch natürlich...
Nein, dafür in Echtzeit (>=20FPS) auf einer einzelnen 8800GTS in 1280x1024....
Also die unteren beiden könnte ich mir vorstellen, aber das hier?
http://upload.wikimedia.org/wikipedia/commons/c/cb/Alexclass.jpg
Da braucht man ja im normalfall schon ewigkeiten für einen Frame.
Simon
2007-08-22, 06:39:36
Also die unteren beiden könnte ich mir vorstellen, aber das hier?
http://upload.wikimedia.org/wikipedia/commons/c/cb/Alexclass.jpg
Da braucht man ja im normalfall schon ewigkeiten für einen Frame.
Und? Auf dem Bild gibt es ein bischen Reflection/Refraction, eine Lichtquelle, harte Schatten und hauptsächlich diffuse Flächen. Daran ist nix kompliziert. Wenn es mal Area Light Sources und Soft Shadows wären, was man auf den Screenshots von Intel und so sehen würde... Aber nein, dass ist natürlich aufwendig zu berechnen, auch mit Raytracing ;D
Ganon
2007-08-22, 08:12:40
Und warum alle diesen Herrn Pohl so hypen versteh ich auch nicht.
Nunja, seine Fortschritte mit seiner Engine sind ja schon beachtlich, finde ich. Immerhin rechnete man damals noch Quake3 auf (ich glaub) 32 Xeons im Cluster mit nicht mal annährend so viel FPS.
Ob es jetzt für Spiele taugt, weiß ich natürlich nicht. Er meint ja selbst das es noch nicht ausreicht.
Warum Intel ihn so "groß raus bringt" ist ja logisch ;) Bei Raytracing ist die Grafikkarte nicht mehr wichtig, sondern nur noch die CPU. Denn momentan wird ja im Spielebereich immer mehr die Grafikkarte wichtig, anstatt die CPU. Das schmeckt Intel sicherlich so gar nicht.
pixelguy
2007-08-22, 09:47:45
Also ich finde diese Technik sehr beeindruckend... Nur denke ich, dass es ohne einen 16-Core Prozessor noch nicht wirklich Spaß macht. Man muss ja auch noch andere Dinge wie Physik, KI, usw. mit einrechnen. Das soll ja dann auch alles die CPU machen :)
puntarenas
2007-08-22, 11:03:16
Raytracing in Spielen (http://www.computerbase.de/artikel/software/2007/bericht_raytracing_spielen/), ein Bericht auf Computerbase vom Januar.
Dann hört man von Intel, man arbeite dort an einer Multicore-Grafikkarte auf Basis des guten, alten Pentium MMX mit unzähligen Cores und nun bekommt man erste Ergebnisse der Arbeit an einer Raytracing-Engine zu sehen. Es wundert mich, dass hier so wenig los ist, wohin der Gigant Intel im Bereich Computergrafik will, scheint doch nun klar zu sein.
Wie ist das denn eigentlich mit herkömmlichem GPU-KnowHow? Könnte beispielsweise Nvidia das zur Raytracingberechnung ummodeln oder müssten sie quasi bei Null beginnen, während AMD ja sicherlich die Basis einer geeigneten Architektur längst in der Schublade hat. Wird der Grafikkartensektor statt von Nvidia und AMD/ATI vielleicht bereits mittelfristig von Intel und AMD/ATI beherrscht?
AnarchX
2007-08-22, 11:10:35
Mit CUDA bzw. CTM sollte Raytracing auf aktuellen DX10-Karten auch kein Problem sein, nur wohl nicht so schnell wie Rasterizing.
Und bis Raytracing sich wirklich durchsetzten kann, dauert es noch einige Jahre. Zudem bräuchte Intel auch ein Zugpferd, wie eine Next-Gen-Konsole die auf einem Raytraycer aufbaut um sich überhaupt zu etablieren in einem Markt der von Raterizern beherrscht wird.
Und die Devs haben natürlich auch noch ein Wörtchen mitzureden und da stehen wohl nicht alle so positiv gegenüber RT. ;)
pixelguy
2007-08-22, 11:14:52
Zudem bräuchte Intel auch ein Zugpferd, wie eine Next-Gen-Konsole die auf einem Raytraycer aufbaut um sich überhaupt zu etablieren in einem Markt der von Raterizern beherrscht wird.
Kann man davon ausgehen, dass es nur einen Weg pro Spiel gibt, oder kann man evtl. die Techniken verbinden? Dann wäre ja eine langsame Eroberung des Marktes möglich.
Ich denke aber spätestens mit der PS4 oder X-Box 720 wird es nur noch Raytraycer geben. Und alle Konsolen haben nur noch Intel-Chips drin :)
Simon
2007-08-22, 11:15:43
Raytracing in Spielen (http://www.computerbase.de/artikel/software/2007/bericht_raytracing_spielen/), ein Bericht auf Computerbase vom Januar.
Einige Aussagen davon sind mal... naja...
Dann hört man von Intel, man arbeite dort an einer Multicore-Grafikkarte auf Basis des guten, alten Pentium MMX mit unzähligen Cores und nun bekommt man erste Ergebnisse der Arbeit an einer Raytracing-Engine zu sehen. Es wundert mich, dass hier so wenig los ist, wohin der Gigant Intel im Bereich Computergrafik will, scheint doch nun klar zu sein.
Wo ist wenig los? Im Raytracing-bereich? Nicht wirklich. Und Intel sucht händeringend nach neuen Anwendungen für ihre CPUs und Raytracing taugt dafür recht gut. Skaliert ja auch wunderbar.
Wenn du dir mal die Screenshots genauer ansiehst, dann sieht man da gaaaanz tolle Reflektionseffekte, dafür weder tolle Beleuchtung, noch Soft Shadows oder ähnliche Sachen. Die kann ich auf einer normalen GPU machen, auch physikalisch korrekt und dabei wesentlich schneller. Die Schatten sehen aus wie in Doom3 vor drei oder vier Jahren. Da nützt es auch nix, wenn man die Schatten mit "10 Zeilen implementiert".
Wie ist das denn eigentlich mit herkömmlichem GPU-KnowHow? Könnte beispielsweise Nvidia das zur Raytracingberechnung ummodeln oder müssten sie quasi bei Null beginnen,
Die fangen sicherlich nicht bei Null an.
während AMD ja sicherlich die Basis einer geeigneten Architektur längst in der Schublade hat.
AMD gestehst du ein fertiges Raytracing-Chip Design zu, Nvidia nicht? :|
Raytracing hat sicherlich seine Vorteile gegenüber Rasterisation, hat aber auch (wie alles andere auch) Nachteile. Den Hype darum kann ich nicht wirklich verstehen...
puntarenas
2007-08-22, 11:27:49
Wenn du dir mal die Screenshots genauer ansiehst, dann sieht man da gaaaanz tolle Reflektionseffekte, dafür weder tolle Beleuchtung, noch Soft Shadows oder ähnliche Sachen.
Wer interessiert sich denn in einem solch frühen Stadium für Screenshots? Was mit Raytracing möglich ist, kannst du dir ja im Kino anschauen, im Moment halt nocht nicht in Echtzeit für den Heimcomputer zu haben.
AMD gestehst du ein fertiges Raytracing-Chip Design zu, Nvidia nicht? :|
Wenn etwas dran ist, dass Intel tatsächlich einfach das alte Pentium MMX Design als Grundlage genommen hat, dann dürfte AMD schnell nachziehen können. Nvidia dagegen besitzt IIRC bis dato keine Prozessorensparte, daher die Frage, was ihnen im Falle des Falles ihr GPU-KnowHow nützen würde.
Monger
2007-08-22, 11:44:25
bilder von wiki
http://upload.wikimedia.org/wikipedia/commons/c/cb/Alexclass.jpg
http://upload.wikimedia.org/wikipedia/commons/0/0d/Global_illumination.JPG
http://upload.wikimedia.org/wikipedia/commons/8/8d/Glas-2000-enery.jpg
können einzelne szene wie diese schon mit quads gerendert werden bei zb 800x600 ?
... und wie immer, nur klinisch sterile Screenshots.
Wenn ich einmal eine Raytracing Szene sehe, wo man den Staub in der Luft hängen sieht, bin ich beeindruckt. Früher nicht.
Simon
2007-08-22, 11:44:51
Wer interessiert sich denn in einem solch frühen Stadium für Screenshots? Was mit Raytracing möglich ist, kannst du dir ja im Kino anschauen, im Moment halt nocht nicht in Echtzeit für den Heimcomputer zu haben.
Nach was willst du denn sonst schauen, wenn nicht Screenshots? Implementierung? Laufzeitverhalten? Skalierung? Features?
Ein Großteil der Raytracing-Effekte im Kino ist ... verbesserungswürdig, aber das gehört hier nicht hin.
Wenn etwas dran ist, dass Intel tatsächlich einfach das alte Pentium MMX Design als Grundlage genommen hat, dann dürfte AMD schnell nachziehen können. Nvidia dagegen besitzt IIRC bis dato keine Prozessorensparte, daher die Frage, was ihnen im Falle des Falles ihr GPU-KnowHow nützen würde.
Ein dedizierter Raytracing-Chip ähnelt einer CPU nicht im entferntesten. Nvidia hat teilweise recht eng mit den Jungs aus Saarbrücken zusammengearbeitet. Wenn da Wissen fehlt, wird es eingekauft und fertig. Ist ja nicht weiter ein Problem...
CrazyIvan
2007-08-22, 13:03:59
Wieder der log-Mythos...
Würde mich mal interessieren. Erzähl mir bitte mehr. Was ist denn die genaue Eingabegröße bei Raytracing, wenns um den Aufwand geht? Die Auflösung, die Anzahl der Polygone, die Anzahl der Strahlen? Weiß davon leider recht wenig...
Nunja, seine Fortschritte mit seiner Engine sind ja schon beachtlich, finde ich.
Er hat aber nichts mit der Engine an sich zu tun. Er verwendet bloß OpenRT.
Da gibt's andere Leute von Saarbrücken die weitaus mehr geleistet haben.
Würde mich mal interessieren. Erzähl mir bitte mehr. Was ist denn die genaue Eingabegröße bei Raytracing, wenns um den Aufwand geht? Die Auflösung, die Anzahl der Polygone, die Anzahl der Strahlen? Weiß davon leider recht wenig...
Erstmal geht das von einem perfekten Szenenaufteilung aus. Die musst du bei dynamischer Geometrie aber dauernd updaten, was sicher nicht log(n) ist. Ich dachte mal das ist gar nicht möglich, wurde inzw. aber anscheinend von einer dt. Uni gelöst (Ulm) war es glaub.
Desweiteren braucht man eh LOD, weil es sonst barbarisch flimmert in der Distanz, d.h. der Log-Faktor bringt einem gar nicht so viel.
Ganon
2007-08-22, 13:29:03
Er hat aber nichts mit der Engine an sich zu tun. Er verwendet bloß OpenRT.
Achso, OK.
Avalox/Gast
2007-08-22, 15:01:25
Der Auftakt für den mit AC'97 gestarteten Weg, Phase zwei ab 2009.
Monger
2007-08-22, 15:15:47
Würde mich mal interessieren. Erzähl mir bitte mehr. Was ist denn die genaue Eingabegröße bei Raytracing, wenns um den Aufwand geht? Die Auflösung, die Anzahl der Polygone, die Anzahl der Strahlen? Weiß davon leider recht wenig...
Ich rede jetzt klar als Laie, und lasse mich gerne korrigieren, aber afaik die Strahlen.
Solange ein Material keine streuenden Eigenschaften hat, ist alles relativ simpel. Dann macht halt der Strahl solange Ping-Pong zwischen allen Flächen, bis er mal auf eine Lichtquelle stößt.
Schlimm wird es, wenn diffuses Licht ins Spiel kommt, weil dann für jeden Punkt mehrere Sekundärstrahlen losgeschickt werden. Wenn du jetzt mehrere Körper mit diffusen Brechungsindizes hast, und dort Licht hin und her pendelt... nunja...
Es gibt wohl Verfahren dafür, die das eine oder andere davon ganz gut simulieren können, aber das sieht nicht immer wirklich gut aus.
Deshalb auch meine Forderung nach Rauch oder Nebel: wenn man per Raytracing mal eine Nebelbank vernünftig ausgeleuchtet bekommt, bin ich überzeugt.
Gerade bei Spielen sind halt Partikeleffekte ziemlich wichtig, und imho fällt auch bei Kinofilmen mit Raytracing auf, dass die Luft immer ganz ungewöhnlich klar ist, und alle Oberflächen wie geleckt aussehen.
Avalox/Gast
2007-08-22, 15:45:01
Da gab es doch vor einiger Zeit grade eine Meldung.
http://www.theinquirer.de/2007/08/13/wissenschaftler_finden_raytracingabkurzung.html
sucht mal nach Volumen raytracing.
dort wird berechnet wenn strahlen teilweise streuen und das medium aber teilweise transparent ist -> Wolken, Rauch etc
von Wiki:
Volumenstreuung (http://de.wikipedia.org/wiki/Volumenstreuung)
ermöglicht die realistische Simulation teilweise durchscheinender und das Licht streuender Objekte. Dazu gehören beispielsweise Milch oder Blätter, aber auch das Himmelsblau und atmosphärische Bedingungen.
Nach was willst du denn sonst schauen, wenn nicht Screenshots?
Dir ist aber schon klar, dass Du Screenshots eines Forschungsprojektes mit denen von fertigen Spielen vergleichst? Mit dem enormen Unterschied an Aufwand, der da jeweils reingeflossen ist? Mit dem enormen Vorsprung der Rasterizer, weil sie so lange und so häufig eingesetzt werden?
Als ob man auf diesen Screenshots sehen würde, wie ein entsprechendes echtes Spiel aussehen würde.
In heutigen Filmen ist außerdem schon die Verquickung von echten und computergenerierten Aufnahmen möglich und meistens merkt man es nicht mal. Ich erinnere nur an The Day After Tomorrow. Wurde das etwa mit Rasterizern gemacht? Tjo.
Monger
2007-08-22, 16:09:01
von Wiki:
Volumenstreuung (http://de.wikipedia.org/wiki/Volumenstreuung)
ermöglicht die realistische Simulation teilweise durchscheinender und das Licht streuender Objekte. Dazu gehören beispielsweise Milch oder Blätter, aber auch das Himmelsblau und atmosphärische Bedingungen.
Da kommen wir jetzt halt wieder in Grenzbereiche rein: Algorithmen wie Subsurface Scattering funktionieren mit einem Rasterizer genauso. ATI hat dazu vor einiger Zeit mal ne Techdemo gebracht, und die Unreal Engine 3 beherrscht das von Haus aus.
Imho das wichtigste Argument für Raytracing war doch, dass man alles mit dem selben Verfahren rendern kann, so dass der Designer sich nicht mehr mit technischen Beschränkungen rumplagen muss, sondern alles der Engine überlassen kann.
Aber genau das erfüllt Raytracing eben nicht. Mag sein dass es zwar mit steigender Polygonzahl besser zurecht kommt (wobei ich derzeit keinen Trend und keinen Bedarf für signifikant mehr Polygone sehe), aber es kann nicht mit beliebigen Inhalten gut umgehen.
In heutigen Filmen ist außerdem schon die Verquickung von echten und computergenerierten Aufnahmen möglich und meistens merkt man es nicht mal. Ich erinnere nur an The Day After Tomorrow. Wurde das etwa mit Rasterizern gemacht? Tjo.
Das meiste in Filmen wird in der Tat mit Rasterisierung gemacht.
Bis Cars hat Pixar z.B. keinen einzigen Strahl verwendet und dort auch nur für die Reflexionen der Autos.
Imho das wichtigste Argument für Raytracing war doch, dass man alles mit dem selben Verfahren rendern kann, so dass der Designer sich nicht mehr mit technischen Beschränkungen rumplagen muss, sondern alles der Engine überlassen kann.
Den Satz versteh ich nicht. Ein Artist erstellt eben ein Material und wie das dann gerendert wird kann ihm doch egal sein.
Spasstiger
2007-08-22, 16:26:26
Wie realisiert man eigentlich Texturfilterung und AntiAliasing bei einem Raytracer?
Bei den Quake-4-RT-Screenshots sah ja alles aus wie bei einem Rasterizer mit Point-Sampling.
Und kann sich Raytracing langfristig wirklich gegenüber Rasterizing durchsetzen in Sachen Echtzeitrendering?
Fakt ist ja, dass bei Raytracing der Rechenaufwand mit steigender Szenenkomplexität deutlich geringer ansteigt als bei Rasterizing.
Und da Rasterizer-Chips (heutige GPUs) und Raytracing-Chips im selben Maß leistungsfähiger werden können (gleiches Fertigungsverfahren), muss ja irgendwann der Punkt erreicht sein, wo Raytracing aus Performancesicht sinnvoller ist.
Avalox/Gast
2007-08-22, 16:28:41
Da kommen wir jetzt halt wieder in Grenzbereiche rein: Algorithmen wie Subsurface Scattering funktionieren mit einem Rasterizer genauso. ATI hat dazu vor einiger Zeit mal ne Techdemo gebracht, und die Unreal Engine 3 beherrscht das von Haus aus.
Imho das wichtigste Argument für Raytracing war doch, dass man alles mit dem selben Verfahren rendern kann, so dass der Designer sich nicht mehr mit technischen Beschränkungen rumplagen muss, sondern alles der Engine überlassen kann.
Ich denke, dass es in keiner Weise erforderlich ist, qualitativ eine bessere Lösung zu präsentieren. Es ist unbedingt dabei der Plattformgedanke zu beachten.
Wenn wir Intels Ankündigung so verstehen, wie sie denn in der Kernaussage dasteht, dann haben wir spätestens 2010 die ersten Spiele auf dem Mark, welche keinen dedizierten 3D Beschleuniger in Form einer Grafikkarte benötigen.
Dort wird gar nicht zählen, ob die Technik bessere Ergebnisse liefert, oder nicht auch anders zu realisieren gewesen wäre. Es zählt einfach der Preisvorteil. Kauf eine universelle CPU und spar dir den Kauf einer speziellen Grafikkarte.
Ich denke man sollte eher mal fragen, welcher Stand 2010 hinreichend ist. Wohin entwickelt sich der klassische Ansatz weiter.
Monger
2007-08-22, 16:37:01
Den Satz versteh ich nicht. Ein Artist erstellt eben ein Material und wie das dann gerendert wird kann ihm doch egal sein.
Und das reicht halt leider aktuell nicht aus. Derzeit muss sich ein Artist auch noch darum kümmern, dass z.B. seine Figur nicht zu viele Polygone braucht. Oder dass nicht zu viele dynamische Lichtquellen in einem Raum sind, die die Performance absacken lassen. Oder dass man nicht durch ein kleines Fenster eine gigantisch komplexe Landschaft im Hintergrund sieht (weshalb es bis zur Unreal Engine 2 im Editor ja auch Portale und Antiportale gab, um die Geometry von unsichtbaren Objekten auszublenden).
Zumindest diese Probleme hätte man mit Raytracing nicht.
Dort wird gar nicht zählen, ob die Technik bessere Ergebnisse liefert, oder nicht auch anders zu realisieren gewesen wäre. Es zählt einfach der Preisvorteil. Kauf eine universelle CPU und spar dir den Kauf einer speziellen Grafikkarte.
Ich denke man sollte eher mal fragen, welcher Stand 2010 hinreichend ist. Wohin entwickelt sich der klassische Ansatz weiter.
Gut, das ist ein Argument. Momentan bezweifle ich arg, dass die Raytracer mit Multicore auch nur annähernd in die Nähe von Onboard Grafik kommen werden, aber die Zeit wird es zeigen.
del_4901
2007-08-22, 16:45:13
Wie realisiert man eigentlich Texturfilterung und AntiAliasing bei einem Raytracer?
Bei den Quake-4-RT-Screenshots sah ja alles aus wie bei einem Rasterizer mit Point-Sampling.
distributed-raytracing (auch Monte Carlo Raytracing) ... man schießt einfach Strahlenbündel in den Raum. (is sone Art SSAA)
Und kann sich Raytracing langfristig wirklich gegenüber Rasterizing durchsetzen in Sachen Echtzeitrendering?
Fakt ist ja, dass bei Raytracing der Rechenaufwand mit steigender Szenenkomplexität deutlich geringer ansteigt als bei Rasterizing.
Und da Rasterizer-Chips (heutige GPUs) und Raytracing-Chips im selben Maß leistungsfähiger werden können (gleiches Fertigungsverfahren), muss ja irgendwann der Punkt erreicht sein, wo Raytracing aus Performancesicht sinnvoller ist.
Ich glaube nicht, denn Raytracing lässt sich nicht sogut parallelisieren wie Rasterizer. (Raytracing ist nämlich nicht Datenparallel) Und das finden GPUs mit ihren kleinen Caches, die auf Räumliche-Kohärenz angewiesen sind, nicht so toll.
Für Spezieleffekte bestimmt, aber nur an augewählten Materialen, und nicht für das gesammte Bild.
Oder dass nicht zu viele dynamische Lichtquellen in einem Raum sind, die die Performance absacken lassen.
Raytracing braucht für mehr Lichtquellen auch linear mehr Leistung.
Oder dass man nicht durch ein kleines Fenster eine gigantisch komplexe Landschaft im Hintergrund sieht
Wenn man draußen steht muss man sie doch auch rendern. Das ist wenn man Front-To-Back mit einem Rasterizer rendert kein großes Problem, weil für einen Großteil des Unsichtbaren nur die Vertices transformiert werden müssen. Außerdem gibt's seit D3D10 sehr gute Occlusion-Test-Möglichkeiten um das noch weiter zu optimieren. Man testet praktisch die Scenegraph-Nodes ob sie überhaupt sichtbar sind direkt auf der GPU gegen den Z-Buffer und sie rendert nur wenn das so ist. Das geht extrem fix.
Lasst euch mal nicht so vom Mythos Raytracing blenden. Es ist nämlich bei weitem nicht so dass die Szene beliebig komplex sein darf und es nur auf die Anzahl der Pixel ankommt.
Ich glaube nicht, denn Raytracing lässt sich nicht sogut parallelisieren wie Rasterizer.
Bitte was? Raytracing skaliert praktisch perfekt linear mit der Anzahl der Cores. Brauchst doch bloß das Bild aufteilen und verteilen.
Edit: Ach du meinst auf der GPU? Da ist vor allem das Problem, dass man pro Pixel eigentlich andere Branches hat und die Granularität der GPUs derzeit noch bei 4x4 Pixeln oder größer ist.
del_4901
2007-08-22, 16:56:51
Bitte was? Raytracing skaliert praktisch perfekt linear mit der Anzahl der Cores. Brauchst doch bloß das Bild aufteilen und verteilen.
Vorsicht du hast das Datenparallel vergessen zu quoten, auf nem MultiCore lässt sich das top-parallelisiern, Aber in einem Cluster sieht es schon anders aus, da müssen nämlich Berechnungen mehrfach ausgeführt werden, da ich die (Zwischen-)Ergebnisse nicht "Inplace" speichern kann.
Es gibt Parallele Algorithmen, (die lassen sich parallel ausführen) und es gibt Datenparallel. (da kan ich im vorraus auch die Eingabedaten parallel aufteilen)
Das darf ich bei nem RT nicht machen!
Edit: Ach du meinst auf der GPU? Da ist vor allem das Problem, dass man pro Pixel eigentlich andere Branches hat und die Granularität der GPUs derzeit noch bei 4x4 Pixeln oder größer ist.
Daran wird sich so schnell auch nichts ändern, sonnst müsste ich ja Recheneinheiten opfern für größere Caches ... die bräuchten ne bessere Prediction, und wir bräuchten komplexe Datenstrukturen (letzeres kommt hoffendl. noch)
Naja mal sehen was intel aus larabee macht
Monger
2007-08-22, 17:06:11
Raytracing braucht für mehr Lichtquellen auch linear mehr Leistung.
Ein Rasterizer aber nicht, es sei denn man setzt auf Stencil Shadows. Aber darum geht es auch gar nicht so sehr...
Wenn man draußen steht muss man sie doch auch rendern. Das ist wenn man Front-To-Back mit einem Rasterizer rendert kein großes Problem, weil für einen Großteil des Unsichtbaren nur die Vertices transformiert werden müssen. Außerdem gibt's seit D3D10 sehr gute Occlusion-Test-Möglichkeiten um das noch weiter zu optimieren. Man testet praktisch die Scenegraph-Nodes ob sie überhaupt sichtbar sind direkt auf der GPU gegen den Z-Buffer und sie rendert nur wenn das so ist. Das geht extrem fix.
Ich hab ja auch schon angedeutet, dass es ein überholtes Problem ist. Ich hab das Beispiel nur deshalb genannt, weil es halt in den meisten aktuellen Engines noch so ist.
Lasst euch mal nicht so vom Mythos Raytracing blenden. Es ist nämlich bei weitem nicht so dass die Szene beliebig komplex sein darf und es nur auf die Anzahl der Pixel ankommt.
Das ist ja GENAU das was ich sagen will!
Raytracing wird als die eierlegende Wollmilchsau beworben, weil angeblich vieles viel eleganter geht als mit Rasterizing. Das stimmt zwar auch, aber dafür tun sich an anderen Stellen Probleme auf die man mit einem Rasterizer eben nicht hat.
Ein Rasterizer aber nicht, es sei denn man setzt auf Stencil Shadows. Aber darum geht es auch gar nicht so sehr...
Natürlich ist das auch sonst linear. Was denn sonst? Ob man Stencil Shadows oder Shadowmaps benützt ist in dem Punkt ziemlich egal.
Ich hab ja auch schon angedeutet, dass es ein überholtes Problem ist. Ich hab das Beispiel nur deshalb genannt, weil es halt in den meisten aktuellen Engines noch so ist.
Ist es nicht. Selbst Morrowind hat schon drauf geschissen irgendwas zu cullen und hat die Szene einfach komplett von vorne nach hinten gerendert. Die GPUs haben gut genug selbsständig gecullt damit es lief.
Daran wird sich so schnell auch nichts ändern, sonnst müsste ich ja Recheneinheiten opfern für größere Caches ... die bräuchten ne bessere Prediction, und wir bräuchten komplexe Datenstrukturen (letzeres kommt hoffendl. noch)
Was hat denn die Branchgranularität mit der Cachegröße zu tun?
del_4901
2007-08-22, 17:13:36
Was hat denn die Branchgranularität mit der Cachegröße zu tun?
Es ist so "Großgranular" weil die Caches so klein sind, und die "Prediction" damit besser klar kommt.
Man spart damit aber sicher auch andere Logik. So kann immer schön in Blöcken gerechnet werden.
Simon
2007-08-22, 21:49:01
Dir ist aber schon klar, dass Du Screenshots eines Forschungsprojektes mit denen von fertigen Spielen vergleichst? Mit dem enormen Unterschied an Aufwand, der da jeweils reingeflossen ist? Mit dem enormen Vorsprung der Rasterizer, weil sie so lange und so häufig eingesetzt werden?
Ich habe Rasterisation-Forschung mit Raytracing-Forschung verglichen. Was ist daran nicht legitim? Dass Raytracing seit ein paar Monaten massiv gehypt wird? ;D Beide Algorithmen sind in etwa gleich alt und es wurde sicherlich auch das gleiche Maß an Forschung reingesteckt.
In heutigen Filmen ist außerdem schon die Verquickung von echten und computergenerierten Aufnahmen möglich und meistens merkt man es nicht mal.
Ich seh solche "computergenerierten Aufnahmen" in min. 95% der Fälle sofort...Aber darum gehts hier gar nicht...
Und das reicht halt leider aktuell nicht aus. Derzeit muss sich ein Artist auch noch darum kümmern, dass z.B. seine Figur nicht zu viele Polygone braucht. Oder dass nicht zu viele dynamische Lichtquellen in einem Raum sind, die die Performance absacken lassen. Oder dass man nicht durch ein kleines Fenster eine gigantisch komplexe Landschaft im Hintergrund sieht (weshalb es bis zur Unreal Engine 2 im Editor ja auch Portale und Antiportale gab, um die Geometry von unsichtbaren Objekten auszublenden).
Zumindest diese Probleme hätte man mit Raytracing nicht.
Du irrst.
Für dich noch ein paar Screenshots (http://www.pbrt.org/gallery.php): Scroll etwas runter, da gibt es auch eine Szene mit Rauch. Allerdings zeigt die nicht den kompletten Rauch, sondern nur einen Teilaspekt der Simulation. Das kriegt man mit GPUs heutzutage problemlos hin. Hier (http://www.vicampus.com/sponza.exr) mal eine Raytracing-Szene, die nicht nur die ach-so-tollen Reflexionen zeigt (wie in den ganzen gehypten Bildern). Renderzeit übrigens 10h auf einem Single-Core Core2Duo. Kannst ja mal linear die Zeit extrapolieren, wenn man die Auflösung auf heute übliche anhebt...
Ich denke, dass es in keiner Weise erforderlich ist, qualitativ eine bessere Lösung zu präsentieren. Es ist unbedingt dabei der Plattformgedanke zu beachten.
Wenn wir Intels Ankündigung so verstehen, wie sie denn in der Kernaussage dasteht, dann haben wir spätestens 2010 die ersten Spiele auf dem Mark, welche keinen dedizierten 3D Beschleuniger in Form einer Grafikkarte benötigen.
Dort wird gar nicht zählen, ob die Technik bessere Ergebnisse liefert, oder nicht auch anders zu realisieren gewesen wäre. Es zählt einfach der Preisvorteil. Kauf eine universelle CPU und spar dir den Kauf einer speziellen Grafikkarte.
Öhm, die Situation gibt es heute schon. :|
Lasst euch mal nicht so vom Mythos Raytracing blenden. Es ist nämlich bei weitem nicht so dass die Szene beliebig komplex sein darf und es nur auf die Anzahl der Pixel ankommt.
Danke :massa: ;D
Monger
2007-08-22, 22:03:01
Hier (http://www.vicampus.com/sponza.exr) mal eine Raytracing-Szene, die nicht nur die ach-so-tollen Reflexionen zeigt (wie in den ganzen gehypten Bildern). Renderzeit übrigens 10h auf einem Single-Core Core2Duo. Kannst ja mal linear die Zeit extrapolieren, wenn man die Auflösung auf heute übliche anhebt...
Öhm... was ist denn exr für ein Dateiformat? :confused:
Simon
2007-08-22, 22:06:42
Öhm... was ist denn exr für ein Dateiformat? :confused:
OpenEXR (http://www.openexr.com/): "OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications."
Monger
2007-08-22, 22:13:58
Hab es auch grade gesehen. Gibt es irgendeine andere Möglichkeit sich einen Viewer zu holen, ohne den ganzen Krempel erst in Visual Studio kompilieren zu müssen?
Sonyfreak
2007-08-22, 22:37:54
Hab es auch grade gesehen. Gibt es irgendeine andere Möglichkeit sich einen Viewer zu holen, ohne den ganzen Krempel erst in Visual Studio kompilieren zu müssen?Am Mac kann man das Bild einfach mit der Bildervorschau öffnen.
mfg.
Sonyfreak
del_4901
2007-08-22, 23:07:06
Am Mac kann man das Bild einfach mit der Bildervorschau öffnen.
mfg.
Sonyfreak
Da ist doch der Wurm drin!
DR.ZEISSLER
2007-08-22, 23:21:01
Am Mac kann man das Bild einfach mit der Bildervorschau öffnen.
mfg.
Sonyfreak
ja geht.
doc
raytracerdemo? aus 2000: http://www.pouet.net/prod.php?which=5
Hab es auch grade gesehen. Gibt es irgendeine andere Möglichkeit sich einen Viewer zu holen, ohne den ganzen Krempel erst in Visual Studio kompilieren zu müssen?
Sicher. Ich habe mir gerade extra dafür den qtpfsgui (http://qtpfsgui.sourceforge.net/) (wunderschöner Name) für dieses eine Bild runtergeladen. :D Läuft auf allen Betriebssystemen.
Spasstiger
2007-08-23, 05:00:17
Mit Photoshop kann man Bilder im OpenEXR-Format auch öffnen und die Belichtung anpassen, um in den vollen Dynamikgenuß zu kommen.
Avalox/Gast
2007-08-23, 12:12:25
Passt ja grade noch zum Thema. Was für Traditionalisten.
http://people.csail.mit.edu/jrk/lightspeed/lightspeed_preprint.pdf
aus
http://www.heise.de/tr/artikel/94653
ScottManDeath
2007-08-24, 11:45:17
Wie realisiert man eigentlich Texturfilterung und AntiAliasing bei einem Raytracer?
Bei den Quake-4-RT-Screenshots sah ja alles aus wie bei einem Rasterizer mit Point-Sampling.
Texturfilterung kann man ganz dumm machen, indem man einfach nach dem Hit eines Dreiecks und Bestimmung der Texturkoordinaten ein bilineares oder meintwegen bikubisches Sample zieht. Allerdings hat man dann ein Problem, wenn viele Texel auf einen Pixel fallen, denn das gibt Aliasing vom Feinsten =)
Man könnte allerdings für jeden Pixel 4 Rays an den Ecken des Pixels tracen und somit herausfinden, welche Fläche der Pixel im Texturraum belegt. Dies ist ein Viereck. Jetzt kann man entweder ganz dumm aus diesem Viereck den "Durchschnitt" der Texturwerte bestimmen.
Oder man ist schlau und baut sich aus der Textur eine MipMap Pyramide aus Bildern mit jeweils halber Höhe/Breite zusammen. Man kann dann mit dem Verhältniss der Pixel/Texelgröße das entsprechende MipLevel auswählen und von dort ein bilineares Sample ziehen. Oder trilinear aus 2 benachbarten MipLeves sampeln. Oder man kann bei stark verzerrten Pixel/Texel Verhältnissauch anisotrop mehrere sampels aus einem MipLevel ziehen. =)
Wenn Aliasing bei RT standardmäßig mit SSAA bekämpft wird, dann hat man doch eh perfekte (weil winkelunabhängige) AF umsonst. :wink:
Für einen 16xAF-Effekt braucht man 32x Supersampling. Bissel teuer, meinste nicht?
Außerdem macht man bei Raytracing normal nachträglich Antialiasing nur an den Stellen die auch wirklich zu hohe Frequenzen haben.
Für einen 16xAF-Effekt braucht man 32x Supersampling. Bissel teuer, meinste nicht?
eigentlich braucht man dafür 256x-SSAA.
Mikey
2007-09-20, 22:24:36
IDF: Quake4 per Raytracing in HD mit 90 FPS
[...] Pohl verwendete für die Demo einen Rechner mit zwei Xeon-X5365-Prozessoren mit Clovertown-Kern. Die Maschine war also mit insgesamt acht Kernen ausgestattet. Bei 1.280 x 720 Pixeln kam der Rechner damit auf rund 90 Bilder pro Sekunde, die Vorführung wirkte absolut flüssig. Damit rückt 3D-Spielen per Raytracing in greifbare Nähe, denn Intel arbeitet mit der Plattform "Skull Trail" bereits an 8-Core-Systemen für daheim - wenn auch zu exorbitanten Preisen. [...]
http://www.golem.de/0709/54901.html
Wenn die Engine weiterhin so verbessert wird dann läßt sich spätestens 2009 mit einem 16-Thread-Nehalem wirklich was damit anfangen :)
AnarchX
2007-09-20, 22:45:47
Wohl eher ein 64-128 Thread Larrabee-Chip auf einer externen Karte.
Man möchte ja auch Fortschritte im Gameplay erleben (~ höherer CPU-Leistungsbedarf) und nicht von der einen tollen Reflektion zur anderen gehen. ;)
Ja. Vor allem muss man dann ja noch Shading usw. machen was bei GPUs gerade das meiste an Leistung schluckt. Das sind ja nur Texturen, Licht und Schatten.
Zudem sinkt die Leistung von Raytracing ganz beträchtlich bei dynamischer Geometrie.
Wohl eher ein 64-128 Thread Larrabee-Chip auf einer externen Karte.
Wer weiß, der Cell soll ja nicht dafür taugen und scheint für meine ungeübten Augen eine "ähnliche" Architektur besitzen.
Aber selbst wenn im Optimalfall irgendein Studio schon 2008 mit der Spiele Entwicklung startet wirds wohl kaum was vor 2011 bis man sich ein Raytracing Spiel kaufen kann :)
Cell hat mit Larrabee nichts zu tun, außer dass er viele Kerne hat und diese relativ einfach gehalten sind.
Cell hat mit Larrabee nichts zu tun, außer dass er viele Kerne hat und diese relativ einfach gehalten sind.also genau wie der larrabee?
tokugawa
2007-09-21, 19:04:11
also genau wie der larrabee?
Lies Codas Satz nochmal:
Cell hat mit Larrabee nichts zu tun, außer dass er viele Kerne hat und diese relativ einfach gehalten sind.
Vielleicht bist du des Deutschen nicht so mächtig, aber Coda hat doch schon gesagt dass diese Gemeinsamkeit die einzige Gemeinsamkeit ist. Dein "also genau wie der larrabee?" ist irgendwie eine relativ seltsame Antwort darauf. Zumal diese Gemeinsamkeit keine Gleichheit impliziert.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.