Bericht Bericht: „Quake Wars“ mit Raytracing

elchtest

Newbie
Registriert
Feb. 2006
Beiträge
6
In einem Forschungsprojekt hat Intel das Spiel „Enemy Territory: Quake Wars“ um einen Raytracer erweitert. Intels Softwareentwickler Daniel Pohl beschreibt auf ComputerBase den Werdegang der Entwicklung und die Fortschritte, die das Team auf dem Weg zum Real-Time-Raytracing erzielen konnte. Die Beschreibungen werden durch zahlreiche Bilder untermauert.

Zum Artikel: Bericht: „Quake Wars“ mit Raytracing
 
Ausgesprochen interessant...
 
oh das muss viel getan werden. DIe performance ist unterirdisch. Also für normaluser unbrauchbar
 
abgesehen von der Performance ... vllt liegt es ja an mir, aber was soll daran besser aussehen als an der Shaderei?
 
Wieso macht ihr euch so Probleme wegen der Rechenleistung?
Eine GTX295 per CUDA Raytracen lassen.

Ich schätze mal, dass der kommende Larrabee von Intel eine API zum raytracen dabei hat, womit dann die Technik massentauglich wird.
 
Danke für den Artikel!

Obwohl Intels anstehende Many-Core Architektur namens „Larrabee“ hauptsächlich als Rasterisierungskarte entwickelt wurde, so ist sie dennoch ebenfalls komplett frei programmierbar. Dies eröffnet einige sehr interessante Möglichkeiten, um Raytracing auf der Larrabee-Architektur auszuführen.

Dafür ist dieses Projekt, nämlich für Larabee. Schließlich ist Larabee immer noch maßgeblich eine Vielzahl von x86 Prozessoren, die eben bei Raytracing einer GPU überlegen sind. Bei Rasterisierung dagegen sieht Intel kein Licht gegen moderne GPUs, das wird wohl auch mit Larabee schwierig, zumindest wenn man die Performance pro Watt mit berechnet. GPUs sind einfach reine Rasterisierungskraftwerke, die seit Jahren speziell darauf getrimmt werden und dementsprechend effizient arbeiten.
Intel versucht, meiner Ansicht nach, mit der Entwicklung der Raytracing-Engine Larabee eine Grundlage im Spielersegment zu verschaffen. Man will die X86 Technologie weiter forcieren. Dagegen verfolgt der GPGPU-Ansatz gerade einen Weg weg von x86 und nimmt damit Intel die Lizenz-Karte aus der Hand.
Die Entwicklung einer Raytracing-Engine ist Intels Versuch, Larabee eine Daseinsberechtigung im Endkundensegement, abseits der Workstations zu verschaffen. Bleibt abzuwarten ob das gelingt. Hierbei ist auch zu bedenken, dass Intel keine leistungsfähigen GPUs herstellt und dementsprechend bei zunehmender Verbreitung von GPGPU (General Purpose GPU) schnell ins Hintertreffen geraten könnte. Mal sehen wie gut die GPUs das Raytracing beherrschen, Nvidia und Ati haben ja schon erste Ansätze gezeigt, dass es möglich ist. Nvidia Raytracing Demo

