Caustic Graphics

{{Short description|American computer technology company}}

{{Infobox company

| name = Caustic Graphics

| logo =

| type = Private

| founded = 2006

| hq_location = San Francisco USA

| fate = Acquired by Imagination Technologies in 2010

| products = {{Unbulleted list|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.{{Cite news |last=Clark |first=Don |date=2009-03-09 |title=Start-Up Promises More Game Realism |work=Wall Street Journal |url=https://www.wsj.com/articles/SB123655461519565819 |access-date=2017-11-12 |issn=0099-9660}}{{Cite news |last=Stokes |first=Jon |date=April 21, 2009 |title=Caustic Graphics launches real-time ray tracing platform |work=Ars Technica |url=https://arstechnica.com/gaming/2009/04/caustic-graphics-launches-real-time-ray-tracing-platform/ |access-date=2017-11-12}}{{Cite news |last=Skillings |first=Jon |date=March 9, 2009 |title=Start-up Caustic targets ray tracing for graphics |work=CNET |url=https://www.cnet.com/news/start-up-caustic-targets-ray-tracing-for-graphics/ |access-date=2017-11-12}}

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.

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.{{Cite web |last=Shrout |first=Ryan |date=2009-04-20 |title=Caustic Graphics Ray Tracing Acceleration Technology Review |url=https://pcper.com/2009/04/caustic-graphics-ray-tracing-acceleration-technology-review/ |access-date=2022-03-15 |website=PC Perspective}} 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.

In 2008, Caustic Graphics acquired Splutterfish, a company that developed and sold a production rendering software product called Brazil R/S.{{Cite magazine |last=Maher |first=Kathleen |date=August 2009 |title=The Rendering Race |url=https://www.cgw.com/Publications/CGW/2009/Volume-32-Issue-8-Aug-2009-/The-Rendering-Race.aspx |magazine=Computer Graphics World |volume=32 |issue=8 |access-date=2022-03-12}}{{Cite web |date=2013-04-07 |title=Important Announcement from Caustic Graphics - SplutterFish Forums |url=https://caustic.com/splutterfish/forums/showthread.php?t=24269 |url-status=dead |archive-url=https://archive.today/20130407224532/https://caustic.com/splutterfish/forums/showthread.php?t=24269 |archive-date=2013-04-07 |access-date=2022-03-13 |website=caustic.com}}

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,{{Cite web |date=2013-05-06 |title=Caustic Visualizer for 3DS Max open beta |url=https://cgpress.org/archives/caustic_visualizer_for_3ds_max_open_beta.html |access-date=2022-03-12 |website=CGPress}} Autodesk Maya,{{Cite web |date=2013-05-07 |title=Caustic Visualizer For Maya |url=https://www.iamag.co/caustic-visualizer-for-maya/ |access-date=2022-03-12 |website=IAMAG Inspiration}} McNeel Rhino{{Cite web |last=Newton |first=Randall |date=2013-04-11 |title=Rhino plug-in gives access to Caustic Visualizer ray tracing |url=https://gfxspeak.com/2013/04/11/rhino-plug-in-gives-access-to-caustic-visualizer-ray-tracing/ |access-date=2022-03-12 |website=GraphicSpeak}} and later SketchUp{{Cite web |title=Visualizer for SketchUp • sketchUcation • 1 |url=https://sketchucation.com/forums/viewtopic.php?f=80&t=57758 |access-date=2022-03-12 |website=sketchucation.com}}

In 2010, Caustic Graphics was acquired by Imagination Technologies.{{Cite web |date=December 14, 2010 |title=Apple partner Imagination acquires 'cinema quality' graphics chipmaker |url=http://appleinsider.com/articles/10/12/14/apple_partner_imagination_acquires_cinema_quality_graphics_chipmaker |access-date=2017-11-12 |website=Apple Insider}}{{Cite web |title=Alternative Hardware Architectures |url=https://pbr-book.org/3ed-2018/Retrospective_and_The_Future/Alternative_Hardware_Architectures#Ray-TracingHardware |access-date=2022-03-12 |website=pbr-book.org}}{{Cite book |last1=Keller |first1=Alexander |last2=Karras |first2=Tero |last3=Wald |first3=Ingo |last4=Aila |first4=Timo |last5=Laine |first5=Samuli |last6=Bikker |first6=Jacco |last7=Gribble |first7=Christiaan |last8=Lee |first8=Won-Jong |last9=McCombe |first9=James |title=ACM SIGGRAPH 2013 Courses |chapter=Ray tracing is the future and ever will be |date=2013-07-21 |chapter-url=https://doi.org/10.1145/2504435.2504444 |series=SIGGRAPH '13 |location=New York, NY, USA |publisher=Association for Computing Machinery |pages=1–7 |doi=10.1145/2504435.2504444 |isbn=978-1-4503-2339-0|s2cid=17349732 }}

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:{{Cite web |last=Smith |first=Ryan |date=March 18, 2014 |title=Imagination Announces PowerVR Wizard GPU Family: Rogue Learns Ray Tracing |url=https://www.anandtech.com/show/7870/imagination-announces-powervr-wizard-gpu-family-rogue-learns-ray-tracing |access-date=2022-03-12 |website=AnandTech}}

  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.{{Cite patent|country=US|number=8502820B2|title=Architectures for concurrent graphics processing operations|gdate=2013-08-06|invent1=Peterson|invent2=McCombe|invent3=Salsbury|invent4=Purcell|inventor1-first=Luke Tilman|inventor2-first=James Alexander|inventor3-first=Ryan R.|inventor4-first=Stephen|url=https://patents.google.com/patent/US8502820B2/en}}{{Cite patent|country=US|number=8018457B2|title=Ray tracing system architectures and methods|pubdate=2011-09-13|gdate=2011-09-13|invent1=Peterson|invent2=McCombe|invent3=Salsbury|invent4=Clohset|inventor1-first=Luke Tilman|inventor2-first=James Alexander|inventor3-first=Ryan R.|inventor4-first=Steven John|url=https://patents.google.com/patent/US8018457B2/en}}{{Cite web |title=New Techniques Made Possible by PowerVR Ray Tracing Hardware (Presented by Imagination Technologies) |url=https://www.gdcvault.com/play/1020741/New-Techniques-Made-Possible-by |access-date=2022-03-14 |website=www.gdcvault.com}}

= 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.{{Cite patent|country=US|number=10930052B2|title=Systems and methods for 3-D scene acceleration structure creation and updating|pubdate=2021-02-23|gdate=2021-02-23|invent1=Mccombe|invent2=Dwyer|invent3=Peterson|invent4=Nesse|inventor1-first=James A.|inventor2-first=Aaron|inventor3-first=Luke T.|inventor4-first=Neils|url=https://patents.google.com/patent/US10930052B2/en}}

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.

= 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.{{Cite web |last=Shrout |first=Ryan |date=2009-07-07 |title=Caustic Graphics and the CausticGL Ray Tracing API - PC Perspective |url=https://pcper.com/2009/07/caustic-graphics-and-the-causticgl-ray-tracing-api/ |access-date=2022-03-13 |website=PC Perspective}}

= 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.{{Cite web |date=May 28, 2010 |title=OpenRL: Heterogeneous Computing Example |url=https://www.geeks3d.com/20100528/openrl-heterogeneous-computing-example/ |access-date=2022-03-13 |website=Geeks 3D}}

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{{Cite patent|country=US|number=9881411B2|title=Profiling ray tracing renderers|pubdate=2018-01-30|gdate=2018-01-30|invent1=Monson|invent2=McCombe|invent3=Gies|inventor1-first=Nur|inventor2-first=James Alexander|inventor3-first=Sean Matthew|url=https://patents.google.com/patent/US9881411B2/en}} 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.{{Cite web |last=Thacker |first=Jim |date=April 20, 2012 |title=Imagination Technologies ships PowerVR Brazil SDK {{!}} CG Channel |url=http://www.cgchannel.com/2012/04/imagination-technologies-ships-powervr-brazil-sdk/ |access-date=2022-03-13 |website=CGchannel.com}}

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.

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.{{Cite AV media |url=https://youtube.com/watch?v=Fz6AUj2PY9c |title=Imagination PowerVR Ray Tracing |date=Jan 11, 2016 |type=Video |publisher=Tom's Hardware |access-date=2022-03-12 |via=YouTube}}{{Cite AV media |url=https://youtube.com/watch?v=ND96G9UZxxA |title=Imagination PowerVR 6XT GR6500 mobile GPU - Ray Tracing demos vs Nvidia Geforce GTX 980 Ti |date=Jan 17, 2016 |type=Video |publisher=Notebook Italia |access-date=2022-03-12 |via=YouTube}}

{{-}}

= PCIe cards =

{{Multiple image

| image1 = Caustic 2500.jpg

| caption1 = 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

| image2 =

| caption2 = 90nm Caustic RT2 ASIC implementing the Caustic ray tracing and coherence gathering algorithms

| image3 = CausticOneCards.jpg

| caption3 = 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.{{Cite web |last=Ward |first=Antony |date=2013-07-25 |title=Hardware review: Caustic Series2 R2500 ray-tracing accelerator card {{!}} 3D World |url=http://www.3dworldmag.com/2013/04/16/hardware-review-caustic-series2-r2500-ray-tracing-accelerator-card |archive-url=https://web.archive.org/web/20130725092457/http://www.3dworldmag.com/2013/04/16/hardware-review-caustic-series2-r2500-ray-tracing-accelerator-card |archive-date=2013-07-25 |access-date=2022-03-12 |website=3D World Mag}}{{Cite web |last=Hruska |first=Joel |date=August 1, 2013 |title=The future of ray tracing, reviewed: Caustic's R2500 accelerator finally moves us towards real-time ray tracing - ExtremeTech |url=https://www.extremetech.com/extreme/161074-the-future-of-ray-tracing-reviewed-caustics-r2500-accelerator-finally-moves-us-towards-real-time-ray-tracing |access-date=2022-03-13 |website=Extreme Tech}}

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.{{Cite web |date=April 20, 2009 |title=Real Time Ray Tracing at 5 FPS with CausticRT Raytracing System |url=https://www.geeks3d.com/20090420/real-time-ray-tracing-at-5-fps-with-causticrt-raytracing-system/ |access-date=2022-03-13 |website=Geeks 3D}}{{Cite web |last=Shrout |first=Ryan |date=2009-04-20 |title=Caustic Graphics Ray Tracing Acceleration Technology Review - PC Perspective |url=https://pcper.com/2009/04/caustic-graphics-ray-tracing-acceleration-technology-review/3/ |access-date=2022-03-13 |website=PC Perspective}}

References