SlideServe
Menu
Préférences
© SlideServe · v2026

Chrono::Render

emmy avatar
22 diapositives · 470 Views · Jul 17, 2014

Chrono::Render. Aaron Bartholomew. Problem Requirements. Render huge data sets efficiently and beautifully Have flexibility to render anything Make the rendering process streamlined and simple. Raytracing. Conceptually simple Easy to get complex visual effects without much effort.

Chrono::Render - slide 1
01 / 22Chrono::Render
1 / 17

Télécharger la présentation

Chrono::Render
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Chrono::Render Aaron Bartholomew

  2. Problem Requirements • Render huge data sets efficiently and beautifully • Have flexibility to render anything • Make the rendering process streamlined and simple

  3. Raytracing • Conceptually simple • Easy to get complex visual effects without much effort

  4. Raytracing Detriments • Breaks down when scene complexity grows large • Only efficient if you can load the whole scene into memory • Poor memory locality • Any ray can access any object in the scene at any time

  5. What Is RenderMan? • REYES algorithm – Render Everything You Ever Saw • Pixar’sPRMan implementation is considered the industry gold standard of rendering • “Used on every Visual Effects Academy Award Winner of the past 15 years” – pixar.com

  6. Why RenderMan? • Engineered to be as fast, efficient, and configurable as possible • Extremely low memory overhead • Hybrid rendering capabilities • Raytracing on demand • Highly scriptable and controllable

  7. Things RenderMan is Really Good At: Immense Scene Complexity

  8. Things RenderMan is Really Good At: Displacement

  9. Things RenderMan is Really Good At: MotionBlur and Depth Of Field

  10. RenderMan::under the hood • REYES • Dice Primitives to Microgeometry Grids • Shade Microgeometry • Bucket, load only relevant Microgeometry into memory

  11. RenderMan::Shaders • Procedural material definition of how the microgeometry is rendered • Surface, Displacement, Atmosphere, Volume, … • Can do anything • Modular • RenderMan Shading Language (C-like syntax)

  12. RenderMan::RenderPasses • Compute some data that an effect is dependent on • “Pass” over the scene to process the necessary data • Composite the data in another pass to get the final image • Example: Depth Map => Shadow

  13. Render Pass Example: Point-Based Ambient Occlusion

  14. Chrono::Render • RenderMan requires a lot of work to configure and optimize correctly • Need to specify long chains of RenderMan Interface Bytestream calls • Make it easy and more general to configure a quality render, while still enabling flexibility • What is it: C++ processing binaries, simple Python scripting interface, and succinct XML specification

  15. Chrono::Render User Scripts XML Chrono::Render RenderMan Bytestream DATA

  16. Chrono::Render <Settings/> • Salient data for the render process <settings> <!--general render and data settings--> <string name="write_filename" value="cube"/> <string name="write_path" value="./"/> <string name="data_filename" value="pos.dat"/> <string name="data_path" value="/home/aaron/Documents/Programming/Repos/chronoman/test/input/data/rot_euler_y/"/> <string name="data_format" value="id,pos_x,pos_y,pos_z,euler_x,euler_y,euler_z,ignore,ignore,ignore,ignore"/> <string name="delim" value=","/> <string name="searchpath" value="./SHADERS/:/home/aaron/Documents/Programming/Repos/chronoman/share/shaders/:/usr/share/aqsis/shaders/:/usr/share/aqsis/shaders/surface/”/> <vector name="framerange" value="0 0"/> </settings>

  17. Chrono::Render <renderpass/> • Scene definition and outputs <renderpass> <string name="name" value="default_pass"/> <string name="scene" value="./ARCHIVES/default_scene.rib"/> <string name="lighting" value="./ARCHIVES/default_lighting.rib"/> <string name="camera" value="./ARCHIVES/default_camera.rib"/> <vector name="resolution" value="320 320"/> <string name="renderscript" value="AO.py"/> <!---RENDEROBJECTS---> </renderpass>

  18. Chrono::Render <renderobject/> • Data and its appearance <renderobject> <string name="name" value="default"/> <bool name="motionblur" value="0"/> <vector name="range" value="1 1"/> <vector name="color" value="1 1 1"/> <geometry name="sphere"> <float name="radius" value="1"/> </geometry> <shader type="surface" name="bake_areas"> <string name="string filename" value="file"/> <string name="string displaychannels” value="_area"/> </shader> </renderobject>

  19. Chrono::Render Scripting • Python Scripting • Complete control of RIB emission at runtime • Custom-grained Scripting • Write a script for any of the cameras, renderobjects, renderpasses, or lights • Wraps around fast C++ implementation • Really complex effects, very easy and concise

  20. Chrono::Render on RAILS • Bootstrap your render • Generate/Transform scripts, shaders, and xml for commonly desired effects • Example: cman generate test.xml pass ao • Updates XML • Writes AO.py script to project tree • Convert file formats into RenderMan-specific types • Example: cman rib cube.obj • Converts cube.obj & cube.mtl to cube.rib & cube.sl • Adds files to render searchpaths

  21. Live Demo • “Suppose we’ll do it live” – Bill O’Reilly, Fox News

  22. Chrono::Render::Questions::Suggestions