Environment Mapping

Environment Mapping

Environment Mapping Han-WiShWei Shen EiEnvironment tMi Mapping Also called reflection mapping First proposed by Blinn and Newell 1976 A cheap way to create reflections on curved surfaces – can be implemented using texture mappitdbhihding supported by graphics hardware BiIdBasic Idea Assuming the environment is far away and the object does not reflect itself – the reflection at a point can be solely decided by the reflection vector environment map n eye r e reflective surface BiStBasic Steps Create a 2D environment map For each pixel on a reflective object, compute the normal Compute the reflection vector based on the eye position and surface normal Use the reflection vector to compute an index into the environment texture Use the corresponding texel to color the pixel Fin ding the re flecti on vect or r = 2 (n.e) n - e n Assuming e and n are all normalized e r r r e e.n Blinn and N ewell’ s Blinn and Newell’ s Method (the first EM algorithm) Convert the reflection vector into spherical coordinates ( which in turn will be normalized to [[]0,1] and used as (u,v) texture coordinates ( = , = 0) z (rx,ry, rz) 3/4 x ( = /2, = 0) y /4 = arccos((rz) : latitude [0, ] = atan2(ry, rx) 0 3 longitude [0, 2] Issues Seams at = 0 when the triangle vertices span over Dis tor tion a t th e po les, an d w hen the tr iang le vertices span over NtNot rea llblly been use d muc hih in prac tice CbiECubic Envi ronment tM Mappi ng Introduced by Nate Green 1986 (also known as environment cube map) Place th e camera i n the cent er of th e environment and project it to 6 sides of a cube CbiECubic Envi ronment tM Mappi ng (2) Texture mapping process Given the reflection vector (x,y,z), first find the major component and get the corresponding plane. (-3.2, 5.1, - 84)8.4) -> -z plane Then use the remaining two components to access the texture from that plane. Nlitht(01)Normalize them to (0,1) (-3.2, 5.1) -> ((-3.2/8.4)/2+0.5, (5.1/8.4)/2+0.5) Then perform the texture lookup No distortion or seam problems, although when two vertices of the same polygon pointing to different planes need to be taken care of. EiEnvironment tCbM Cube Map Rendering Examples ShSphere M appi ng The image texture is taken from a perfectly reflective sphere, which is viewed from the eye orthographically. Synthetic scene can be generatdted us ing ray trac ing (u,v) (u,v,sqrt(1-u^2-v^2)) (0,0,0) ShSphere M appi ng (2) To access the sphere map texture The surface normal (n) and eye (e) vectors need to be first transformed to the eye space Then compu te the re flec tion vect or as usual (r = (rx,ry,rz) = e’-2(n’.e’)n’) Now, compppute the sphere normal in the local s pace n = (rx,ry,rz) + (0,0,1) reflection vector Directoin to the eye in local space Normalize it and use x and y to access the sphere texture map: u = rx / M + ½ ; v = ry /M + ½; where M = 2 sqq(rt(rx^2 + ry ^2 + ( rz+1 )^2 ).

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us