24
18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380: Introduction to Computer Graphics Texture Mapping Chapter 15 Min H. Kim KAIST School of Computing Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 SUMMARY Materials 2

CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

1

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

CS380:IntroductiontoComputerGraphicsTextureMapping

Chapter15

MinH.KimKAISTSchoolofComputing

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

SUMMARYMaterials

2

Page 2: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

2

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

LightblobfromPVCplastic•  Recall:Givenanyvector(notnecessarilyofunitnorm)andaunitnormalvector,wecancomputethebouncevector(mirrorreflection)ofas

3

w

n

w

B(w) = 2( w ⋅ n)n − w

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Diffusereflectancemodel•  “Diffuse”materials,likeroughwood,appearequallybrightwhenobservedfromalldirection–  Thus,whencalculatingthecolorofapointonadiffusesurface,wedonotneedtousethevectoratall.

4©SzymonRusinkiewicz(Princeton)

v

v

fr = const.=ρπ

Page 3: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

3

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Blinn-Phongreflectancemodel•  SimpleBRDFdescribingspecularreflection,modeledinOpenGL

©SzymonRusinkiewicz(Princeton)

n is normalh is halfway between I and v

fr =ρπ+ ks (n ⋅h)

α

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

TEXTUREMAPPINGChapter15

6

Page 4: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

4

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Texturemapping•  Wehavealreadyseenandusedtexturemapping

•  Inbasictexturing,wesimply‘glue’partofanimageontoatrianglebyspecifyingtexturecoordinatesatthethreevertices.

7

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Texturemapping•  BunchofOpenGLcodestoloadatextureandsetvariousparameters(lin/const,mipmap,wrappingrules).

•  Auniformvariableisusedtopointtothedesiredtextureunit.

8

Page 5: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

5

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Texturemapping•  Varyingvariablesareusedtostoretexturecoordinates.

•  Inthissimplestincarnation,wejustfetchr,g,bvaluesfromthetextureandsendthemdirectlytotheframebuffer.

9

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Texturemapping•  Alternatively,thetexturedatacouldbeinterpretedas,say,thediffusematerialcolorofthesurfacepoint,whichwouldthenbefollowedbythediffusematerialcomputationdescribedearlier.

10

Page 6: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

6

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Texturemapping(main.cpp)•  initGLState()

11

…glActiveTexture(GL_TEXTURE0);glGenTextures(1,&h_texture);glBindTexture(GL_TEXTURE_2D,h_texture);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);inttwidth,theight;packed_pixel_t*pixdata=ppmread("reachup.ppm",&twidth,&theight);assert(pixdata);glTexImage2D(GL_TEXTURE_2D,0,GL_SRGB,twidth,theight,0,GL_RGB,GL_UNSIGNED_BYTE,pixdata);free(pixdata);...

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Texturemapping•  initShaders()•  display()

•  Texturelocation(0,0)àlowerleft,(1,1)àupperright

12

h_texUnit0=safe_glGetUniformLocation(h_program,"texUnit0");h_aTexCoord=safe_glGetAttribLocation(h_program,"aTexCoord");

safe_glUniform1i(h_texUnit0,0);

GlfloatsqTex[12]={0,0,1,1,1,0,0,0,0,1,1,1};

Page 7: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

7

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Texturemapping

13

#version130uniformfloatuVertexScale;uniformmat4uProjMatrix;uniformmat4uModelViewMatrix;invec2aVertex;invec2aTexCoord;invec3aColor;outvec3vColor;outvec2vTexCoord;voidmain(){gl_Position=vec4(uProjMatrix*uModelViewMatrix*aVertex);vColor=aColor;vTexCoord=aTexCoord;}

•  Vertexshader

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Texturemapping

14

#version130uniformsampler2DuTexUnit0;//texturedatainvec2vTexCoord;//texturecoordinatesoutvec4fragColor;voidmain(){vec4texColor0=texture2D(uTexUnit0,vTexCoord);fragColor=texColor0;}

•  Fragmentshader

Page 8: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

8

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Normalmapping•  Thedatafromatexturecanalsobeinterpretedinmoreinterestingways.

•  Innormalmapping,ther,g,bvaluesfromatextureareinterpretedasthethreecoordinatesofthenormalatthepoint.

•  Thisnormaldatacanthenbeusedaspartofsomematerialsimulation,

15

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Normalmapping

16

Originalmesh4Mtriangles

Simplifiedmesh500triangles

Simplifiedmeshandnormalmapping500triangles

Page 9: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

9

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Normalmapping•  Normaldatahasthreecoordinatevaluesofunitvectors,eachintherange[-1…1],whileRGBtexturesstorethreevalues,eachintherange[0…1](0…255)

•  Soneedsomeconversions:– R=normal_x/2.0+0.5;– normal_x=2*R-1;

•  Sometimeneedtodealwithcoordinatesystemconversions.

