Caustic Graphics

Last updated
Caustic Graphics
Type Private
Founded2006
FateAcquired by Imagination Technologies in 2010
Headquarters San Francisco USA
Products
  • Raytracing Graphics Hardware
  • Graphics APIs
  • Rendering Software

Caustic Graphics was a computer graphics and fabless semiconductor company that developed technologies to bring real-time ray-traced computer graphics to the mass market. [1] [2] [3]

Contents

The company name derived from an optical effect caused by the concentration of light on to a surface resulting from focusing through reflection or refraction phenomena.

Caustic was founded on the premise that realistic 3D graphics would be easier to create if GPU hardware were as efficient at processing a ray as processing a vertex or fragment using existing rasterisation methods. [2]

History

Caustic was founded in 2006 by three ex-Apple engineers, one of which had developed graphics technologies for the 5th Generation iPod and 1st Generation iPhone. [4] The founding business plan was to build a complete real-time ray traced graphics system to initially accelerate professional 3D visualisation and later for entertainment applications on PCs and gaming consoles. [1]

In 2008, Caustic Graphics acquired Splutterfish, a company that developed and sold a production rendering software product called Brazil R/S. [5] [6]

Caustic later released a series of commercial software products called "Visualiser Plugins" that leveraged the Brazil R/S rendering technology and Caustic hardware to enable interactive and offline ray traced rendering inside Autodesk 3DSMax, [7] Autodesk Maya, [8] McNeel Rhino [9] and later SketchUp [10]

In 2010, Caustic Graphics was acquired by Imagination Technologies. [11] [12] [13]

Technologies

Hardware

The Caustic ray tracing hardware was not a replacement for existing rasterisation GPUs, but rather added several new hardware functions to increase the efficiency of ray-tracing: [14]

  1. Coherence gathering: The ability for the GPU to generate work for itself and for those work-units to be deferred and sorted into coherent groups that were requesting a common resource, such as a data or shader program address in memory.
  2. Fixed-function triangle intersection units: A unit was developed that could intersect a ray with an edge sharing triangle pair and return barycentric coordinates and other hit information.
  3. Fixed-function bounding volume intersection units: A unit was developed that could intersect a ray with an AABB and return hit information.
  4. Framebuffer accumulator: This unit would receive commands from the ALUs to add colour to a given pixel in the frame buffer.
  5. Scene hierarchy generator: This unit would read lists of triangles (or other scene geometry representations) and stream out to memory a directed acyclic graph of 3D volumes surrounding the geometry, known as a bounding volume hierarchy.

Coherence gathering

The Caustic architecture parallelised execution not on pixels, but on individual rays. This allowed for hardware to gather these rays into coherent groups to perform a common operation, such as access a memory address within the scene acceleration structure and underlying geometry or execution of a common material shader program. [15] [16] [17]

Streaming bounding volume hierarchy generator

Caustic developed a hardware pipeline that was capable of building a bounding volume hierarchy bottom-up by directly consuming assembled primitives post vertex shading and gradually streaming out a graph of AABB nodes to DRAM in a single pass. This worked by implementing a conservative triangle voxelizer which would produce spatial addresses into a cache-like structure to group triangles and AABBs within common parts of 3D space. This relied on the application submitting triangles in a generally spatially coherent order. Failure to submit triangles in a spatially coherent order would result in premature evictions from the spatial cache and thus generate overlapping bounding volumes and incur a higher ray traversal overhead. The hardware included a feature to increase the voxelisation rate for long and narrow triangles to permit more efficient bounding and higher rendering performance for off-axis geometry. [18] [17]

This hardware unit, known as the SHG, was implemented within the PowerVR 6XT GR6500 from Imagination. In a demonstration, the company claimed that in their 600MHz test silicon, the SHG had a throughput of 100 million dynamic triangles per second. [14]

CausticGL/OpenRL API

