SlideShare a Scribd company logo
Implementing a modern, RenderMan compliant, REYES renderer Davide Pasca ribtools.com (contact: davide<at> ribtools.com) 1
About REYES Reyes or REYES (Renders Everything You Ever Saw) A flexible renderer, developed by Lucasfilm CG div. (“Pixar” from 1986) First used in 1984 in Start Trek II ..still used today in Pixar’s Photorealistic RenderMan 2 * Images, from top, are copyright of Paramount Pictures and Pixar (subsidiary of The Walt Disney Company)
RenderMan compliant ? Defines a renderer with some basic capabilities such as: A RenderMan graphics state machine Hidden surface elimination Pixel filtering and anti-aliasing User programmable shaders Texture mapping Etc… 3
REYES features Native support for high level surfaces Dynamic LOD Compact representation Subdivide per-frame based on size on screen Displace geometry from textures High quality filtering Easier to deal with translucency, motion-blur, etc. Can be used together with ray-tracing 4
REYES pipeline overview 5
Split (1) A parametric surface:        P = f(u,v) Split until “small enough” size (estimated) on screen 6
Split (2) Calculate the bounding box in screen-space …test against predetermined max screen area Here, the bounding box is too large.. 7
Split (3) When too large, split the patch It’s easy with parametric primitives: Pnew = f(unew, vnew) New split points 8
Split (4) Calculate the bounds of the new sub-patches Still too large 9
Split (5) Split recursively until every sub-patch is “small enough”… Small enough.. this is ready to be diced 10
What’s “Small Enough” ? When most sub-patches fit in a single bucket When dicing(see later) produces a suitable number of samples (sweet spot for performance) Sub-patch inside a single bucket Optimal Sub-patch touches two or more buckets Not Optimal A bucket 11
Dice Small enough sub-patches are diced Generate a dense grid of samples (1 pixel-per-sample or more..) 1 pixel Small enough n_samples <= max_samples max_samples is set for performance reasons and to avoid distortion 12
Displace Apply a displacement shader to the position of the samples myDisplace() {    mag = texture( “dispmap” ); P += normalize(N) * mag;    N = calculatenormal(P); } 13
Shade Apply surface and light shaders to get the color myShader() {    txcol = texture( “pigment” );    Ci = diffuse(N,txcol); Oi = 1; } 14
Sample – the micropolys Form virtualmicropolygons at the grid samples 1 pixel Virtual micropolygons 15
Sample – sample points Multiple sub-samples at every pixel …choose a sampling method: regular, multi-jittered (as shown), etc. 16
Sample – gather samples Samples get the color of the micropolygons they touch …each sample can have many values if the mpolys are translucent ! 17
Sample – convolution Mix the samples together… …choose a filter: box, triangular, Gaussian, Sinc, etc.. 18
Sample – final pixel color The resulting “average” color is assigned to the pixel …repeat for every pixel 8) 19
RibTools: A RenderMan-style renderer R&D 20 * Killeroo model from headus Ltd., used with permission.
RibTools’ key features RenderMan compliant(…almost (^^;)) Parse RIB scene files C-like shaders compiler and VM Parametric surfaces, etc. Sub-pixel displacement mapping Open Sourced (BSD License) Multi-threaded Network-distributed “Future proof” SIMD Scalability ! 21
Distributed bucket rendering Multi-core CPU Remote servers ,[object Object]
 Buckets are assigned to threads on the CPU or to remote servers via TCP/IP
 Geometry, shaders and textures are also transferred via TCP/IPWorks today ! …it’s only a start. Needs optimizations, esp. network. .............. 22
Shader system A shading system is an essential part of a renderer Shader.sl Shader.rrasm myShader() {    txcol = texture( “pigment” );    Ci = diffuse(N,txcol); Oi = 1; } RSL Compiler __main: mov.vv       $v4    N    normalize    $v5    $v4 mov.vv       $v6    $v5 mov.vv       $v3    $v6 mov.vv       $v7    I faceforward  $v8    $v3    $v7    […] ,[object Object]
 RRASM is assembled and executed by the ShaderVirtual Machine (VM) when renderingShader VM 23