17

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Environmentcubemaps•  Texturescanalsobeusedtomodeltheenvironmentinthedistancearoundtheobjectbeingrendered.

•  Inthiscase,wetypicallyusesixsquaretexturesrepresentingthefacesofalargecubesurroundingthescene.

18

+y

-y

-z +z+x-x

Page 10: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

10

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

CapturingEnvironmentMaps•  Photographingalightprobeproducesanenvironmentmaprepresentingincidentradiancefromalldirections.

19 B(w) = 2( w ⋅ n)n − w

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

CapturingEnvironmentMaps

20

•  Howtoremovethecamerafromtheenvironmentmap?

Page 11: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

11

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Spherevs.Cube

21

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

SphericalEnvironmentMap&CubeMap

•  Galileo’sTomb

22

http://www.pauldebevec.com/Probes/

Lightprovecaptured

Equirectangular(EQ)image

Six-facecubemap

Page 12: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

12

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Environmentcubemaps•  Eachtexturepixelrepresentsthecolorasseenalongonedirectionintheenvironment.

•  Thisiscalledacubemap.GLSLprovidesacube-texturedatatype,samplerCubespecificallyforthispurpose.

23

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Environmentcubemaps•  Duringtheshadingofapoint,wecantreatthematerialatthatpointasaperfectmirrorandfetchtheenvironmentdatafromtheappropriateincomingdirection.

24

Page 13: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

13

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Environmentmapshader•  Wecalculateinthepreviouslecture.

•  Thisbouncedvectorwillpointpointstowardstheenvironmentdirection,whichwouldbeobservedinamirroredsurface.

•  Bylookingupthecubemap,usingthisdirection,wegivethesurfacetheappearanceofamirror.

25

B(v)

B(w) = 2( w ⋅ n)n − w

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Environmentmapshader•  Fragmentshader

26

#version130uniformsampler2DuTexUnit0;invec3nNormal;invec4vPosition;outvec4fragColor;vec3reflect(vec3w,vec3n){returnn*(dot(w,n)*2.0)-w;//bouncevector}voidmain(){vec3normal=normalize(vNormal);vec3reflected=reflect(normalize(vec3(-vPosition)),normal);vec4texColor0=textureCube(uTexUnit0,reflected);fragColor=vec4(texColor0.r,texColor0.g,texColor0.b,1.0);;}

Page 14: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

14

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Environmentmapshader•  -vPositionrepresentstheviewvector•  textureCubeisaspecialGLSLfunctionthattakesadirectionvectorandreturnsthecolorstoredatthisdirectioninthecubetexturemap.

•  Hereweassumeeye-coordinates,butframechangesmaybeneeded.

27

v

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Environmentmapshader•  Thiscanbeusedforrefraction.

28

Page 15: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

15

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Projectortexturemapping(cameramapping)

•  Therearetimeswhenwewishtoglueourtextureontoourtrianglesusingaprojectormodel,insteadoftheaffinegluingmodel.

•  Forexample,wemaywishtosimulateaslideprojectorilluminatingsometrianglesinspace.

29

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Projectortexturemapping

30

Page 16: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

16

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

RECAP:projection

31

xnwn

ynwn

−wn

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

=

xcyc−wc

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

=

1 0 0 00 1 0 0− − − −0 0 −1 0

⎢⎢⎢⎢

⎥⎥⎥⎥

xeyeze1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

[0,0,0,1]t

p

•  Canonicalsquarespace:

xn = − xeze, yn = − ye

ze

−ze

ye

wn

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Projectortexturemapping•  Theslideprojector(≈camera)ismodeledusing4by4,modelviewandprojectionmatrices,

32

Ms andPs . xtwt

ytwt

−wt

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

= PsMs

xoyozo1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

Page 17: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

17

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Projectortexturemapping•  Withthetexturecoordinatesdefinedas

•  Tocolorapointonatrianglewithobjectcoordinates,wefetchthetexturedatastoredatlocation

33

xt =

xtwt

wt

andyt =ytwt

wt

[xo , yo ,zo ,1]t

[xt , yt ]t

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Projectortexturemapping•  Thethreequantitiesareallaffinefunctionsof.Thusthesequantitieswillbeproperlyinterpolatedoveratrianglewhenimplementedasvaryingvariables.

•  Inthefragmentshader,weneedtodividebytoobtaintheactualtexturecoordinates.

•  Whendoingprojectortexturemapping,wedonotneedtopassanytexturecoordinatesoftrianglesasattributevariablestoourvertexshader.

34

xtwt , ytwt and wt

(xo, yo, zo )

wt

Page 18: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

18

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Projectortexturemapping•  Wesimplyusetheobjectcoordinatesalreadyavailabletous.

•  Wedoneedtopassintheobjectcoordinatesviathenecessaryprojectormatrices(affine/projectionmatrices),usinguniformvariables.

