3D graphics eBook - Course Materials Repository
3D graphics eBook - Course Materials Repository 3D graphics eBook - Course Materials Repository
Cube mapping 35 Skyboxes Perhaps the most trivial application of cube mapping is to create pre-rendered panoramic sky images which are then rendered by the graphical engine as faces of a cube at practically infinite distance with the view point located in the center of the cube. The perspective projection of the cube faces done by the graphics engine undoes the effects of projecting the environment to create the cube map, so that the observer experiences an illusion of being surrounded by the scene which was used to generate the skybox. This technique has found a widespread use in video games since it allows designers to add complex (albeit not explorable) environments to a game at almost no performance cost. Skylight Illumination Cube maps can be useful for modelling outdoor illumination accurately. Simply modelling sunlight as a single infinite light oversimplifies outdoor illumination and results in unrealistic lighting. Although plenty of light does come from the sun, the scattering of rays in the atmosphere causes the whole sky to act as a light source (often referred to as skylight illumination).However, by using a cube map the diffuse contribution from skylight illumination can be captured. Unlike environment maps where the reflection vector is used, this method accesses the cube map based on the surface normal vector to provide a fast approximation of the diffuse illumination from the skylight. The one downside to this method is that computing cube maps to properly represent a skylight is very complex; one recent process is computing the spherical harmonic basis that best represents the low frequency diffuse illumination from the cube map. however, a considerable amount of research has been done to effectively model skylight illumination. Dynamic Reflection Basic environment mapping uses a static cube map - although the object can be moved and distorted, the reflected environment stays consistent. However, a cube map texture can be consistently updated to represent a dynamically changing environment (for example, trees swaying in the wind). A simple yet costly way to generate dynamic reflections, involves building the cube maps at runtime for every frame. Although this is far less efficient than static mapping because of additional rendering steps, it can still be performed at interactive rates. Unfortunately, this technique does not scale well when multiple reflective objects are present. A unique dynamic environment map is usually required for each reflective object. Also, further complications are added if reflective objects can reflect each other - dynamic cube maps can be recursively generated approximating the effects normally generated using raytracing. Global Illumination An algorithm for global illumination computation at interactive rates using a cube-map data structure, was presented at ICCVG 2002.[5] Projection textures Another application which found widespread use in video games, projective texture mapping relies on cube maps to project images of an environment onto the surrounding scene; for example, a point light source is tied to a cube map which is a panoramic image shot from inside a lantern cage or a window frame through which the light is filtering. This enables a game designer to achieve realistic lighting without having to complicate the scene geometry or resort to expensive real-time shadow volume computations.
Cube mapping 36 Related A large set of free cube maps for experimentation: http:/ / www. humus. name/ index. php?page=Textures Mark VandeWettering took M. C. Escher's famous self portrait Hand with Reflecting Sphere and reversed the mapping to obtain this [6] cube map. References [1] Fernando, R. & Kilgard M. J. (2003). The CG Tutorial: The Definitive Guide to Programmable Real-Time Graphics. (1st ed.). Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA. Chapter 7: Environment Mapping Techniques [2] Greene, N. 1986. Environment mapping and other applications of world projections. IEEE Comput. Graph. Appl. 6, 11 (Nov. 1986), 21-29. (http:/ / dx. doi. org/ 10. 1109/ MCG. 1986. 276658) [3] Nvidia, Jan 2000. Technical Brief: Perfect Reflections and Specular Lighting Effects With Cube Environment Mapping (http:/ / developer. nvidia. com/ object/ Cube_Mapping_Paper. html) [4] Nvidia, May 2004. Cube Map OpenGL Tutorial (http:/ / developer. nvidia. com/ object/ cube_map_ogl_tutorial. html) [5] http:/ / citeseerx. ist. psu. edu/ viewdoc/ summary?doi=10. 1. 1. 95. 946 [6] http:/ / brainwagon. org/ 2002/ 12/ 05/ fun-with-environment-maps/ Diffuse reflection Diffuse reflection is the reflection of light from a surface such that an incident ray is reflected at many angles rather than at just one angle as in the case of specular reflection. An illuminated ideal diffuse reflecting surface will have equal luminance from all directions in the hemisphere surrounding the surface (Lambertian reflectance). A surface built from a non-absorbing powder such as plaster, or from fibers such as paper, or from a polycrystalline material such as white marble, reflects light diffusely with great efficiency. Many common materials exhibit a mixture of specular and diffuse reflection. The visibility of objects is primarily caused by diffuse reflection of light: it is diffusely-scattered light that forms the image of the object in the observer's eye. Diffuse and specular reflection from a glossy surface [1]
- Page 1 and 2: 3D Rendering PDF generated using th
- Page 3 and 4: Image-based lighting 64 Image plane
- Page 5 and 6: References Article Sources and Cont
- Page 7 and 8: 3D rendering 2 Non real-time Animat
- Page 9 and 10: 3D rendering 4 The shaded three-dim
- Page 11 and 12: Ambient occlusion 6 ambient occlusi
- Page 13 and 14: Ambient occlusion 8 • ShadeVis (h
- Page 15 and 16: Anisotropic filtering 10 will only
- Page 17 and 18: Beam tracing 12 Beam tracing Beam t
- Page 19 and 20: Bilinear filtering 14 Are all true.
- Page 21 and 22: Binary space partitioning 16 togeth
- Page 23 and 24: Binary space partitioning 18 Other
- Page 25 and 26: Binary space partitioning 20 [1] Bi
- Page 27 and 28: Bounding interval hierarchy 22 Prop
- Page 29 and 30: Bounding volume 24 bounding boxes b
- Page 31 and 32: Bump mapping 26 Bump mapping Bump m
- Page 33 and 34: CatmullClark subdivision surface 28
- Page 35 and 36: CatmullClark subdivision surface 30
- Page 37 and 38: Conversion between quaternions and
- Page 39: Cube mapping 34 Advantages Cube map
- Page 43 and 44: Diffuse reflection 38 2), or, of co
- Page 45 and 46: Displacement mapping 40 Meaning of
- Page 47 and 48: DooSabin subdivision surface 42 Ext
- Page 49 and 50: False radiosity 44 False radiosity
- Page 51 and 52: Geometry pipelines 46 Geometry pipe
- Page 53 and 54: Global illumination 48 Rendering wi
- Page 55 and 56: Gouraud shading 50 Gouraud shading
- Page 57 and 58: Graphics pipeline 52 Graphics pipel
- Page 59 and 60: Graphics pipeline 54 References 1.
- Page 61 and 62: Hidden surface determination 56 imp
- Page 63 and 64: High dynamic range rendering 58 Hig
- Page 65 and 66: High dynamic range rendering 60 Ton
- Page 67 and 68: High dynamic range rendering 62 Fro
- Page 69 and 70: High dynamic range rendering 64 •
- Page 71 and 72: Irregular Z-buffer 66 Applications
- Page 73 and 74: Lambert's cosine law 68 than would
- Page 75 and 76: Lambertian reflectance 70 Lambertia
- Page 77 and 78: Level of detail 72 Well known appro
- Page 79 and 80: Level of detail 74 Hierarchical LOD
- Page 81 and 82: Newell's algorithm 76 Newell's algo
- Page 83 and 84: Non-uniform rational B-spline 78 Us
- Page 85 and 86: Non-uniform rational B-spline 80 of
- Page 87 and 88: Non-uniform rational B-spline 82 ar
- Page 89 and 90: Non-uniform rational B-spline 84 Ex
Cube mapping 35<br />
Skyboxes<br />
Perhaps the most trivial application of cube mapping is to create pre-rendered panoramic sky images which are then<br />
rendered by the graphical engine as faces of a cube at practically infinite distance with the view point located in the<br />
center of the cube. The perspective projection of the cube faces done by the <strong>graphics</strong> engine undoes the effects of<br />
projecting the environment to create the cube map, so that the observer experiences an illusion of being surrounded<br />
by the scene which was used to generate the skybox. This technique has found a widespread use in video games<br />
since it allows designers to add complex (albeit not explorable) environments to a game at almost no performance<br />
cost.<br />
Skylight Illumination<br />
Cube maps can be useful for modelling outdoor illumination accurately. Simply modelling sunlight as a single<br />
infinite light oversimplifies outdoor illumination and results in unrealistic lighting. Although plenty of light does<br />
come from the sun, the scattering of rays in the atmosphere causes the whole sky to act as a light source (often<br />
referred to as skylight illumination).However, by using a cube map the diffuse contribution from skylight<br />
illumination can be captured. Unlike environment maps where the reflection vector is used, this method accesses the<br />
cube map based on the surface normal vector to provide a fast approximation of the diffuse illumination from the<br />
skylight. The one downside to this method is that computing cube maps to properly represent a skylight is very<br />
complex; one recent process is computing the spherical harmonic basis that best represents the low frequency diffuse<br />
illumination from the cube map. however, a considerable amount of research has been done to effectively model<br />
skylight illumination.<br />
Dynamic Reflection<br />
Basic environment mapping uses a static cube map - although the object can be moved and distorted, the reflected<br />
environment stays consistent. However, a cube map texture can be consistently updated to represent a dynamically<br />
changing environment (for example, trees swaying in the wind). A simple yet costly way to generate dynamic<br />
reflections, involves building the cube maps at runtime for every frame. Although this is far less efficient than static<br />
mapping because of additional rendering steps, it can still be performed at interactive rates.<br />
Unfortunately, this technique does not scale well when multiple reflective objects are present. A unique dynamic<br />
environment map is usually required for each reflective object. Also, further complications are added if reflective<br />
objects can reflect each other - dynamic cube maps can be recursively generated approximating the effects normally<br />
generated using raytracing.<br />
Global Illumination<br />
An algorithm for global illumination computation at interactive rates using a cube-map data structure, was presented<br />
at ICCVG 2002.[5]<br />
Projection textures<br />
Another application which found widespread use in video games, projective texture mapping relies on cube maps to<br />
project images of an environment onto the surrounding scene; for example, a point light source is tied to a cube map<br />
which is a panoramic image shot from inside a lantern cage or a window frame through which the light is filtering.<br />
This enables a game designer to achieve realistic lighting without having to complicate the scene geometry or resort<br />
to expensive real-time shadow volume computations.