Shading and SIMD (1) Values in a grid are treated as arrays… … myDisplace() { P += N * mag; } … N = { RSL P = { RSL Compiler mul $v1 N  mag add PP  $v1 RRASM Shader VM v1 = SIMD_Mul( N, mag ); P= SIMD_Add(P, v1 ); C 24
Shading and SIMD (2) Vector SIMD_Add_FPU(Vector a, Vector b ) {    for (i=0; i < vec_size; i += 1)    { result[i] = a[i] + b[i];    }    return result; } 1x No hardware SIMD SIMD_Add() Vector SIMD_Add_SSE(Vector a, Vector b ) {    for (i=0; i < vec_size; i += 4)    { SSE_Add( &result[i], &a[i], &b[i] );    }    return result; } SSE SIMD_Mul() 4x … LRBni Vector SIMD_Add_LRB(Vector a, Vector b ) {    for (i=0; i < vec_size; i += 16)    { LRB_Add( &result[i], &a[i], &b[i] );    }    return result; } OpenCL, CUDA, ? 16x 25
…not fun to debug ! 26
Prospects for RibTools What role will REYES play for real-time ? The architecture bodes well with multi-core, vector processors or even GPGPU Displacement and curved surfaces are best with smaller-than-a-pixel polygons anyway Develop, learn and innovate Don’t let the others decide for you..Fully programmable graphics hardware is coming Off-line rendering ? Much more complex, but no real-time constraints DX11 tessellation ..almost micro-polygons! * RenderAnts: REYES on GPGPU Siggraph 2008, 2009 ** 27 * From Unigine’s Direct3D 11 tech demo  ** Image from RenderAnts renderer
Cons and problems Requires highly programmable hardware (best if with a flexible texture unit) The “RenderMan interface” is a fairly deep standard to follow Shader compilers, optimizers.. complex stuff Comes with other issues: Cracks when tessellating, non-planar micropolys, front plane clipping, etc. ..but someone’s got to try it 8) 28

More Related Content

What's hot

Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
Electronic Arts / DICE
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
Electronic Arts / DICE
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
Tiago Sousa
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizationspjcozzi
 
Advancements in-tiled-rendering
Advancements in-tiled-renderingAdvancements in-tiled-rendering
Advancements in-tiled-rendering
mistercteam
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3guest11b095
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unity Technologies
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Tiago Sousa
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesJangho Lee
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
Electronic Arts / DICE
 
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open ProblemsHPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
Electronic Arts / DICE
 
Paris Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global IlluminationParis Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global Illumination
Wolfgang Engel
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Guerrilla
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Electronic Arts / DICE
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
Pope Kim
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
Michele Giacalone
 
Deferred shading
Deferred shadingDeferred shading
Deferred shadingFrank Chao
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingSteven Tovey
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
stevemcauley
 
The Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsThe Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next Steps
Johan Andersson
 

What's hot (20)

Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizations
 
Advancements in-tiled-rendering
Advancements in-tiled-renderingAdvancements in-tiled-rendering
Advancements in-tiled-rendering
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination Techniques
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
 
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open ProblemsHPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
 
Paris Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global IlluminationParis Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global Illumination
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next Generation
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time Lighting
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
 
The Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsThe Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next Steps
 

Viewers also liked

Pixar Animation Studio
Pixar Animation StudioPixar Animation Studio
Pixar Animation Studio
Warodom Techasrisutee
 
Rendering crowds with Pixar’s RenderMan
Rendering crowds with Pixar’s RenderManRendering crowds with Pixar’s RenderMan
Rendering crowds with Pixar’s RenderMan
Golaem
 
Ida Art
Ida ArtIda Art
Ida Art
Vili 48
 
Chinese warfare
Chinese warfareChinese warfare
Chinese warfare
Warodom Techasrisutee
 
Disney &amp; pixar merger
Disney &amp; pixar mergerDisney &amp; pixar merger
Disney &amp; pixar merger
Ganesh Reddy
 
Disney Pixar M&A
Disney Pixar M&ADisney Pixar M&A
Disney Pixar M&A
Adwitiya Tiwari
 
Disney pixar ppt.332194447
Disney pixar ppt.332194447Disney pixar ppt.332194447
Disney pixar ppt.332194447sudeeksha1206
 
Pixar
PixarPixar
Disney Pixar case study
Disney Pixar case studyDisney Pixar case study
Disney Pixar case studyYuqing Qin
 
Disney & pixar
Disney & pixar Disney & pixar
Disney & pixar
Pankaj Baid
 

Viewers also liked (12)

Pixar studio research
Pixar studio researchPixar studio research
Pixar studio research
 
Pixar Animation Studio
Pixar Animation StudioPixar Animation Studio
Pixar Animation Studio
 
Rendering crowds with Pixar’s RenderMan
Rendering crowds with Pixar’s RenderManRendering crowds with Pixar’s RenderMan
Rendering crowds with Pixar’s RenderMan
 
Ida Art
Ida ArtIda Art
Ida Art
 
Chinese warfare
Chinese warfareChinese warfare
Chinese warfare
 
Disney &amp; pixar merger
Disney &amp; pixar mergerDisney &amp; pixar merger
Disney &amp; pixar merger
 
Disney Pixar
Disney PixarDisney Pixar
Disney Pixar
 
Disney Pixar M&A
Disney Pixar M&ADisney Pixar M&A
Disney Pixar M&A
 
Disney pixar ppt.332194447
Disney pixar ppt.332194447Disney pixar ppt.332194447
Disney pixar ppt.332194447
 
Pixar
PixarPixar
Pixar
 
Disney Pixar case study
Disney Pixar case studyDisney Pixar case study
Disney Pixar case study
 
Disney & pixar
Disney & pixar Disney & pixar
Disney & pixar
 

Similar to Implementing a modern, RenderMan compliant, REYES renderer

Advanced Game Development with the Mobile 3D Graphics API
Advanced Game Development with the Mobile 3D Graphics APIAdvanced Game Development with the Mobile 3D Graphics API
Advanced Game Development with the Mobile 3D Graphics API
Tomi Aarnio
 
Introduction to Computer graphics
Introduction to Computer graphicsIntroduction to Computer graphics
Introduction to Computer graphics
LOKESH KUMAR
 
Beginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeks
Beginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeksBeginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeks
Beginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeks
JinTaek Seo
 
Creating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector GraphicsCreating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector Graphics
David Keener
 
"Moving CNNs from Academic Theory to Embedded Reality," a Presentation from S...
"Moving CNNs from Academic Theory to Embedded Reality," a Presentation from S..."Moving CNNs from Academic Theory to Embedded Reality," a Presentation from S...
"Moving CNNs from Academic Theory to Embedded Reality," a Presentation from S...
Edge AI and Vision Alliance
 
Custom SRP and graphics workflows - Unite Copenhagen 2019
Custom SRP and graphics workflows - Unite Copenhagen 2019Custom SRP and graphics workflows - Unite Copenhagen 2019
Custom SRP and graphics workflows - Unite Copenhagen 2019
Unity Technologies
 
Minko stage3d workshop_20130525
Minko stage3d workshop_20130525Minko stage3d workshop_20130525
Minko stage3d workshop_20130525Minko3D
 
The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014
Jarosław Pleskot
 
Rendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb RaiderRendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb Raider
Eidos-Montréal
 
Computer Graphics Part1
Computer Graphics Part1Computer Graphics Part1
Computer Graphics Part1
qpqpqp
 
Point cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangPoint cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihang
Lihang Li
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
kparthjadhav
 
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Lviv Startup Club
 
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
JinTaek Seo
 
Graphics pipelining
Graphics pipeliningGraphics pipelining
Graphics pipelining
Areena Javed
 
D3 D10 Unleashed New Features And Effects
D3 D10 Unleashed   New Features And EffectsD3 D10 Unleashed   New Features And Effects
D3 D10 Unleashed New Features And EffectsThomas Goddard
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
Tiago Sousa
 
Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)Matthias Trapp
 