35

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Projectortexturemapping•  Projectorvertexshader

36

#version130uniformmat4uModelViewMatrix;uniformmat4uProjMatrix;uniformmat4uSProjMatrix;uniformmat4uSModelViewMatrix;invec4aVertex;outvec4aTexCoord;voidmain(){vTexCoord=uSProjMatrix*uSModelViewMatrix*aVertex;gl_Position=uProjMatrix*uModelViewMatrix*aVertex;}

Page 19: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

19

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Projectortexturemapping•  Projectorfragmentshader

37

#version130uniformsampler2DvTexUnit0;invec4aTexCoord;outvec4fragColor;voidmain(){vec2tex2;tex2.x=vTexCoord.x/vTexCoord.w;tex2.y=vTexCoord.y/vTexCoord.w;vec4texColor0=texture2D(vTexUnit0,tex2);fragCoor=texColor0;}

xtwt

ytwt

−wt

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

=PsMs

xoyozo1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Projectortexturemapping•  Conveniently,OpenGLevengivesusaspecialcalltexture2DProj(vTexUnit0,pTexCoord),thatactuallydoesthedivideforus.

•  Inconveniently,whendesigningourslideprojectormatrixuSProjMatrix,wehavetodealwiththefactthatthecanonicaltextureimagedomaininOpenGListheunitsquare,whoselowerleftandupperrightcornershavecoordinatesusedforthedisplaywindow.

38

[0,0]t and[1,1]t

Page 20: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

20

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Multipassrendering•  Moreinterestingrenderingeffectscanbeobtainedusingmultiplerenderingpassesoverthegeometryinthescene.

•  Inthisapproach,theresultsofallbutthefinalpassarestoredofflineandnotdrawntothescreen.

•  Todothis,thedataisrenderedintosomethingcalled,aFrameBufferObject,orFBO.

•  Afterrendering,theFBOdataisthenloadedasatexture,andthuscanbeusedasinputdatainthenextrenderingpass.

39

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Multipassrendering

40

1stpassrendering(cubemap) 2ndpassrendering(mirrorball)

Page 21: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

21

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Multipassrendering

41

1stpassrendering(cubemap) 2ndpassrendering(mirrorball)

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Shadowmapping•  Theideaistofirstcreateandstoreaz-bufferedimagefromthepointofviewofthelight,andthencomparewhatweseeinourviewtowhatthelightsawititsview.

42

Page 22: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

22

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Shadowmapping•  Ifapointobservedbytheeyeisnotobservedbythelight,thentheremustbesomeoccludingobjectinbetween,andweshoulddrawthatpointasifitwereinshadow.

43

1stpassrendering

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Shadowmapping•  Inafirstpass,werenderintoanFBOthesceneasobservedfromsomecamerawhoseorigincoincideswiththepositionofthepointlightsource.Letusmodelthiscameratransformas:

•  forappropriatematrices,.

44

xtwt

ytwt

ztwt

wt

⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥

=PsMs

xoyozo1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

Ps and Ms

Page 23: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

23

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Shadowmapping•  Duringthisfirstpass,werenderthescenetoanFBOusingasthemodelviewmatrixandastheprojectionmatrix.

•  IntheFBO(oflightview),westore,notthecolorofthepoint,butratheritsvalue.

•  Duetoz-buffering,thedatastoredatapixelintheFBOrepresentsthevalueofthegeometryclosesttothelightalongtherelevantlineofsight.ThisFBOisthentransferredtoatexture.

45

Ms

Ps

zt

zt

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Shadowmapping•  Duringthesecondrenderingpass,werenderourdesiredimagefromtheeye’spointofview,

•  butforeachpixel(fragmentshader),weneedtocomparethedistancesof(vPosition-to-light)andthedepthmapfromlight

•  tocheckifthepointweareobservingwasalsoobservedbythelight,orifitwasblockedbysomethingcloserinthelight’sview.

46

Page 24: CS380: Introduction to Computer Graphics Texture Mapping … · 2018. 5. 3. · 18/05/03 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380:

18/05/03

24

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

•  Todothis,weusethesamecomputationthatwasdonewithprojectortexturemapping

•  Doingso,inthefragmentshader,wecanobtainthevaryingvariablesassociatedwiththepoint.

•  Wethencomparethisvalue(projector)withthevalue(light)storedatinthetextureoflight.

Shadowmapping

47

xt , yt andzt[xo , yo ,zo ,1]

t

zt

[xt , yt ]t

zt

2ndpassrendering

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Shadowmapping•  Ifthesevaluesagreethenwearelookingatapointthatwasalsoseenbythelight;suchapointisnotinshadowandshouldbeshadedaccordinglyinfragmentshader.

•  Conversely,ifthesevaluesdisagree,thenthepointwearelookingatwasoccludedinthelight’simage,isinshadowandshouldbeshadedassuch.

48