PBRT Tutorial

Reviews
Shared by: techmaster
Stats
views:
378
rating:
not rated
reviews:
0
posted:
10/29/2008
language:
pages:
0
PBRT Tutorial Steven Bergner TA for Cmpt 461/770 Email: sbergner@cs.sfu.ca PBRT Tutorial - Steven Bergner 2 Advantages of PBRT • Very general and well tested framework • Delivers you from wasting time on the basics (foundation classes, API) • Teaches good code design – Reverse software engineering: • State of the art rendering! PBRT Tutorial - Steven Bergner • Understanding abstraction reveals principles 3 Downsides? • Work in a large framework that you haven’t thought up yourself – Hard to overlook in the beginning • Saves you time coding, BUT • Requires time to learn! – Minimized by good documentation PBRT Tutorial - Steven Bergner 4 Overview • • • • • Getting started Structure of PBRT Scene description Extending the source code Strategies for development PBRT Tutorial - Steven Bergner 6 Find PBRT • Find a computer (MTF) – orange.csil.sfu.ca (cyan, emerald, ...) – you can only login from within sfu.ca domain (e.g. go through fraser.sfu.ca) • Installed in /usr/local/pkg/pbrt/ • Directories bin, images, scenes, src PBRT Tutorial - Steven Bergner 7 Prerequisites • be able to logon to the MTF machines • be familiar with – basic shell navigation, – compiling, – makefiles PBRT Tutorial - Steven Bergner 8 Setup PBRT • Environment variable PBRT_SEARCHPATH – used to scan plugins from shared objects (.so or .dll) – also setup LD_LIBRARY_PATH >source pbrt.env PBRT Tutorial - Steven Bergner 9 Render a scene • render a scene: – you have to be in the scene path >cd ~/pbrt/scenes/ >pbrt simple.pbrt >exrtotiff simple.exr simple.tiff >display simple.tiff (using && you can write everything into one line) PBRT Tutorial - Steven Bergner 10 Sources of information • Le book • Doxygen documentation • Website www.pbrt.org • grep on scenes and source code PBRT Tutorial - Steven Bergner 11 The book • Highly cross-referenced content • See Appendices – C scene description interface – E index of classes • Don’t read it page by page • Read it page by page PBRT Tutorial - Steven Bergner 12 Doxygen • Automatic documentation from source code (+comments) • PBRT doxygen documentation • Comment your code • Be concise ;-) – In $PBRTDIR/src/doxygen/html – Use //! or /*! Blubb */ – See www.doxygen.org PBRT Tutorial - Steven Bergner 13 The website • • • • FAQ is very useful Forum is well frequented Links to other courses are useful ReadMe file on the CD PBRT Tutorial - Steven Bergner 14 Structure of PBRT Object-oriented world • Core: General principle of raytracing is abstracted into base classes • Plug-in: Extend base classes that implement functionality PBRT Tutorial - Steven Bergner 16 Base Classes (p. 17) • Camera • Light • Material and Texture • Shape – Accelerators – Film, Sampler, and Filter • Volumes • Surface-/volume integrator – Guided by Ray PBRT Tutorial - Steven Bergner 17 Rendering Loop (p. 25) PBRT Tutorial - Steven Bergner 18 Surface Integration (p. 32) PBRT Tutorial - Steven Bergner 19 Scene description .pbrt file format • • • • Read Appendix C, p. 911 (it helps) ASCII human readable (and writable) Dynamic + common parameter passing Dynamic plug-in instantiation – have to be in the path PBRT Tutorial - Steven Bergner 21 .pbrt file format • Parameter lists: “float fov” [30] • Statements – Transformations (CTM): LookAt, Rotate, Translate, … (left-handed CS!) • Rendering options • Attributes – object descriptions – Camera, Sampler, Film – WorldBegin, WorldEnd – AttributeBegin/End – State push/pop PBRT Tutorial - Steven Bergner 22 Standard plug-ins • • • • • • • • • • • • Cameras 917 Samplers 919 Film 920 Filters 921 Shapes 922 Accelerators 926 Materials 927 Textures 930 Volumes 934 Lights 936 SurfaceIntegrator 938 VolumeIntegrator 940 PBRT Tutorial - Steven Bergner 23 Example scene • Simple.pbrt PBRT Tutorial - Steven Bergner 24 Debugging a scene • display shows alpha mask • Build incrementally, start simple • Lights – Point lights are very weak over distance • Intelligent copy PBRT Tutorial - Steven Bergner 25 Generated scenes • Generate scene files from scripts • pbrt can be used as stream processor cat simple.pbrt|pbrt PBRT Tutorial - Steven Bergner 26 Implementing a plug-in Core • pbrt.h • geometry.h • Base classes: shape, light, camera, … PBRT Tutorial - Steven Bergner 28 Implementing a plug-in • Locate right spot in class hierarchy – Find appropriate directory • Update Makefile to build yours too • Inherit base class – Setup your parameters – Implement the full interface • Read hints in the book (e.g., for class Shape) PBRT Tutorial - Steven Bergner 29 Example: sphere • shapes/sphere.cpp • Look at interface and parameters • Look at CreateShape • Look at implementation PBRT Tutorial - Steven Bergner 30 Differential Geometry • General shading interface • Parameterize surface • Provide Normal (by dpdu dpdv) PBRT Tutorial - Steven Bergner 31 Strategies Before you start coding… • look for existing classes and functions – understand the structure – what functions do you need? • do they already exist? (e.g., vectors, basic geometry) – if you add functions, where do they belong? • use Doxygen help to quickly follow crossreferences in the code • use the book to understand usage PBRT Tutorial - Steven Bergner 33 Have fun! Have questions?

Related docs
Recommended Book
Views: 27  |  Downloads: 0
Kate Bachner Allen Vol
Views: 25  |  Downloads: 0
CMPT 461 Final Project Sunny Tam
Views: 2  |  Downloads: 0
DPSNov-9
Views: 10  |  Downloads: 0
Page 1
Views: 0  |  Downloads: 0
Other docs by techmaster
Broken genetics
Views: 394  |  Downloads: 4
Structural Change
Views: 239  |  Downloads: 27
Tarifs[1]
Views: 78  |  Downloads: 3
Battery[1]
Views: 119  |  Downloads: 0
Mesnevi Serif 1.Cilt
Views: 421  |  Downloads: 19
Raising Venture Capital
Views: 1717  |  Downloads: 415
Cayman Economic Report for 2006[2]
Views: 120  |  Downloads: 0
pos040p
Views: 35  |  Downloads: 2
THE ANGEL MARKET REBOUNDS_[1]
Views: 70  |  Downloads: 1
anderson[1]
Views: 67  |  Downloads: 2
Vogt_ Peterson_ Breifs
Views: 88  |  Downloads: 1
0705_Carpe _1_
Views: 347  |  Downloads: 0
Checklist for Employee Handbooks[1]
Views: 204  |  Downloads: 24
ud150
Views: 78  |  Downloads: 0
The Caribbean Ecomics Report -- Part2
Views: 576  |  Downloads: 1