Ray-tracing hardware
Ray-tracing hardware is special-purpose computer hardware designed for accelerating ray tracing calculations.
Introduction: Ray tracing and rasterization
The problem of rendering 3D graphics can be conceptually presented as finding all intersections between a set of "primitives" (typically triangles or polygons) and a set of "rays" (typically one or more per pixel).[1]
Up to 2010, all typical graphic acceleration boards, called graphics processing units (GPUs), used rasterization algorithms. The ray tracing algorithm solves the rendering problem in a different way. In each step, it finds all intersections of a ray with a set of relevant primitives of the scene.
Both approaches have their own benefits and drawbacks. Rasterization can be performed using devices based on a stream computing model, one triangle at the time, and access to the complete scene is needed only once.[lower-alpha 1] The drawback of rasterization is that non-local effects, required for an accurate simulation of a scene, such as reflections and shadows are difficult; and refractions[2] nearly impossible to compute.
The ray tracing algorithm is inherently suitable for scaling by parallelization of individual ray renders.[3] However anything other than ray casting requires recursion of the ray tracing algorithm (and random access to the scene graph) to complete their analysis,[4] since reflected, refracted, and scattered rays require that various parts of the scene be re-accessed in a way not easily predicted. But it can easily compute various kinds of physically correct effects, providing much more realistic impression than rasterization.[lower-alpha 2]
The complexity of a well implemented ray tracing algorithm scales logarithmically;[lower-alpha 3] this is due to objects (triangles and collections of triangles) being placed into BSP trees or similar structures, and only being analyzed if a ray intersects with the bounding volume of the binary space partition.[5][lower-alpha 4]
Implementations
Various implementations of ray tracing hardware have been created, both experimental and commercial:
- (1996) Researchers at Princeton university proposed using DSPs to build a hardware unit for ray tracing acceleration, named "TigerSHARK".[6]
- Implementations of volume rendering using ray tracing algorithms on custom hardware were carried out in 1999 by Hanspeter Pfister[7] and researchers at Mitsubishi Electric Research Laboratories.[8] with the vg500 / VolumePro ASIC based system and in 2002 with FPGAs by researchers at the University of Tübingen with VIZARD II[9]
- (2002) The computer graphics laboratory at Saarland University headed by Dr. -Ing Slusallek has produced prototype ray tracing hardware including the FPGA based fixed function data driven SaarCOR (Saarbrücken's Coherence Optimized Ray Tracer) chip[10][11][12] and a more advanced programmable (2005) processor, the Ray Processing Unit (RPU)[13]
- (2002–2009) ART VPS company (founded 2002[14]), situated in the UK, sold ray tracing hardware for off-line rendering. The hardware used multiple specialized processors that accelerated ray-triangle intersection tests. Software provided integration with Autodesk Maya and Max data formats, and utilized the Renderman scene description language for sending data to the processors (the .RIB or Renderman Interface Bytestream file format).[15] As of 2010, ARTVPS no longer produces ray tracing hardware but continues to produce rendering software.[14]
- (2009 - 2010) Intel[16] showcased their prototype "Larrabee" GPU and Knights Ferry MIC at the Intel Developer Forum in 2009 with a demonstration of real-time ray-tracing.
- Siliconarts[17] developed a dedicated real-time ray tracing hardware (2010). RayCore (2011), which is the world's first real-time ray tracing semiconductor IP, was announced.
- Caustic Graphics[18] have produced a plug in card, the "CausticOne" (2010), that accelerates global illumination and other ray based rendering processes when coupled to a PC CPU and GPU. The hardware is designed to organize scattered rays (typically produced by global illumination problems) into more coherent sets (lower spatial or angular spread) for further processing by an external processor.[19]
- Imagination Technologies, after acquiring Caustic Graphics, produced the Caustic Professional's R2500 and R2100 plug in cards containing RT2 ray trace units (RTUs). Each RTU was capable of calculating up to 50 million incoherent rays per second.[20]
- Nvidia, partnering with Microsoft DirectX, announced the Nvidia RTX developer library[21] in 2018, which promised fast real-time ray tracing solutions powered by hardware accelerated ray tracing (ASIC tensor cores) found in the Volta-generation GPUs.[22]
- In October 2020, AMD announced further information regarding the "refresh" of the RDNA micro-architecture. According to the company, the RDNA 2 micro-architecture supports real-time hardware accelerated ray tracing.[23][24]
Notes
- For additional visualisations such as shadows, or reflections such as produced by a large flat body of water an addition pass of the scene graph is required for each effect.
- Rasterisation methods are capable of generating realistic shadows (including shadows produced by partially transparent objects), and plane reflections easily (as of 2010), but do not easily implement reflections from non planar surfaces (excluding approximations using normal maps) or refractions.
- That is if X is the number of triangles, then the number of computations to complete the scene is proportional to log(X).
- The same methods can be used in rasterization; in a simplistic implementation, culling is limited to those BSP partitions that lie within the much larger viewing frustum (more advanced implementations including those that implement occlusion culling or predicated rendering scale better than linearly for complex (especially high occluded) scenes (Note in common API's : DirectX 10 D3D10_QUERY_OCCLUSION_PREDICATE , in OpenGL 3.0 HP_occlusion_query ). With ray tracing the viewing frustum is replaced by the volume enclosed by a single ray (or ray bundle).
References
- Introduction to real time raytracing Course notes, Course 41, Philipp Slusallek, Peter Shirley, Bill Mark, Gordon Stoll, Ingo Wald, SIGGRAPH 2005, (powerpoint presentation), Slide 26 :Comparison Rasterization vs. Ray Tracing (Definitions) graphics.cg.uni-saarland.de
- Chris Wyman's Research: Interactive Refractions Archived 2010-07-02 at the Wayback Machine Department of Computer Science at The University of Iowa, www.cs.uiowa.edu
- SaarCOR —A Hardware Architecture for Ray Tracing, Jörg Schmittler, Ingo Wald, Philipp Slusallek, Section 2, "Previous work"
- SaarCOR —A Hardware Architecture for Ray Tracing, Jörg Schmittler, Ingo Wald, Philipp Slusallek, Section 3, "The Ray Tracing Algorithm"
- Ray Tracing and Gaming - One Year Later Daniel Pohl, 17/1/2008, via "PCperspective", www.pcper.com
- A Hardware Accelerated Ray-tracing Engine Greg Humphreys, C. Scott Ananian (Independent Work), Department of Computer Science, Princeton University, 14/5/1996, cscott.net.
- The vg500 Real-Time Ray-Casting ASIC.Archived 2008-11-20 at the Wayback Machine Hanspeter Pfister, MERL - A Mitsubishi Electric Research Laboratory, Cambridge MA (USA) www.hotchips.org
- Hanspeter Pfister, Jan Hardenbergh, Jim Knittely, Hugh Lauery, Larry Seiler (April 1999). "The VolumePro Real-Time Ray-Casting System" (PDF). Mitsubishi Electric. CiteSeerX 10.1.1.69.4091. Archived from the original (PDF) on 2011-06-16. Retrieved 2010-02-27. Cite journal requires
|journal=
(help)CS1 maint: uses authors parameter (link) - VIZARD II: An FPGA-based Interactive Volume Rendering System Archived 2008-11-21 at the Wayback Machine Urs Kanus, Gregor Wetekam, Johannes Hirche, Michael Meißner, University of Tübingen / Philips Research Hamburg, Graphics Hardware (2002), pp. 1–11, via www.doggetts.org
- "SaarCOR - A Hardware Architekture for Ray Tracing". Cite journal requires
|journal=
(help) - Schmittler, Jörg; Wald, Ingo; Slusallek, Philipp (2002). "SaarCOR —A Hardware Architecture for Ray Tracing" (PDF). Graphics Hardware. Germany: Computer Graphics Group, Saarland University: 1–11. Archived from the original (PDF) on 2011-08-14. Retrieved 2011-11-22.
- Jörg Schmittler; Sven Woop; Daniel Wagner; Wolfgang J. Paul; Philipp Slusallek (2004). "Realtime Ray Tracing of Dynamic Scenes on an FPGA Chip". Graphics Hardware. Computer Science, Saarland University, Germany. CiteSeerX 10.1.1.72.2947.
- Sven Woop, Jorg Schmittler, Philipp Slusallek. "RPU: A Programmable Ray Processing Unit for Realtime Ray Tracing" (PDF). Saarland University. Archived from the original (PDF) on 2012-04-15. Retrieved 2011-11-22. Cite journal requires
|journal=
(help)CS1 maint: uses authors parameter (link) - About ArtVPS www.artvps
- ALL ABOUT ARTVPS, PURE CARDS, RENDERDRIVES and RAYBOX Archived 2009-04-14 at the Wayback Machine Mark Segasby (Protograph Ltd), www.protograph.co.uk
- "Sean Maloney's IDF 2009 Larrabee graphics demo - YouTube". www.youtube.com. Retrieved 2021-01-06.
- Siliconarts company website www.siliconarts.com
- Caustic Graphics company website www.caustic.com
- Reinventing Ray Tracing 15/7/2009, Jonathan Erickson interview with James McCombe of Caustic Graphics, www.drdobbs.com
- "The future of ray tracing, reviewed: Caustic's R2500 accelerator finally moves us towards real-time ray tracing | ExtremeTech". ExtremeTech. Retrieved 2015-10-05.
- "NVIDIA RTX™ Technology". NVIDIA Developer. 2018-03-06. Retrieved 2018-04-20.
- Oh, Nate. "NVIDIA Announces RTX Technology: Real Time Ray Tracing Acceleration for Volta GPUs and Later". Retrieved 2018-04-20.
- Judd, Will (October 28, 2020). "AMD unveils three Radeon 6000 graphics cards with ray tracing and RTX-beating performance". Eurogamer. Retrieved October 28, 2020.
- "AMD Announces Ryzen "Zen 3" and Radeon "RDNA2" Presentations for October: A New Journey Begins". anandtech.com. AnandTech. 2020-09-09. Retrieved 2020-10-25.
Further reading
- State of the Art in Interactive Ray Tracing Ingo Wald and Philipp Slusallek, Computer Graphics Group, Saarland University, Review article to year 2001