Raytracing-Hardware - Ray-tracing hardware

Quake Wars: Ray Traced wurde unter Verwendung des inzwischen eingestellten Intel Xeon Phi PCI 3.0 Boards gerendert .

Raytracing-Hardware ist eine spezielle Computerhardware, die zur Beschleunigung von Raytracing- Berechnungen entwickelt wurde.

Einführung: Raytracing und Rasterisierung

Das Problem des Renderns von 3D-Grafiken kann konzeptionell als das Finden aller Schnittpunkte zwischen einem Satz von „ Primitiven “ (typischerweise Dreiecken oder Polygonen ) und einem Satz von „Strahlen“ (typischerweise einem oder mehreren pro Pixel) dargestellt werden.

Bis 2010 verwendeten alle typischen Grafikbeschleunigungskarten, sogenannte Graphics Processing Units (GPUs), Rasterisierungsalgorithmen . Der Raytracing- Algorithmus löst das Rendering- Problem auf andere Weise. In jedem Schritt findet es alle Schnittpunkte eines Strahls mit einem Satz relevanter Primitive der Szene.

Beide Ansätze haben ihre eigenen Vor- und Nachteile. Die Rasterung kann unter Verwendung von Geräten durchgeführt werden, die auf einem Stream-Computing- Modell basieren , jeweils ein Dreieck, und der Zugriff auf die gesamte Szene ist nur einmal erforderlich. Der Nachteil der Rasterung besteht darin, dass nicht-lokale Effekte, die für eine genaue Simulation einer Szene erforderlich sind, wie Reflexionen und Schatten, schwierig sind; und Refraktionen fast unmöglich zu berechnen.

Der Strahlverfolgungsalgorithmus ist von Natur aus zum Skalieren durch Parallelisieren einzelner Strahlrenderings geeignet . Alles andere als Raycasting erfordert jedoch eine Rekursion des Raytracing-Algorithmus (und wahlfreien Zugriff auf den Szenengraphen ), um ihre Analyse abzuschließen, da reflektierte, gebrochene und gestreute Strahlen erfordern, dass auf verschiedene Teile der Szene auf eine Weise nicht erneut zugegriffen wird leicht vorhergesagt. Es kann jedoch problemlos verschiedene Arten von physikalisch korrekten Effekten berechnen , was einen viel realistischeren Eindruck als die Rasterung liefert.

Die Komplexität eines gut implementierten Raytracing-Algorithmus skaliert logarithmisch; dies liegt daran, dass Objekte (Dreiecke und Ansammlungen von Dreiecken) in BSP-Bäumen oder ähnlichen Strukturen platziert werden und nur analysiert werden, wenn ein Strahl das Begrenzungsvolumen der Binärraumpartition schneidet.

Implementierungen

Es wurden verschiedene Implementierungen von Raytracing-Hardware entwickelt, sowohl experimentell als auch kommerziell:

  • (1996) Forscher der Princeton University schlugen vor, DSPs zu verwenden, um eine Hardwareeinheit für die Raytracing-Beschleunigung mit dem Namen "TigerSHARK" zu bauen.
  • Implementierungen von Volumenrendering unter Verwendung von Raytracing-Algorithmen auf kundenspezifischer Hardware wurden 1999 von Hanspeter Pfister und Forschern der Mitsubishi Electric Research Laboratories durchgeführt . mit dem vg500 / VolumePro ASIC-basierten System und 2002 mit FPGAs von Forschern der Universität Tübingen mit VIZARD II
  • (2002) Das Computergrafiklabor der Universität des Saarlandes unter der Leitung von Dr.-Ing Slusallek hat Prototypen von Raytracing-Hardware hergestellt, einschließlich des FPGA-basierten datengesteuerten SaarCOR-Chips (Saarbrückens Coherence Optimized Ray Tracer) und eines fortschrittlicheren programmierbaren (2005) Prozessors, die Ray Processing Unit (RPU)
  • (2002–2009) Das in Großbritannien ansässige ART VPS-Unternehmen (gegründet 2002) verkaufte Raytracing-Hardware für das Offline-Rendering. Die Hardware verwendete mehrere spezialisierte Prozessoren, die Strahlen-Dreieck-Schnitttests beschleunigten. Die Software ermöglichte die Integration mit den Autodesk Maya- und Max -Datenformaten und nutzte die Renderman-Szenenbeschreibungssprache zum Senden von Daten an die Prozessoren (das .RIB- oder Renderman Interface Bytestream-Dateiformat). Ab 2010 produziert ARTVPS keine Raytracing-Hardware mehr, sondern weiterhin Rendering-Software.
  • (2009 - 2010) Intel präsentierte 2009 auf dem Intel Developer Forum seinen Prototyp "Larrabee" GPU und Knights Ferry MIC mit einer Demonstration von Echtzeit-Raytracing.
  • Siliconarts entwickelte eine dedizierte Echtzeit-Raytracing-Hardware (2010). RayCore (2011), das weltweit erste Echtzeit-Raytracing-Halbleiter-IP, wurde angekündigt.
  • Caustic Graphics hat eine Plug-in-Karte entwickelt, die "CausticOne" (2010), die die globale Beleuchtung und andere strahlenbasierte Rendering-Prozesse beschleunigt , wenn sie mit einer PC-CPU und -GPU gekoppelt wird. Die Hardware ist so ausgelegt, dass sie gestreute Strahlen (typischerweise durch globale Beleuchtungsprobleme erzeugt) in kohärentere Sätze (geringere räumliche oder Winkelstreuung) für die weitere Verarbeitung durch einen externen Prozessor organisiert.
  • Imagination Technologies produzierte nach der Übernahme von Caustic Graphics die R2500- und R2100-Einsteckkarten von Caustic Professional mit RT2-Raytrace-Einheiten (RTUs). Jede RTU war in der Lage, bis zu 50 Millionen inkohärente Strahlen pro Sekunde zu berechnen.
  • Nvidia , eine Partnerschaft mit Microsoft DirectX , kündigte 2018 die Nvidia RTX-Entwicklerbibliothek an, die schnelle Echtzeit-Raytracing-Lösungen verspricht, die auf hardwarebeschleunigtem Raytracing (ASIC-Tensor-Cores) basieren, die in den GPUs der Volta- Generation enthalten sind.
  • Im Oktober 2020 gab AMD weitere Informationen zum „Refresh“ der RDNA - Mikroarchitektur bekannt . Nach Angaben des Unternehmens unterstützt die RDNA 2 - Mikroarchitektur hardwarebeschleunigtes Raytracing in Echtzeit.

Anmerkungen

Verweise

Weiterlesen