1 / 10

Projective Textures

Projective Textures. Michael I. Gold NVIDIA Corporation. Projective Textures. Overview Texture coordinates can be transformed by a matrix (e.g. a perspective projection) OpenGL generalizes texture coordinates to 4-component homogenous coordinates q coordinate is analogous to w

Télécharger la présentation

Projective Textures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Projective Textures Michael I. Gold NVIDIA Corporation

  2. Projective Textures Overview Texture coordinates can be transformed by a matrix (e.g. a perspective projection) OpenGL generalizes texture coordinates to 4-component homogenous coordinates q coordinate is analogous to w Texture image can be subjected to a projection independent from the viewing projection

  3. Projective Textures • Use to simulate effects: • Slide projector • Spotlight illumination • Shadows • Reproject photograph of an object onto object geometry

  4. Projective Textures • Texture Projection • Define texture with a white border and set wrap mode to GL_CLAMP, texture environment GL_MODULATE • Load texture matrix with desired projection • Enable GL_EYE_LINEAR TexGen • Vertex coordinates transformed by texture matrix become texture coordinates • Draw geometry with texture mapping enabled

  5. Projective Textures • Spotlight Effects

  6. Projective Textures • Spotlight Effects • OpenGL computes spotlight illumination at vertices and interpolates -> undersampling artifacts • Use texture image as spotlight projected from light position to modulate illumination

  7. Projective Textures • Spotlight Effects 1. Initialized depth buffer 2. Clear color buffer to scene ambient value 3. Draw scene with depth test enabled, color updates disabled 4. Bind and enable spotlight texture, set texenv to GL_REPLACE 5. Enable texgen functions, load texture matrix 6. Enable blending, blend func GL_ONE, GL_ONE

  8. Projective Textures • Spotlight Effects 7. Disable depth updates, set depth func to GL_EQUAL 8. Draw scene - color buffer now contains spotlight + ambient light 9. Disable spotlight texture, texgen, texture transformation 10. Set blend func to GL_DST_COLOR, GL_ZERO 11. Draw scene with normal illumination

  9. Projective Textures • Spotlight Effects • 3 passes: • Accumulate ambient illumination and establish depth • Accumulate spot illumination • Modulate scene with accumulated illumination • Additive texenv would permit collapsing passes 1 and 2 • Multitexture extensions allow single pass rendering

  10. Projective Textures • Spotlight Effects • Back projection can produce unwanted illumination • Watch out for inexactness in rasterization when texgen enabled

More Related