The OpenRL API (previously called CausticGL) was derived from OpenGL ES 2.0 and added a series of features to both the host API and GLSL required to support ray tracing. Caustic shipped high performance implementations of the API for both SSE and AVX capable Intel CPUs, OpenCL capable GPUs and CUDA support for NVIDIA GPUs. [19]

OpenRL SDK

The OpenRL API was shipped in a free SDK with implementations for Intel CPUs, OpenCL and CUDA compatible GPUs and the Caustic hardware. Applications built on the OpenRL SDK would automatically detect supporting hardware and use the highest performing available option. [20]

The SDK included a series of example programs, "Profiler" to help debug applications by allowing full inspection of the ray tracing "tree" within a pixel [21] and a tool called "StatsPlotter" which would expose internal performance counters.

PowerVR Brazil SDK

PowerVR Brazil SDK (also known as Resin) was a software layer utilising the OpenRL API which enabled physically based rendering implementations, programmable material shaders, dynamic geometry and hardware platform independence. The Resin technology grew out of the expertise from the Brazil R/S team which were acquired by Caustic Graphics. [22]

Products

PowerVR Wizard / PLATO

After the acquisition by Imagination Technologies, an initiative began to integrate the Caustic ray tracing coherence gathering, fixed function geometry testers and a new streaming BVH generator into an exiting Series 6 PowerVR GPU architecture. This allowed GLSL shaders which previously had to run on a host CPU to instead be executed on-chip using the existing PowerVR shading clusters and still gain benefit from the ray reordering being performed by the Caustic traversal unit. [14]

Additionally, the GPU was still a tile-based deferred rasteriser (TBDR) and could perform hybrid rasterisation-raytracing by allowing triangle fragment shaders to emit rays directly into the ray tracing pipeline.

Imagination Technologies taped out test silicon containing the complete PowerVR 6XT GR6500 ray tracing GPU on a PCI express card called PLATO and it was demonstrated publicly at various events. It was claimed by the company to have memory bandwidth and power consumption characteristics similar to a mid-range consumer smartphone in 2016. [23] [24]

PCIe cards

Caustic 2500.jpg
Caustic R2500 PCIe card with 2 Caustic RT2 ASICs and a PLX PCIe switch chip. The mainboard above is from a Mac Pro workstation with a pair of Intel Xeon CPUs and associated host memory. Ray flow was kept within L2 cache of each host CPU using careful thread affinities and DMA management within the kernel driver
CausticOneCards.jpg
Pair of CausticOne, FPGA based PCIe cards in a DELL workstation

A pair of PCIe card products were launched incorporating the Caustic RT2 ASIC implementation of the RTU. The RT2 was a custom ASIC built on a 90nm TSMC process. The R2100 card had a single RT2 chip and 4GB of onboard DDR2 memory and a claimed peak power consumption of 40 Watts. The R2500 incorporated a pair of RT2 chips and a total of 16GB of memory and had a claimed peak power consumption of 60 Watts. The cards were released for sale in 2013. [25] [26]

The CausticOne PCIe card had two FPGA implementations of the RTU running at 100Mhz each with a single channel DDR2 memory for scene storage and connected to the host via 4-lane PCI Express 1.0. It was demonstrated in 2009 and sold in limited volume later that year. [27] [28]

Related Research Articles

<span class="mw-page-title-main">DirectX</span> Collection of multimedia related APIs on Microsoft platforms

Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct", such as Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound, and so forth. The name DirectX was coined as a shorthand term for all of these APIs and soon became the name of the collection. When Microsoft later set out to develop a gaming console, the X was used as the basis of the name Xbox to indicate that the console was based on DirectX technology. The X initial has been carried forward in the naming of APIs designed for the Xbox such as XInput and the Cross-platform Audio Creation Tool (XACT), while the DirectX pattern has been continued for Windows APIs such as Direct2D and DirectWrite.

<span class="mw-page-title-main">Ray tracing (graphics)</span> Rendering method