Allerdings ist auch zu bemerken, dass für die immer größeren Polygonmengen in Zukunft wohl Raytracing doch einen Vorteil über Rasterisierung bringen wird, da der Rechenaufwand nicht linear mit der Polygonmenge ansteigt. (edit: siehe Post #9 Anteru) Raytracing wird also sicherlich die Zukunft auch für Spiele sein; allerdings glaube ich, dass ein kombinierter Ansatz, der die Vorteile von Rasterisierung bei der Berechnung realitätsnaher, komplexer Texturen mit der Vorteilen von Raytracing, was die Berechnung optischer Effekte, wie Spiegelungen etc. angeht, verbindet, zunächst vielversprechender sein wird.
 
Zuletzt bearbeitet:
Das liest sich aber schon sehr gut und ist sehr interessant. Schon enorm, was die Performance binnen 4 Jahren zugelegt hat. Das ist sehr beachtlich! Dieser Bericht ist wie die vorherigen von Daniel sehr lesenswert und gut verständlich.
 
Also das mit dem linearem Aufwand vs. logarithmisch für Ray-tracing ist Krampf, es hindert mich keiner, nen K-D-Baum beim rasterisieren zu nehmen, und dann damit die Grafikkarte zu füttern, und dann bin ich genauso logarithmisch.

Pro Dreieck ist die Arbeit beim Ray-tracing auch immer höher, als bei Rasterisierung. Richtig lohnen tut sich Ray-tracing eigentlich nur für sekundäre Strahlen (also Reflektionen, Refraktionen, Schatten und so), nicht für primäre. Sieht man ja auch schön bei Renderern wie mental ray oder PRMan, die rasterisieren auch *so viel wie geht* und nehmen ray-tracing nur als Fallback her. mental ray nimmt ja sogar OpenGL her wenns geht zum Rasterisieren.

Was ebenfalls ständig übersehen wird: Klar ist ein Ray-traced Schatten viel besser als Shadow Maps, nur, wenn ich soft-shadows mit Ray-tracing will, brauch ich halt einfach mal 200x so viele Rays wenns nach was aussehen soll. Bei Shadow Maps steigt der Aufwand für ein bisschen Blur nur sehr gering. Sobald man dann shadow maps im Ray-tracer hernimmt, kann man sich das ray-tracen aber gleich wieder sparen... ist halt nur interessant für Effekte, die man sonst gar nicht gefaked kriegt (Ambient Occlusion, Color Bleeding, Deep Shadows und so, aber da arbeitet man ja auch dran die ohne Ray-tracing hinzukriegen, siehe Screen-Space-Ambient-Occlusion)
 
Ich denke auch das die GPU mal wieder alle Performanceprobleme lösen wird:
https://www.computerbase.de/2008-08/nvidia-zeigt-raytracing-auf-der-gpu/
Die CPUs sind einfach zu ineffizient und langsam gegenüber GPUs, vorallem entwickeln sie sich bei weitem nicht so schnell weiter bzw. die Leistungssteigerung mit einer neuen Architektur ist gerade zu lächerlich gering im Vergleich zur GPU -> siehe Nehalem.

Das hat ja Intel sogar erkannt und bastelt daher unter anderem an Larabee X86.

Edit: Zu langsam :rolleyes:

MfG Kasmo
 
Zuletzt bearbeitet:
faszinierend, sicher hat nicht jeder 24 Kerne zur Hand, aber ein Nehalem kommt ca auf die selbe wenn nicht sogar auf deutlich höhere Percormance als ein 6Kern Dunnington. Der Povray Bench zeigt wieviel Optimierung da noch machbar ist. Entwickelt man spezielle Hardware dafür, die sehr parallelisiert vorgehen kann, wird man noch weitaus deutlichere Performancesprünge sehen. Noch ist es relativ unwirtschaftlich sepzielle Hardware dafür zu entwickeln, man kann nur hoffen dass Intel genau diesen Weg mit Larabee gewählt hat. Darauf bin ich wirklich gespannt!

Eins ist jedoch sicher, Daniel Pohl und sein Team wird sicher nicht nur aus Lust und Laune bei Intel gute Gehälter beziehen und Spiele programmieren. Er entwickelt sicher mit anderen eine inteleigene Raytracingengine die sicher durch Optimierung so performant und ansehnlich wie möglich sein soll. Gelingt es Intel hier einen Standard zu schaffen und die passende Hardware zu bauen, haben sie einne sehr gute Marktposition, kaufen einige Spieleschmieden für Raytracingprojekte auf und ehe man sich versieht muss man INTEL GPUs kaufen und die IntelEngine einsetzen.

Vllt laufen insgeheim auf ersten Samples Spiele wie QuakeWars Raytraced schon auf FullHD mit hohen Framezahlen auf einer oder mehreren 250 W GPU... wer weiß ;)
 
Anteru schrieb:
Also das mit dem linearem Aufwand vs. logarithmisch für Ray-tracing ist Krampf, es hindert mich keiner, nen K-D-Baum beim rasterisieren zu nehmen, und dann damit die Grafikkarte zu füttern, und dann bin ich genauso logarithmisch.
Oh, wusste ich nicht. Danke für die Info.
 