lecture4 raster details in computer graphics(Computer graphics tutorials)
lecture4 raster details in computer graphics(Computer graphics tutorials)lecture4 raster details in computer graphics(Computer graphics tutorials)
lecture4 raster details in computer graphics(Computer graphics tutorials)
Daroko blog(www.professionalbloggertricks.com)
 
Rendering basics
Rendering basicsRendering basics
Rendering basics
icedmaster
 

Similar to Implementing a modern, RenderMan compliant, REYES renderer (20)

Advanced Game Development with the Mobile 3D Graphics API
Advanced Game Development with the Mobile 3D Graphics APIAdvanced Game Development with the Mobile 3D Graphics API
Advanced Game Development with the Mobile 3D Graphics API
 
Introduction to Computer graphics
Introduction to Computer graphicsIntroduction to Computer graphics
Introduction to Computer graphics
 
Beginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeks
Beginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeksBeginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeks
Beginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeks
 
Creating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector GraphicsCreating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector Graphics
 
"Moving CNNs from Academic Theory to Embedded Reality," a Presentation from S...
"Moving CNNs from Academic Theory to Embedded Reality," a Presentation from S..."Moving CNNs from Academic Theory to Embedded Reality," a Presentation from S...
"Moving CNNs from Academic Theory to Embedded Reality," a Presentation from S...
 