In 3D computer graphics, ray tracing is a technique for modeling light transport for use in a wide variety of rendering algorithms for generating digital images.

<span class="mw-page-title-main">Rasterisation</span> Conversion of a vector-graphics image to a raster image

In computer graphics, rasterisation or rasterization is the task of taking an image described in a vector graphics format (shapes) and converting it into a raster image. The rasterized image may then be displayed on a computer display, video display or printer, or stored in a bitmap file format. Rasterization may refer to the technique of drawing 3D models, or the conversion of 2D rendering primitives such as polygons, line segments into a rasterized format.

<span class="mw-page-title-main">Graphics processing unit</span> Specialized electronic circuit; graphics accelerator

A graphics processing unit (GPU) is a specialized electronic circuit initially designed to accelerate computer graphics and image processing. After their initial design, GPUs were found to be useful for non-graphic calculations involving embarrassingly parallel problems due to their parallel structure. Other non-graphical uses include the training of neural networks and cryptocurrency mining.

OpenVG is an API designed for hardware-accelerated 2D vector graphics. Its primary platforms are mobile phones, gaming & media consoles and consumer electronic devices. It was designed to help manufacturers create more attractive user interfaces by offloading computationally intensive graphics processing from the CPU onto a GPU to save energy. The OpenGL ES library provides similar functionality for 3D graphics. OpenVG is managed by the non-profit technology consortium Khronos Group.

<span class="mw-page-title-main">Shader</span> Type of program in a graphical processing unit (GPU)

In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as shading. Shaders have evolved to perform a variety of specialized functions in computer graphics special effects and video post-processing, as well as general-purpose computing on graphics processing units.

PowerVR is a division of Imagination Technologies that develops hardware and software for 2D and 3D rendering, and for video encoding, decoding, associated image processing and DirectX, OpenGL ES, OpenVG, and OpenCL acceleration. PowerVR also develops AI accelerators called Neural Network Accelerator (NNA).

<span class="mw-page-title-main">Real-time computer graphics</span> Sub-field of computer graphics

Real-time computer graphics or real-time rendering is the sub-field of computer graphics focused on producing and analyzing images in real time. The term can refer to anything from rendering an application's graphical user interface (GUI) to real-time image analysis, but is most often used in reference to interactive 3D computer graphics, typically using a graphics processing unit (GPU). One example of this concept is a video game that rapidly renders changing 3D environments to produce an illusion of motion.

Brazil Rendering System was a proprietary commercial plugin for 3D Studio Max, Autodesk VIZ and Rhinoceros 3D. Steve Blackmon and Scott Kirvan started developing Brazil R/S while working as the R&D team of Blur Studio, and formed the company SplutterFish to sell and market Brazil. It was capable of photorealistic rendering using fast ray tracing and global illumination.

<span class="mw-page-title-main">Free and open-source graphics device driver</span> Software that controls computer-graphics hardware

A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license. Graphics device drivers are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the display driver is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the Mesa project. The driver is made up of a compiler, a rendering API, and software which manages access to the graphics hardware.

<span class="mw-page-title-main">Ray-tracing hardware</span> Type of 3D graphics accelerator

Ray-tracing hardware is special-purpose computer hardware designed for accelerating ray tracing calculations.

Tiled rendering is the process of subdividing a computer graphics image by a regular grid in optical space and rendering each section of the grid, or tile, separately. The advantage to this design is that the amount of memory and bandwidth is reduced compared to immediate mode rendering systems that draw the entire frame at once. This has made tile rendering systems particularly common for low-power handheld device use. Tiled rendering is sometimes known as a "sort middle" architecture, because it performs the sorting of the geometry in the middle of the graphics pipeline instead of near the end.

<span class="mw-page-title-main">Unified shader model</span> GPU whose shading hardware has equal capabilities for all stages of rendering