der performance sprung ist schon beachtlich.
allerdings wurde da auch ein sehr utopischer prozessor verwendet.

Aber noch 6-8jahre dann sieht das wieder ganz anders aus.
So richtige "Wow" momente hatte ich bei keinem der bilder.
Aber wenn ein Game von grund auf mit dieser technik programmiert wird (kann man das so sagen?) sieht man bestimmt einen Unterschied.
auf heutige games raytrace "draufzusetzen" zeigt mmn. bestimmt nicht das ganze leistungspotenzial

trotzdem: Netter Bericht und glückwunsch an den autor, das er einen job bei intel hat und in CA arbeitet ;)
 
Ich möchte Herrn Daniel Pohl auch dieses Mal wieder für den toll geschriebenen und sehr verständlichen Beitrag danken. Ich bin sicher kein Laie, aber als Experte auf dem Gebiet von Rasterising und Raytracing möchte ich mich sicher auch nicht bezeichnen - für meine Verhältnisse, mit entsprechenden Vorkenntnissen (sicher begründet in der jahrelangen Spielpraxis und damit verbundenen, stetig voranschreitenden Grafikeigenschaften) ist dieser beitrag lückenlos und einfach lesbar - wie jeder bisher erschienene Beitrag von Herrn Pohl auch schon zuvor.

Der Zusammenhang mit Larrabee und Raytracing wird mittlerweile unausweichlich und das Warten immer schwerer. Die Kombination der bisher bewährten Techniken, also selektives Raytracing in einer allgemeinen Rasterising-Engine ist sicher ein guter Ansatz. Der riesige Vorteil, den hier Larrabee wahrscheinlich gegenüber anderen Grafikkarten aus Konkurrenzhäusern haben wird, ist jedoch eindeutig a) die Anzahl der vielen und b) gleichzeitig frei programmierbaren Kernen. Selbst, wenn man die Eigenschaften der "Many-Cores" auf die vielen Shadereinheiten von heutigen Grafikkarten übertragen würde, so hätten diese immer noch die Probleme, nicht derart dediziert und zudem nicht komplett frei programmierbar zu sein.

In sofern wäre es denkbar, wenngleich aber auch ungewöhnlich, wenn Intel hier ein As aus dem Ärmel zaubern könnte, das sowohl ATI, als auch nVidia neue Wege des Renderings aufzeigt oder gar aufzwingt.

Cya, Mäxl
 
Dazu muss man sagen, dass Intel sicherlich wieder mal versucht eine Technologie durch zu drücken, wenn auch mit Geld.

Jedoch sollte man nicht vergessen, dass gerade AMD/ATi sicherlich die technologie hat auch in diesem Bereich noch dagegen halten zu können, sofern es von Relevanz sein wird. Bei nVidia bin ich etwas skeptischer :/

PS: Für den Endanwender, für den solche Produkte ja sind, lohnt sich Raytracing noch nicht. Auch wenn Intel drauf steht ;)
 
Die Beweggründe, die dich dazu bringen zu glauben, dass AMD/ATI hier mit- oder gar gegenhalten könnte, nVidia aber nicht, würden mich doch sehr interessieren. Beide haben tolle Ansätze im GPGPU-Bereich und beide haben mittlerweile Schnittstellen, die unsere herkömmlichen Grafikkarten seit einigen Generationen für viele andere Dinge verwenden lassen.

Cya, Mäxl
 
DJMadMax schrieb:
Die Beweggründe, die dich dazu bringen zu glauben, dass AMD/ATI hier mit- oder gar gegenhalten könnte, nVidia aber nicht, würden mich doch sehr interessieren. Beide haben tolle Ansätze im GPGPU-Bereich und beide haben mittlerweile Schnittstellen, die unsere herkömmlichen Grafikkarten seit einigen Generationen für viele andere Dinge verwenden lassen.

Cya, Mäxl

er bezieht sich sicher auf raytracing auf x86-architektur. da kann nvidia nicht gegenhalten, weil sie keine haben, amd mit ihren prozessoren schon... :D
 
Ich muss sagen, mir hat der Artikel längst nicht so gefallen wie die vergangenen Beiden.