Custom SRP and graphics workflows - Unite Copenhagen 2019
Custom SRP and graphics workflows - Unite Copenhagen 2019Custom SRP and graphics workflows - Unite Copenhagen 2019
Custom SRP and graphics workflows - Unite Copenhagen 2019
 
Minko stage3d workshop_20130525
Minko stage3d workshop_20130525Minko stage3d workshop_20130525
Minko stage3d workshop_20130525
 
The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014
 
Rendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb RaiderRendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb Raider
 
Computer Graphics Part1
Computer Graphics Part1Computer Graphics Part1
Computer Graphics Part1
 
Point cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangPoint cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihang
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
 
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
 
Graphics pipelining
Graphics pipeliningGraphics pipelining
Graphics pipelining
 
D3 D10 Unleashed New Features And Effects
D3 D10 Unleashed   New Features And EffectsD3 D10 Unleashed   New Features And Effects
D3 D10 Unleashed New Features And Effects
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)
 
lecture4 raster details in computer graphics(Computer graphics tutorials)
lecture4 raster details in computer graphics(Computer graphics tutorials)lecture4 raster details in computer graphics(Computer graphics tutorials)
lecture4 raster details in computer graphics(Computer graphics tutorials)
 
Rendering basics
Rendering basicsRendering basics
Rendering basics
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 