In the field of 3D computer graphics, the unified shader model refers to a form of shader hardware in a graphical processing unit (GPU) where all of the shader stages in the rendering pipeline have the same capabilities. They can all read textures and buffers, and they use instruction sets that are almost identical.

Direct2D is a 2D vector graphics application programming interface (API) designed by Microsoft and implemented in Windows 10, Windows 8, Windows 7 and Windows Server 2008 R2, and also Windows Vista and Windows Server 2008.

<span class="mw-page-title-main">OptiX</span> Nvidia ray tracing API using CUDA to compute on GPUs

Nvidia OptiX is a ray tracing API that was first developed around 2009. The computations are offloaded to the GPUs through either the low-level or the high-level API introduced with CUDA. CUDA is only available for Nvidia's graphics products. Nvidia OptiX is part of Nvidia GameWorks. OptiX is a high-level, or "to-the-algorithm" API, meaning that it is designed to encapsulate the entire algorithm of which ray tracing is a part, not just the ray tracing itself. This is meant to allow the OptiX engine to execute the larger algorithm with great flexibility without application-side changes.

id Tech 6 is a multiplatform game engine developed by id Software. It is the successor to id Tech 5 and was first used to create the 2016 video game Doom. Internally, the development team also used the codename id Tech 666 to refer to the engine. The PC version of the engine is based on Vulkan API and OpenGL API.

Vulkan is a low-overhead, cross-platform API, open standard for 3D graphics and computing.

This is a glossary of terms relating to computer graphics.

<span class="mw-page-title-main">Nvidia RTX</span> Development platform for rendering graphics

Nvidia RTX is a professional visual computing platform created by Nvidia, primarily used in workstations for designing complex large-scale models in architecture and product design, scientific visualization, energy exploration, and film and video production, as well as being used in mainstream PCs for gaming.

<span class="mw-page-title-main">Ada Lovelace (microarchitecture)</span> GPU microarchitecture by Nvidia

Ada Lovelace, also referred to simply as Lovelace, is the codename for a graphics processing unit (GPU) microarchitecture developed by Nvidia as the successor to the Ampere architecture, officially announced on September 20, 2022. It is named after English mathematician Ada Lovelace who is often regarded as the first computer programmer and is the first architecture to include both a first and last name. Nvidia announced the architecture along with the new GeForce 40 series consumer GPUs and the RTX 6000 Ada Generation pro workstation graphics card. The new GPUs were revealed to use TSMC's new 5 nm "4N" process which offers increased efficiency over the previous Samsung 8 nm and TSMC N7 processes used by Nvidia for its last generation Ampere architecture.

