Title: Ray Tracing News
1(No Transcript)
2Ray Tracing News
- http//www.raytracingnews.org/
- RTNv19n1 September 30, 2006
- Introduction
- Ray Tracing Roundup
- Notes on Efficient Ray Tracing
- Ray-Box Sorting
- BVHs and Memory Coherence
- So long and thanks for all the fish...
- Ray/Box Intersection Optimization
- SIGGRAPH 2006 Report
3Ray TracingenGlobal Illumination
- praktische inleiding
- over beschikbare software
4Ray Tracer from scratch
- practicum CG1
- leerrijk, maar tijdrovend
- matrix, vector, kleur, afbeelding, camera,
straal, puntlicht, driehoek, ... - ontwerpkeuzes
5Beschikbare renderers
- standing on the shoulders of giants
- doel
- hobby ray tracer met beperkte fysische basis
- bv. POV-Ray
- academische, fysisch gebaseerde global
illumination renderer - bv. PBRT, RenderPark, Radiance,
- basisimplementatie
- meer mogelijkheden dan je zelf zou schrijven
- uitbreidbaarheid
6Overzicht
- Ray Tracing
- korte herhaling van CG1
- voorbeeld POV-Ray
- Global Illumination
- korte herhaling van CG1, meer info zie CG2
- voorbeeld PBRT
7Ray Tracing herhaling
- camera
- pixelrooster
- scène
scène
camera
pixelrooster
8Ray Tracing herhaling
9Ray Tracing herhaling
- primaire straal
- raakpunt
- schaduw en shading
10Ray Tracing herhaling
- schaduw
- schaduwstraal van raakpunt naar lichtbron
- raakt ander object?raakpunt niet belicht
11Ray Tracing herhaling
- speculair
- spiegeling(N.V) (N.R)
- recursie
- Phong (glans)
- cosinus (R.V) of (N.H)
- exponent n
12Ray Tracing herhaling
- recursie
- reflectie
- refractie
- wet van Snellius
normaal buiten
lucht (n1)
glas (n1,5)
oppervlak
13Ray Tracing herhaling
- ray tracingà la Whitted 1980
- uitbreidingen
- oppervlaktelichtbron(zachte schaduwen)
- participerende media
- hacks
- ambiënt licht
14POV-Ray (www.povray.org)
- hobby, artistiek, andere terminologie
- brede basisimplementatie
- uitbreidbaarheid is geen doel
- praktische documentatie en tutorials
- standaard ray tracing
15POV-Ray
- fotorealisme mogelijk door te tweaken
- Internet Ray Tracing Competition (www.irtc.org)
- niet fysisch gebaseerd, geen global illumination
- radiosity, photon map uitbreidingen
16POV-Ray syntax
- camera
- perspective
- location
- look_at
- up
- angle 50
17POV-Ray syntax
- light_source
- // positie
- color rgb
- pointlight
-
- light_source
- // positie
- color rgb
- area_light
- // afmetingen
- 8, 8 // stratificatie
- jitter
18POV-Ray syntax
- plane
- y, -1 // vlak y-1
-
- box
- // hoekpunten
-
- sphere
- , 1 // center, straal
-
- cone
- , 0.0, // punt op as, straal 0
- , 1.0 // punt op as, straal 1
19POV-Ray syntax
- mesh
- triangle
- , , // hoeken
- uv_vectors , ,
- // textuurcoordinaten
-
- smooth_triangle
- , , // hoek, normaal
- , , // hoek, normaal
- , // hoek, normaal
- uv_vectors , ,
- // textuurcoordinaten
-
20POV-Ray syntax
- texture // materiaal
- pigment // basiskleur
- // ...
-
- normal // bump map
- // ...
-
- finish // glans
- // ...
-
21POV-Ray syntax
- pigment
- color rgb
-
- pigment
- image_map
- jpeg
- "filename.jpg"
-
22POV-Ray syntax
- normal
- bumps 0.5 // proceduraal
-
- normal
- bump_map
- gif
- "filename.gif"
-
23POV-Ray syntax
- finish
- phong 0.9
- phong_size 60 // 1 - 250
- // of
- specular 0.9
- roughness 0.02 // 0.0005 1
- reflection 0.8
- // modifiers
- metallic // kleur highlight
- conserve_energy
24POV-Ray
25POV-Ray
- uitbreidbaarheid?
- C
- redelijk leesbare code
- weinig structuur
- code aanpassen
- functionaliteit toevoegen?
26Overzicht
- Ray Tracing
- korte herhaling van CG1
- voorbeeld POV-Ray
- Global Illumination
- korte herhaling van CG1, meer info zie CG2
- voorbeeld PBRT
27Global Illumination
28Global Illumination
- diffuse interreflecties
- glossy reflecties
29Global Illumination
- diffuse interreflecties
- glossy reflecties
- caustics
30Global Illumination
- diffuse interreflecties
- glossy reflecties
- caustics
- fysisch correct
31Global Illumination
radiosity stochastic ray tracing
- diffuse interreflecties
- glossy reflecties
- caustics
- fysisch correct
radiosity
ray tracing
foto
32Global Illumination herhaling
33Global Illumination herhaling
34Global Illumination herhaling
- directe/indirecte belichting samen
35Global Illumination herhaling
- directe/indirecte belichting apart
36Global Illumination herhaling
37Global Illumination herhaling
38Global Illumination herhaling
- path tracing
- L ...
- emissie
39Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
40Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtingkomt van overal
41Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtinguit 1 richting
42Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtingkomt van ergens
43Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtingrecursief
44Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtingrecursief
45Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtingrecursief
46Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtingrecursief
47Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtingrecursief
48Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtingrecursief
49Global Illumination herhaling
- path tracing
- L ...
- emissie
- directe belichting
- indirecte belichtingrecursief
- aantal keerper pixel
50Global Illumination herhaling
- path tracing
- in principe volledig
- maar soms traag
- bv. caustics
51Global Illumination herhaling
- photon mapping
- pass 1 store
52Global Illumination herhaling
- photon mapping
- pass 1 store
- positie (x, y, z)
- inkomende richting
- vermogen (r, g, b)
53Global Illumination herhaling
- photon mapping
- pass 1 store
- positie (x, y, z)
- inkomende richting
- vermogen (r, g, b)
- in kd-tree
54Global Illumination herhaling
- photon mapping
- pass 1 store
- positie (x, y, z)
- inkomende richting
- vermogen (r, g, b)
- in kd-tree
- los van geometrie
55Global Illumination herhaling
- photon mapping
- pass 1 store
- globale map
- caustic map
56Global Illumination herhaling
- photon mapping
- pass 1 store
- pass 2 gather
- soort stochasticray tracingemissiedirecte
belichtingcaustic mapindirecte
belichtingglobale map
57PBRT (www.pbrt.org)
- academisch
- beperkte basisimplementatie
- moderne, leesbare algoritmes
- performant, maar geen micro-optimalisaties
- extreem uitbreidbaar
- bijna alles in plugins
- documentatie
- directe overeenkomst theorie en implementatie
- gekende terminologie
58PBRT
- boek Physically Based Rendering From Theory to
Implementation - M. Pharr, G. Humphreys. 2004.
- incl. CD met bin, src v1.0 en prentjes
- site www.pbrt.org
- source code v1.02
- Windows (Visual Studio, Cygwin)
- Linux / MacOS X
- plugins
- errata bugtracking
59PBRT
- globale belichting, fysisch gebaseerd
- fotorealisme als je realistische invoer geeft
60PBRT
- globale belichting, fysisch gebaseerd
- fotorealisme als je realistische invoer geeft
61PBRT
- globale belichting, fysisch gebaseerd
- fotorealisme als je realistische invoer geeft
62PBRT plugins
- accelerators kdtree, grid
- cameras perspective, environment, orthographic
- filters mitchell, box, gaussian, sinc, triangle
- integrators directlighting, irradiancecache,
path, photonmap, whitted, ... - samplers lowdiscrepancy, stratified, ...
63PBRT
- lights area, distant, infinite, point,
projection, spot, ... - materials matte, glass, mirror, plastic,
shinymetal, translucent, uber, ... - shapes cone, cylinder, disk, loopsubdiv, nurbs,
sphere, trianglemesh, ... - textures checkerboard, constant, dots, fbm,
imagemap, marble, windy, wrinkled, ...
64PBRT syntax
- Identifier class (type name
value) - Film image string filename
foo - Sampler stratified bool jitter
true - LightSource spot float coneangle 30
- Shape trianglemesh point P 0 0 0 0 1
0 1 0 0 - normal N 0 0 1 0 1
1 1 0 1 - vector S 1 1 0 1 0
0 0 1 0 - integer indices 0 1
2 ... - Texture green color constant color value
0 1 0 - Material matte texture Kd
green - Material matte color Kd 0 1
0
65PBRT syntax
- LookAt 0 10 100 0 -1 0 0 1 0
- camera punt lookat punt up vector
- Camera perspective float fov 30
- SurfaceIntegrator path
- Accelerator kdtree
66PBRT syntax
- PixelFilter box float xwidth .5
- float ywidth .5
- Sampler stratified integer xsamples 2
- integer ysamples 2
- bool jitter true
- Film image string filename name.exr
- integer xresolution 800
- integer yresolution 600
67PBRT
- OpenEXR (www.openexr.com)
- Industrial Light Magic (Lucasfilm)
- high dynamic range
- in postproces exposure aanpassen
68PBRT syntax
- WorldBegin
- LightSource point point from 0 1 0
- AttributeBegin
- Translate 0 2 0
- Rotate 135 1 0 0 hoek en as
- Material matte color Kd 1 0 0
- Shape sphere float radius 2
- altijd center 0 0 0, dus Translate
- AttributeEnd
- WorldEnd
69PBRT plugins
- include shape.h
- class Sphere public Shape
- public
- Sphere(...)
- BBox ObjectBound() const
- bool Intersect(const Ray ray,
- float tHit, ...) const
- bool IntersectP(const Ray ray) const
- float Area() const
- Point Sample(float u1, float u2, ...)
- const
- float Pdf(...) const
70PBRT plugins
- Shape CreateShape(...)
- float radius
- params.FindOneFloat("radius", 1.0f)
- return new Sphere(radius, ...)
-
- Shape sphere float radius 2
71(No Transcript)
72(No Transcript)
73(No Transcript)
74Praktische rendering
- Eigen PC
- Graphics aquarium
- Athlon 64 X2 (dual core)
- uitbreiding
- PC-klas
- 40-tal Pentium IV
- Cluster (www.vic.cc.kuleuven.be)
- 400-tal Opteron250 cores
- binnenkort 480-tal extra