Implementing a modern, RenderMan compliant, REYES renderer

  • 1. Implementing a modern, RenderMan compliant, REYES renderer Davide Pasca ribtools.com (contact: davide<at> ribtools.com) 1
  • 2. About REYES Reyes or REYES (Renders Everything You Ever Saw) A flexible renderer, developed by Lucasfilm CG div. (“Pixar” from 1986) First used in 1984 in Start Trek II ..still used today in Pixar’s Photorealistic RenderMan 2 * Images, from top, are copyright of Paramount Pictures and Pixar (subsidiary of The Walt Disney Company)
  • 3. RenderMan compliant ? Defines a renderer with some basic capabilities such as: A RenderMan graphics state machine Hidden surface elimination Pixel filtering and anti-aliasing User programmable shaders Texture mapping Etc… 3
  • 4. REYES features Native support for high level surfaces Dynamic LOD Compact representation Subdivide per-frame based on size on screen Displace geometry from textures High quality filtering Easier to deal with translucency, motion-blur, etc. Can be used together with ray-tracing 4
  • 6. Split (1) A parametric surface: P = f(u,v) Split until “small enough” size (estimated) on screen 6
  • 7. Split (2) Calculate the bounding box in screen-space …test against predetermined max screen area Here, the bounding box is too large.. 7
  • 8. Split (3) When too large, split the patch It’s easy with parametric primitives: Pnew = f(unew, vnew) New split points 8
  • 9. Split (4) Calculate the bounds of the new sub-patches Still too large 9
  • 10. Split (5) Split recursively until every sub-patch is “small enough”… Small enough.. this is ready to be diced 10
  • 11. What’s “Small Enough” ? When most sub-patches fit in a single bucket When dicing(see later) produces a suitable number of samples (sweet spot for performance) Sub-patch inside a single bucket Optimal Sub-patch touches two or more buckets Not Optimal A bucket 11
  • 12. Dice Small enough sub-patches are diced Generate a dense grid of samples (1 pixel-per-sample or more..) 1 pixel Small enough n_samples <= max_samples max_samples is set for performance reasons and to avoid distortion 12
  • 13. Displace Apply a displacement shader to the position of the samples myDisplace() { mag = texture( “dispmap” ); P += normalize(N) * mag; N = calculatenormal(P); } 13
  • 14. Shade Apply surface and light shaders to get the color myShader() { txcol = texture( “pigment” ); Ci = diffuse(N,txcol); Oi = 1; } 14
  • 15. Sample – the micropolys Form virtualmicropolygons at the grid samples 1 pixel Virtual micropolygons 15
  • 16. Sample – sample points Multiple sub-samples at every pixel …choose a sampling method: regular, multi-jittered (as shown), etc. 16
  • 17. Sample – gather samples Samples get the color of the micropolygons they touch …each sample can have many values if the mpolys are translucent ! 17
  • 18. Sample – convolution Mix the samples together… …choose a filter: box, triangular, Gaussian, Sinc, etc.. 18
  • 19. Sample – final pixel color The resulting “average” color is assigned to the pixel …repeat for every pixel 8) 19
  • 20. RibTools: A RenderMan-style renderer R&D 20 * Killeroo model from headus Ltd., used with permission.
  • 21. RibTools’ key features RenderMan compliant(…almost (^^;)) Parse RIB scene files C-like shaders compiler and VM Parametric surfaces, etc. Sub-pixel displacement mapping Open Sourced (BSD License) Multi-threaded Network-distributed “Future proof” SIMD Scalability ! 21
  • 22.
  • 23. Buckets are assigned to threads on the CPU or to remote servers via TCP/IP
  • 24. Geometry, shaders and textures are also transferred via TCP/IPWorks today ! …it’s only a start. Needs optimizations, esp. network. .............. 22
  • 25.
  • 26. RRASM is assembled and executed by the ShaderVirtual Machine (VM) when renderingShader VM 23
  • 27. Shading and SIMD (1) Values in a grid are treated as arrays… … myDisplace() { P += N * mag; } … N = { RSL P = { RSL Compiler mul $v1 N mag add PP $v1 RRASM Shader VM v1 = SIMD_Mul( N, mag ); P= SIMD_Add(P, v1 ); C 24
  • 28. Shading and SIMD (2) Vector SIMD_Add_FPU(Vector a, Vector b ) { for (i=0; i < vec_size; i += 1) { result[i] = a[i] + b[i]; } return result; } 1x No hardware SIMD SIMD_Add() Vector SIMD_Add_SSE(Vector a, Vector b ) { for (i=0; i < vec_size; i += 4) { SSE_Add( &result[i], &a[i], &b[i] ); } return result; } SSE SIMD_Mul() 4x … LRBni Vector SIMD_Add_LRB(Vector a, Vector b ) { for (i=0; i < vec_size; i += 16) { LRB_Add( &result[i], &a[i], &b[i] ); } return result; } OpenCL, CUDA, ? 16x 25
  • 29. …not fun to debug ! 26
  • 30. Prospects for RibTools What role will REYES play for real-time ? The architecture bodes well with multi-core, vector processors or even GPGPU Displacement and curved surfaces are best with smaller-than-a-pixel polygons anyway Develop, learn and innovate Don’t let the others decide for you..Fully programmable graphics hardware is coming Off-line rendering ? Much more complex, but no real-time constraints DX11 tessellation ..almost micro-polygons! * RenderAnts: REYES on GPGPU Siggraph 2008, 2009 ** 27 * From Unigine’s Direct3D 11 tech demo ** Image from RenderAnts renderer
  • 31. Cons and problems Requires highly programmable hardware (best if with a flexible texture unit) The “RenderMan interface” is a fairly deep standard to follow Shader compilers, optimizers.. complex stuff Comes with other issues: Cracks when tessellating, non-planar micropolys, front plane clipping, etc. ..but someone’s got to try it 8) 28
  • 33. References RibTools’ web site http://ribtools.com “The RenderMan Interface Specification” (aka RISpec) https://renderman.pixar.com/products/rispec/ “Rendering with REYES” (from Pixar) https://renderman.pixar.com/products/whats_renderman/2.html “Production Rendering” (Ian Stephenson Ed.) http://amazon.com/dp/1852338210 “Advanced RenderMan” (by A.Apodaca and L.Gritz) http://amazon.com/dp/1558606181 “The RenderMan Companion” (by Steve Upstill) http://amazon.com/dp/0201508680 30

Editor's Notes

  1. Adaptive  てきおう 適応High quality こうひんしつ 高品質