3D graphics eBook - Course Materials Repository
3D graphics eBook - Course Materials Repository 3D graphics eBook - Course Materials Repository
Subdivision surface 203 References [1] Jos Stam, Exact Evaluation of Catmull–Clark Subdivision Surfaces at Arbitrary Parameter Values, Proceedings of SIGGRAPH'98. In Computer Graphics Proceedings, ACM SIGGRAPH, 1998, 395–404 ( pdf (http:/ / www. dgp. toronto. edu/ people/ stam/ reality/ Research/ pdf/ sig98. pdf), downloadable eigenstructures (http:/ / www. dgp. toronto. edu/ ~stam/ reality/ Research/ SubdivEval/ index. html)) [2] Ulrich Reif. 1995. A unified approach to subdivision algorithms near extraordinary vertices. Computer Aided Geometric Design. 12(2) 153–174 • J. Peters and U. Reif: The simplest subdivision scheme for smoothing polyhedra, ACM Transactions on Graphics 16(4) (October 1997) p. 420-431, doi (http:/ / doi. acm. org/ 10. 1145/ 263834. 263851). • A. Habib and J. Warren: Edge and vertex insertion for a class of C 1 subdivision surfaces, Computer Aided Geometric Design 16(4) (May 1999) p. 223-247, doi (http:/ / dx. doi. org/ 10. 1016/ S0167-8396(98)00045-4). • L. Kobbelt: √3-subdivision, 27th annual conference on Computer graphics and interactive techniques, doi (http:/ / doi. acm. org/ 10. 1145/ 344779. 344835). External links • Resources about Subdvisions (http:/ / www. subdivision. org) • Geri's Game (http:/ / www. pixar. com/ shorts/ gg/ theater/ index. html) : Oscar winning animation by Pixar completed in 1997 that introduced subdivision surfaces (along with cloth simulation) • Subdivision for Modeling and Animation (http:/ / www. multires. caltech. edu/ pubs/ sig99notes. pdf) tutorial, SIGGRAPH 1999 course notes • Subdivision for Modeling and Animation (http:/ / www. mrl. nyu. edu/ dzorin/ sig00course/ ) tutorial, SIGGRAPH 2000 course notes • Subdivision of Surface and Volumetric Meshes (http:/ / www. hakenberg. de/ subdivision/ ultimate_consumer. htm), software to perform subdivision using the most popular schemes • Surface Subdivision Methods in CGAL, the Computational Geometry Algorithms Library (http:/ / www. cgal. org/ Pkg/ SurfaceSubdivisionMethods3)
Subsurface scattering 204 Subsurface scattering Subsurface scattering (or SSS) is a mechanism of light transport in which light penetrates the surface of a translucent object, is scattered by interacting with the material, and exits the surface at a different point. The light will generally penetrate the surface and be reflected a number of times at irregular angles inside the material, before passing back out of the material at an angle other than the angle it would have if it had been reflected directly off the surface. Subsurface scattering is important in 3D computer graphics, being necessary for the realistic rendering of materials such as marble, skin, and milk. Rendering Techniques Most materials used in real-time computer graphics today only account for the interaction of light at the surface of an object. In reality, many materials are slightly translucent: light Direct surface scattering (left), plus subsurface scattering (middle), create the final image on the right. Example of Subsurface scattering made in Blender software. enters the surface; is absorbed, scattered and re-emitted — potentially at a different point. Skin is a good case in point; only about 6% of reflectance is direct, 94% is from subsurface scattering. [1] An inherent property of semitransparent materials is absorption. The further through the material light travels, the greater the proportion absorbed. To simulate this effect, a measure of the distance the light has traveled through the material must be obtained. Depth Map based SSS One method of estimating this distance is to use depth maps [2] , in a manner similar to shadow mapping. The scene is rendered from the light's point of view into a depth map, so that the distance to the nearest surface is stored. The depth map is then projected onto it using standard projective texture mapping and the scene re-rendered. In this pass, when shading a given point, the distance from the light at the point the ray entered the surface can be obtained by a simple texture lookup. By subtracting this value from the point the ray exited the object we can gather an estimate of the distance the light has traveled through the object. Depth estimation using depth maps The measure of distance obtained by this method can be used in several ways. One such way is to use it to index directly into an artist created 1D texture that falls off exponentially with distance. This approach, combined with
- Page 157 and 158: Ray tracing 152 On June 12, 2008 In
- Page 159 and 160: Reflection 154 Reflection Reflectio
- Page 161 and 162: Reflection 156 Glossy Reflection Fu
- Page 163 and 164: Reflection mapping 158 Cube mapping
- Page 165 and 166: Render Output unit 160 Render Outpu
- Page 167 and 168: Rendering 162 • indirect illumina
- Page 169 and 170: Rendering 164 Ray tracing Ray traci
- Page 171 and 172: Rendering 166 Academic core The imp
- Page 173 and 174: Rendering 168 • 1984 Distributed
- Page 175 and 176: Retained mode 170 Retained mode In
- Page 177 and 178: Scanline rendering 172 Comparison w
- Page 179 and 180: Screen Space Ambient Occlusion 174
- Page 181 and 182: Screen Space Ambient Occlusion 176
- Page 183 and 184: Shadow mapping 178 Algorithm overvi
- Page 185 and 186: Shadow mapping 180 Drawing the scen
- Page 187 and 188: Shadow mapping 182 Further reading
- Page 189 and 190: Shadow volume 184 There is also a p
- Page 191 and 192: Shadow volume 186 The depth fail me
- Page 193 and 194: Silhouette edge 188 Silhouette edge
- Page 195 and 196: Specular highlight 190 Specular hig
- Page 197 and 198: Specular highlight 192 normalized o
- Page 199 and 200: Sphere mapping 194 Sphere mapping I
- Page 201 and 202: Stencil codes 196 Stencil codes Ste
- Page 203 and 204: Stencil codes 198 Stencils The shap
- Page 205 and 206: Stencil codes 200 [7] Wellein, G et
- Page 207: Subdivision surface 202 used a four
- Page 211 and 212: Subsurface scattering 206 External
- Page 213 and 214: Surface normal 208 If a (possibly n
- Page 215 and 216: Surface normal 210 Normal in geomet
- Page 217 and 218: Texture filtering 212 Texture filte
- Page 219 and 220: Texture mapping 214 Texture mapping
- Page 221 and 222: Texture mapping 216 constant distan
- Page 223 and 224: Texture synthesis 218 • Structure
- Page 225 and 226: Texture synthesis 220 Pattern-based
- Page 227 and 228: Texture synthesis 222 • Micro-tex
- Page 229 and 230: UV mapping 224 A UV map can either
- Page 231 and 232: Vertex 226 Polytope vertices are re
- Page 233 and 234: Vertex Buffer Object 228 //Make the
- Page 235 and 236: Vertex Buffer Object 230 GLuint sha
- Page 237 and 238: Vertex Buffer Object 232 vertexes *
- Page 239 and 240: Virtual actor 234 Virtual actor A v
- Page 241 and 242: Virtual actor 236 exercises, and ev
- Page 243 and 244: Volume rendering 238 Volume ray cas
- Page 245 and 246: Volume rendering 240 Maximum intens
- Page 247 and 248: Volume rendering 242 Image-based me
- Page 249 and 250: Volumetric lighting 244 References
- Page 251 and 252: Voxel 246 • Outcast, a game made
- Page 253 and 254: Z-buffering 248 Z-buffering In comp
- Page 255 and 256: Z-buffering 250 } } display COLOR a
- Page 257 and 258: Z-fighting 252 Z-fighting Z-fightin
Subsurface scattering 204<br />
Subsurface scattering<br />
Subsurface scattering (or SSS) is a<br />
mechanism of light transport in which<br />
light penetrates the surface of a<br />
translucent object, is scattered by<br />
interacting with the material, and exits<br />
the surface at a different point. The<br />
light will generally penetrate the<br />
surface and be reflected a number of<br />
times at irregular angles inside the<br />
material, before passing back out of the<br />
material at an angle other than the<br />
angle it would have if it had been<br />
reflected directly off the surface.<br />
Subsurface scattering is important in<br />
<strong>3D</strong> computer <strong>graphics</strong>, being necessary<br />
for the realistic rendering of materials<br />
such as marble, skin, and milk.<br />
Rendering Techniques<br />
Most materials used in real-time<br />
computer <strong>graphics</strong> today only account<br />
for the interaction of light at the<br />
surface of an object. In reality, many<br />
materials are slightly translucent: light<br />
Direct surface scattering (left), plus subsurface scattering (middle), create the final<br />
image on the right.<br />
Example of Subsurface scattering made in<br />
Blender software.<br />
enters the surface; is absorbed, scattered and re-emitted — potentially at a different point. Skin is a good case in<br />
point; only about 6% of reflectance is direct, 94% is from subsurface scattering. [1] An inherent property of<br />
semitransparent materials is absorption. The further through the material light travels, the greater the proportion<br />
absorbed. To simulate this effect, a measure of the distance the light has traveled through the material must be<br />
obtained.<br />
Depth Map based SSS<br />
One method of estimating this distance is to use depth maps [2] , in a<br />
manner similar to shadow mapping. The scene is rendered from the<br />
light's point of view into a depth map, so that the distance to the nearest<br />
surface is stored. The depth map is then projected onto it using<br />
standard projective texture mapping and the scene re-rendered. In this<br />
pass, when shading a given point, the distance from the light at the<br />
point the ray entered the surface can be obtained by a simple texture<br />
lookup. By subtracting this value from the point the ray exited the<br />
object we can gather an estimate of the distance the light has traveled through the object.<br />
Depth estimation using depth maps<br />
The measure of distance obtained by this method can be used in several ways. One such way is to use it to index<br />
directly into an artist created 1D texture that falls off exponentially with distance. This approach, combined with