Interessant war die Problematik mit transparenten Texturen, aber sonst hat Daniel Pohl nichts wirklich neues offenbart. Die "Menge Screenshots zur Veranschaulichung" war auch recht ernüchternd, die 10 Bilder haben keinen besonderen Eindruck gemacht; ein kurzes HD Video wäre hier viel ausdrucksvoller gewesen, da man Echtzeitraytracing einfach in Bewegung sehen muss.

Irgendwie werde ich das Gefühl nicht los, hier hat jemand eine revolutionäre Technologie und einen großartigen Fortschritt absolut unter Wert verkauft. Die exklusiven Möglichkeiten, Performancevorteile unter bestimmten Bedingungen und allgemein die Bedeutung von Raytracing sind nicht wirklich angekommen. Schade.

Nichts desto Trotz, ich glaube fest daran, dass es in den nächsten 5 Jahren Echtzeitraytracing eine viel größere Bedeutung haben wird, und das nicht zuletzt auf dem Spielemarkt. Dann aber von der GPU oder einer ähnlich spezialisierten Recheneinheit berechnet.
 
1.Mir fällt auf, dass die Lastverteilung in dem Blau Rot Bild auch bei den Bäumen die ganz in der Ferne stehen extrem ist. Also warum diese Bäume genuso aufwändige Schatten brauchen ist mir schleierhaft? Der Schatten dieser Bäume kann absolut einfach dargestellt werden und kann so jede Menge Prformance sparen. Also alles was weiter weg ist sollte ein einfacheres Rechenmodell bekommen zur Schattenberechnung.

2.Dann sollte die Schattenberechnung nicht durch die real im Spiel dargestellten Texturen stattfinden, was absolut übertrieben und viel zu aufwändig ist, siehe die vielen Ebenen in dem Baum. Vielmehr sollte meiner Meinung nach eine für den Spieler unsichtbare Texturebene eingeführt werden, die für den Schatten am Boden zuständig ist, aber an sonsten unsichtbar bleibt. Der Vorteil ist das nicht durch zich Ebenen mit immer neuen Strahlen der Schatten berechnet werden muß, sondern nur durch eine oder zwei Schichten die sich leicht gegeneinander bewegen können. In der Praxis beim Spielen schaut man eh meißt nur auf den Boden und sieht Schatten die möglichst echt aussehen sollten, oder schaut nach oben in den Baum und da will man dann Strahlen sehen von der Sonne, die durch eine für den Spieler unsichtbare Textur erzeut werden könnten. Der Anspruch alle sichtbaren Texturen für die Schatttenerzeugung mit einbeziehen zu wollen ist der falsche Ansatz wie ich finde.

Das Raytraycing eine große Zukunft hat, da bin ich mir ziemlich sicher. Denn man ahmt die realen physikalichen Gegebenheiten des Lichtes nach und versucht nicht die Effekte aufwändig zu faken, was immer schwieriger werden wird je näher es der Realität kommen soll. Deshalb hat das Raytracing meiner Meinung nach eine große Zukunft vor sich. Man denke nur an die realen Lichtbrechungen und Spiegelungen im Wasser und Glas usw. die ja auch im Artikel beschrieben worden sind. Es müssen allerdings Prioritäten gesetzt werden, und da scheint noch erheblicher Entwicklungsbedarf zu bestehen. Ich wünsche allen Entwicklern die richtige Nase diese zu finden...
 
Zuletzt bearbeitet:
ja jetzt das ganze über gpu berechnen und dann klappts auch mit der performance wenn nicht mit dieser generation dann spätestens mit der übernächsten.

Warum wir da auf diese verkappte cpu von intel warten sollten oder warum das nur mit der tollen intelhardware laufen soll leuchtet mir nicht ein. In spätestens 2 jahren werden wir die ersten spiele sehen (nicht alte aufgepimmt die nur auf abstrusser hardware laufen) die zumindest teilweise dieses verfahren benjutzen freu mich schon auf die spiegelungen etc.

Das wird wohl dann der erste große fortschritt seit doom2 grafik. Freu mich drauf.
 

Ähnliche Themen

Zurück
Oben