![Page 1: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/1.jpg)
02/04/03Page 1
Rendering
• Visibility
• Lighting
• Texturing
![Page 2: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/2.jpg)
02/04/03Page 2
• 1. Application/Scene– Description of the contents of the 3D world
– Object Visibility Check including possible Occlusion Culling
• 2. Geometry – Transforms (rotation, translation, scaling)
– Transform from Model Space to View Space
– View Projection
– Trivial Accept/Reject Culling
– Transform to Clip Space
– Clipping
– Transform to Screen Space
• 3. Triangle Setup – Back-face Culling (or can be done in view space before lighting)
– Scan-Line Conversion
• 4. Rendering / Rasterization – Shading
– Texturing
– Fog
– Alpha Translucency Tests
– Depth Buffering
– Z-buffer
Pipeline
![Page 3: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/3.jpg)
02/04/03Page 3
CPU vs. GPU
From http://www.gamedev.net/reference/programming/features/d3d7im2/page2.asp
Move Object and Camera
(AI, Realistic Physics)CPU CPU CPU CPU CPU CPU
Scene Level Calculations,High order surface tessellation
CPU CPU CPU CPU CPU GPU
Transforms CPU CPU CPU GPU GPU GPU
Lighting CPU CPU CPU GPU GPU GPU
Triangle Setup and Clipping CPU CPU CPU GPU GPU GPU
RenderingGraphicsProcessor
GraphicsProcessor
GraphicsProcessor
GPU GPU GPU
1996 1997 1998 1999 2000 2002+
![Page 4: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/4.jpg)
02/04/03Page 4
VisibilityObject Visibility Tests / Occlusion Tests
• Bounding boxes– Approximate objects for quick tests
Area occluded by bounding box of A
A
Note that B is not fully occluded by object A
B
![Page 5: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/5.jpg)
02/04/03Page 5
VisibilityObject Visibility Tests / Occlusion Tests
• QuadTrees– Partition space
![Page 6: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/6.jpg)
02/04/03Page 6
VisibilityObject Visibility Tests / Occlusion Tests
• QuadTrees/OctTrees– Partition 3D space
![Page 7: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/7.jpg)
02/04/03Page 7
VisibilityObject Visibility Tests / Occlusion Tests
• QuadTrees/OctTrees/BSP– Partition space to create a binary tree
![Page 8: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/8.jpg)
02/04/03Page 8
VisibilityObject Visibility Tests / Occlusion Tests
• Portals
![Page 9: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/9.jpg)
02/04/03Page 9
View Space
Near Clipping Plane
Far Clipping Plane
View Frustum
View point
Polygon clipping
![Page 10: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/10.jpg)
02/04/03Page 10
Shading models
• Simple model has 3 basic elements– Diffuse (direct reflection)
– Ambient (reflected and scattered light from the environment)
– Specular (highlights from surface)
• Notes– not physically-based and inaccurate
– nevertheless, a decent approximation
– fast to compute
![Page 11: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/11.jpg)
02/04/03Page 11
Shading models• Diffuse (Lambertian) Reflection
– Dull, matte surfaces– Viewer position independent– Dependent on position and intensity of source
Reflection is product oflight ray L and surface normal N
Light (Ip)N
L
Light (Ip)
NL
Light (Ip)
N
L
But this doesn’t look very good … lighting is too harsh(See this example)
I = Ip kd (N • L) (kd is coeff. of diffusion)
![Page 12: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/12.jpg)
02/04/03Page 12
Ambient Light• So we add ambient light
– Constant term– Crude approximation of light scattering in
scene– Independent of object, light, or viewer position
From http://www.siggraph.org/education/materials/HyperGraph/shutbug.htm
I = Ia ka + Ip kd (N • L)
![Page 13: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/13.jpg)
02/04/03Page 13
Specular Reflection
• To get more accurate and model highlights off the surface, we add specular reflection.
• This adds reflection proportional to cosnα
I = Ia ka Ca + Ip [kd Cd(N • L) + ks Cs(R • V)](C is object color)
Light (Ip)N
LR
V
Reflected ray
To viewer
![Page 14: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/14.jpg)
02/04/03Page 14
Shininess: 0 Shininess Strength: 0
Shininess: 0 Shininess Strength: 33
Shininess: 33 Shininess Strength: 66
Shininess: 66 Shininess Strength: 100
Shininess: 100 Shininess Strength: 100
From http://cts.rice.edu/~shisha/projects/ravl/3ds/materials/shininess.html
Specular coefficients
![Page 15: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/15.jpg)
02/04/03Page 15
All together
Note: mach banding in Gouraud
Flat Gouraud Phong
![Page 16: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/16.jpg)
02/04/03Page 16
• Ambient
• Point sources
• Directional lights (infinite source)
• Spot lights
• Area lights
• Local lights
Lights
X
![Page 17: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/17.jpg)
02/04/03Page 17
Texture• uv coordinates
0,1 1,1
0,0 1,0
0,1 1,1
1,00,0
![Page 18: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/18.jpg)
02/04/03Page 18
From Gamedev.net
Mip Mapping
R
G B
R
G B
R
G B
![Page 19: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/19.jpg)
02/04/03Page 19
Multi passes• Provides application of “textures” to texttures• Quake III uses 10 passes:
– (passes 1 - 4: accumulate bump map) – pass 5: diffuse lighting – pass 6: base texture (with specular component) – (pass 7: specular lighting) – (pass 8: emissive lighting) – (pass 9: volumetric/atmospheric effects) – (pass 10: screen flashes)
(From: Brian Hook, course 29 notes at SIGGRAPH '98)
![Page 20: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/20.jpg)
02/04/03Page 20
Bump Mapping
![Page 21: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/21.jpg)
02/04/03Page 21
Reflection and refraction
From http://www.gamasutra.com/features/20001110/oliveira_01.htm
Snell’s Law : ir1*sin (1) = ir2*sin (2)
![Page 22: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/22.jpg)
02/04/03Page 22
Environment Mapping
Environment mapped onto cube,then projected onto object
![Page 23: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/23.jpg)
02/04/03Page 23
Light mapping
X =
From http://www.gamedev.net/reference/programming/features/d3d7im3/page4.asp
•Pre-computed “texture map”•Simulates light sources
![Page 24: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/24.jpg)
02/04/03Page 24
Alpha blendingFinalColor = SourcePixelColor * SourceBlendFactor +
DestPixelColor * DestBlendFactor
From http://www.gamedev.net/reference/programming/features/d3d7im3/page5.asp
![Page 25: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/25.jpg)
02/04/03Page 25
Z buffer
Each pixel in the buffer contains the distance from the viewpoint of the object rendered at that pixel
If the next object to be drawn at that pixel is further then the value at the pixel, then don’t write the pixel.
Note: ATI Radeon’s Hierarchal Z-buffering
![Page 26: 02/04/03 Page 1 Rendering Visibility Lighting Texturing](https://reader036.vdocuments.site/reader036/viewer/2022062407/56649d895503460f94a6ebd3/html5/thumbnails/26.jpg)
02/04/03Page 26
Reading
• 3D pipeline tutorialhttp://www.extremetech.com/article/0,3396,s=1017&a=2674,00.asp