References

  1. 1 2 Clark, Don (2009-03-09). "Start-Up Promises More Game Realism". Wall Street Journal. ISSN   0099-9660 . Retrieved 2017-11-12.
  2. 1 2 Stokes, Jon (April 21, 2009). "Caustic Graphics launches real-time ray tracing platform". Ars Technica . Retrieved 2017-11-12.
  3. Skillings, Jon (March 9, 2009). "Start-up Caustic targets ray tracing for graphics". CNET . Retrieved 2017-11-12.
  4. Shrout, Ryan (2009-04-20). "Caustic Graphics Ray Tracing Acceleration Technology Review". PC Perspective . Retrieved 2022-03-15.
  5. Maher, Kathleen (August 2009). "The Rendering Race". Computer Graphics World. Vol. 32, no. 8. Retrieved 2022-03-12.
  6. "Important Announcement from Caustic Graphics - SplutterFish Forums". caustic.com. 2013-04-07. Archived from the original on 2013-04-07. Retrieved 2022-03-13.
  7. "Caustic Visualizer for 3DS Max open beta". CGPress. 2013-05-06. Retrieved 2022-03-12.
  8. "Caustic Visualizer For Maya". IAMAG Inspiration. 2013-05-07. Retrieved 2022-03-12.
  9. Newton, Randall (2013-04-11). "Rhino plug-in gives access to Caustic Visualizer ray tracing". GraphicSpeak. Retrieved 2022-03-12.
  10. "Visualizer for SketchUp • sketchUcation • 1". sketchucation.com. Retrieved 2022-03-12.
  11. "Apple partner Imagination acquires 'cinema quality' graphics chipmaker". Apple Insider . December 14, 2010. Retrieved 2017-11-12.
  12. "Alternative Hardware Architectures". pbr-book.org. Retrieved 2022-03-12.
  13. Keller, Alexander; Karras, Tero; Wald, Ingo; Aila, Timo; Laine, Samuli; Bikker, Jacco; Gribble, Christiaan; Lee, Won-Jong; McCombe, James (2013-07-21). "Ray tracing is the future and ever will be". ACM SIGGRAPH 2013 Courses. SIGGRAPH '13. New York, NY, USA: Association for Computing Machinery. pp. 1–7. doi:10.1145/2504435.2504444. ISBN   978-1-4503-2339-0. S2CID   17349732.
  14. 1 2 3 Smith, Ryan (March 18, 2014). "Imagination Announces PowerVR Wizard GPU Family: Rogue Learns Ray Tracing". AnandTech . Retrieved 2022-03-12.
  15. US 8502820B2,Peterson, Luke Tilman; McCombe, James Alexander& Salsbury, Ryan R.et al.,"Architectures for concurrent graphics processing operations",issued 2013-08-06
  16. US 8018457B2,Peterson, Luke Tilman; McCombe, James Alexander& Salsbury, Ryan R.et al.,"Ray tracing system architectures and methods",published 2011-09-13,issued 2011-09-13
  17. 1 2 "New Techniques Made Possible by PowerVR Ray Tracing Hardware (Presented by Imagination Technologies)". www.gdcvault.com. Retrieved 2022-03-14.
  18. US 10930052B2,Mccombe, James A.; Dwyer, Aaron& Peterson, Luke T.et al.,"Systems and methods for 3-D scene acceleration structure creation and updating",published 2021-02-23,issued 2021-02-23
  19. Shrout, Ryan (2009-07-07). "Caustic Graphics and the CausticGL Ray Tracing API - PC Perspective". PC Perspective . Retrieved 2022-03-13.
  20. "OpenRL: Heterogeneous Computing Example". Geeks 3D. May 28, 2010. Retrieved 2022-03-13.
  21. US 9881411B2,Monson, Nur; McCombe, James Alexander& Gies, Sean Matthew,"Profiling ray tracing renderers",published 2018-01-30,issued 2018-01-30
  22. Thacker, Jim (April 20, 2012). "Imagination Technologies ships PowerVR Brazil SDK | CG Channel". CGchannel.com. Retrieved 2022-03-13.
  23. Imagination PowerVR Ray Tracing (Video). Tom's Hardware. Jan 11, 2016. Retrieved 2022-03-12 via YouTube.
  24. Imagination PowerVR 6XT GR6500 mobile GPU - Ray Tracing demos vs Nvidia Geforce GTX 980 Ti (Video). Notebook Italia. Jan 17, 2016. Retrieved 2022-03-12 via YouTube.
  25. Ward, Antony (2013-07-25). "Hardware review: Caustic Series2 R2500 ray-tracing accelerator card | 3D World". 3D World Mag. Archived from the original on 2013-07-25. Retrieved 2022-03-12.
  26. Hruska, Joel (August 1, 2013). "The future of ray tracing, reviewed: Caustic's R2500 accelerator finally moves us towards real-time ray tracing - ExtremeTech". Extreme Tech. Retrieved 2022-03-13.
  27. "Real Time Ray Tracing at 5 FPS with CausticRT Raytracing System". Geeks 3D. April 20, 2009. Retrieved 2022-03-13.
  28. Shrout, Ryan (2009-04-20). "Caustic Graphics Ray Tracing Acceleration Technology Review - PC Perspective". PC Perspective . Retrieved 2022-03-13.