SlideShare uma empresa Scribd logo
1 de 31
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

Mais conteúdo relacionado

Mais procurados

Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbiteElectronic Arts / DICE
 
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Takahiro Harada
 
Past, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in GamesPast, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in GamesColin Barré-Brisebois
 
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 RunElectronic Arts / DICE
 
Rendering Techniques in Deus Ex: Mankind Divided
Rendering Techniques in Deus Ex: Mankind DividedRendering Techniques in Deus Ex: Mankind Divided
Rendering Techniques in Deus Ex: Mankind DividedEidos-Montréal
 
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)Takahiro Harada
 
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 IlluminationWolfgang Engel
 
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 3stevemcauley
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingSIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingElectronic Arts / DICE
 
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 RenderingElectronic Arts / DICE
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14AMD Developer Central
 
GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham OriginsGDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham OriginsColin Barré-Brisebois
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontElectronic Arts / DICE
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbiteElectronic Arts / DICE
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space MarinePope Kim
 

Mais procurados (20)

Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in Frostbite
 
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
 
Past, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in GamesPast, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in Games
 
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 Techniques in Deus Ex: Mankind Divided
Rendering Techniques in Deus Ex: Mankind DividedRendering Techniques in Deus Ex: Mankind Divided
Rendering Techniques in Deus Ex: Mankind Divided
 
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
 
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
 
Frostbite on Mobile
Frostbite on MobileFrostbite on Mobile
Frostbite on Mobile
 
Light prepass
Light prepassLight prepass
Light prepass
 
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
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingSIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
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
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
 
GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham OriginsGDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 

Destaque

Destaque (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
 

Semelhante a 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 APITomi Aarnio
 
Introduction to Computer graphics
Introduction to Computer graphicsIntroduction to Computer graphics
Introduction to Computer graphicsLOKESH KUMAR
 
Beginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeks
Beginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeksBeginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeks
Beginning direct3d gameprogramming09_shaderprogramming_20160505_jintaeksJinTaek 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 GraphicsDavid 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 2019Unity 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 2014Jarosław Pleskot
 
Computer Graphics Part1
Computer Graphics Part1Computer Graphics Part1
Computer Graphics Part1qpqpqp
 
Point cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangPoint cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangLihang Li
 
Данило Ульянич “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 pipeliningAreena 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 TechnologyTiago Sousa
 
Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)Matthias Trapp
 
Rendering basics
Rendering basicsRendering basics
Rendering basicsicedmaster
 
Computer graphics
Computer graphicsComputer graphics
Computer graphicsamitsarda3
 

Semelhante a 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
 
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
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
 

Último

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Último (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

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

Notas do Editor

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