Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics...

8
EECS 487: Interactive Computer Graphics Lecture 27: Introduction to Global Illumination and Ray Tracing Ray Tracing Introduction and context ray casting Recursive ray tracing shadows reflection refraction Ray tracing implementation Distributed Ray Tracing anti-aliasing soft-shadows motion blur depth-of-field glossy surface translucency Global Illumination Computes the color at a point in terms of light directly emitted by light sources and of light indirectly reflected by and transmitted through other objects, allowing for computation of shadows, reflection, refraction, caustics, and color bleed Light paths are complex, not light triangle pixel Nature finds equilibrium efficiently Computers struggle L Akeley Pipelined Rasterization Perform projection of vertices Rasterize triangle: find which pixels should be lit Compute per-pixel color Test visibility, update frame buffer Durand

Transcript of Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics...

Page 1: Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics community in 1980: • recursive ray casting • first global illumination model:

EECS487:InteractiveComputerGraphicsLecture27:•  IntroductiontoGlobalIlluminationandRayTracing

RayTracing

Introductionandcontext•  raycasting

Recursiveraytracing•  shadows•  reflection•  refraction

Raytracingimplementation

DistributedRayTracing•  anti-aliasing•  soft-shadows• motionblur• depth-of-field• glossysurface•  translucency

GlobalIlluminationComputesthecoloratapointintermsoflightdirectlyemittedbylightsourcesandoflightindirectlyreflectedbyandtransmittedthroughotherobjects,allowingforcomputationofshadows,reflection,refraction,caustics,andcolorbleedLightpathsarecomplex,notlight�triangle�pixelNaturefindsequilibriumefficientlyComputersstruggleL

Akeley

PipelinedRasterization

PerformprojectionofverticesRasterizetriangle:findwhichpixelsshouldbelitComputeper-pixelcolorTestvisibility,updateframebuffer

Durand

Page 2: Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics community in 1980: • recursive ray casting • first global illumination model:

RayTracing

Hanrahan,Yu,Curless,Akeley

Canweproducemorerealisticresultsifwerenderascenebysimulatingphysicallighttransport?TheGreeksquestionedthenatureoflight:dolightraysproceedfromtheeyetothelightorfromthelighttotheeye?Moderntheoriesoflighttreatitasbothawaveandaparticle

image(pixels)

lights(photons)

objects(triangles)

viewer

GeometricOpticsWewilltakeacombinedandsomewhatsimplerviewoflight–theviewofgeometricoptics

Lightsourcessendoffphotonsinalldirections•  modeltheseasparticlesthatbounceoffobjectsinthescene•  eachphotonhasawavelengthandenergy(colorandintensity)•  whenphotonsbounce,someenergyisabsorbed,somereflected,sometransmitted

•  photonsbounceuntil:•  allofitsenergyisabsorbed(aftertoomanybounces)•  itdepartstheknownuniverse(notjusttheviewvolume!)•  itstrikestheimageplaneanditscontributionisaddedtoappropriatepixel

Wecallthepathofthesephotons“lightrays”

Ifwecanmodellightrayswecangenerateimages

Curless,Hodgins

GeometricOpticsLightraysfollowtheserules:•  travelinstraightlinesinfreespace

•  donotinterferewitheachotheriftheycross(lightisinvisible!)

•  travelfromthelightsourcestotheeye,butthephysicsisinvariantunderpathreversal(reciprocity)

•  obeythelawsofreflectionandrefraction

Curless,Hanrahan

WhyTraceRays?Moreelegantthanpipelinedrasterization,especiallyforsophisticatedphysics:• modelinglightreflectance,e.g.,fromskin

• modelinglighttransport,e.g.,inter-reflection,caustics

•  rendering,e.g.,softshadows

Easiestphotorealisticglobalilluminationrenderertoimplement

Jensen,Hart08

Page 3: Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics community in 1980: • recursive ray casting • first global illumination model:

Raysemanatefromlightsourcesandbouncearound

Raysthatpassthroughtheimageplaneandentertheeyecontributetothefinalimage

Veryinefficientsinceitcomputesmanyraysthatareneverseen,mostrayswillneverevengetclosetotheeye!

Light-RayTracing

imageplane Merrell08

RayCastingForeachpixelshootaray(a3Dline)fromtheeyeintotheviewvolumethroughapointonthescreen• findthenearestpolygonthatintersectswiththeray•  shadethatintersectionaccordingtolight,e.g.,byusingthePhongilluminationmodel,orotherphysically-basedBRDFs,tocomputepixelcolor

Computesonlyvisiblerays(sincewestartattheeye):moreefficientthanlighttracing

IntroducedbyAppelin1968forlocalillumination(onpenplotter)

Merrell,Curless

Image plane

l

n

RayCastingIlluminationModelSofarit’sstilllight→triangle→pixel

Withraycasting,weadditionallyshootarayfromeachpointtowardeachlightinthesceneandask:•  isthelightvisiblefromtheintersectionpoint?

•  doestherayintersectanyobjectsonthewaytothelight?

•  iflightisnotvisible,itdoesn’tlitthepoint(pointinshadow)

RayCastingImage

Castrays

Findfirst

intersection

Shading

PipelinedRasterizationCommand

Geometry

Rasterization

Texture

Display

RayCastingvs.PipelinedRasterization

Zwicker06

SceneGraph

OutputImage

ImageOrder

ObjectOrder

Page 4: Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics community in 1980: • recursive ray casting • first global illumination model:

RayTracingWhittedintroducedraytracingtothegraphicscommunityin1980:•  recursiveraycasting• firstglobalilluminationmodel:•  anobject’scolorisinfluencedbylightsandotherobjectsinthescene�shadows•  simulatesspecularreflectionandrefractivetransmission

imageplaneMerrell08

Whitted80

RayTracingvs.PipelinedRasterization

RayTracing+ nocomputationforhiddenparts

- usuallyimplementedinsoftware

-  slow,batchrendering- nodominantstandardforscenedescription(RenderManformat,POVray,PBRT,…)

+ photo-realisticimages:morecomplexshadingandlightingeffectspossible

PipelinedRasterization+ implementedinGPU+ standardizedAPIs+ interactiverendering,games-  limitedphoto-realism:hardertogetglobalillumination(butgettingcloser)

Zwicker06

RecursiveRayTracingBasicidea:•  Eachpixelgetslightfromjustonedirection�thelinethroughthescreenandtheeye

• Anyphotoncontributingtothatpixel’scolorhastocomefromthisdirection

•  Soheadinthatdirectionandseewhatissendinglight•  ifwefindnothing—done

•  ifwehitalightsource—done

•  ifwehitasurface—seewherethatsurfaceislitfrom,recurse

imageplaneHodgins,Merrell

Ray:aHalfLine

Anchorpoint:e = (xe, ye, ze, 1)

Ray:r = (e, d)Translatingrays:pointstranslate,directionsdon’tTr = (Te, Td) = (Te, d)

p = r(t) = e + t d,t > 0

Direction: d = s − e = (xd, yd, zd, 0)||d|| = 1preferred,butisnotalwaysso

s:screenintersection

Hart08

Page 5: Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics community in 1980: • recursive ray casting • first global illumination model:

RecursiveRayTracingAlgorithm1.  Foreachpixel(s),traceaprimaryrayfromtheeye(e),inthe

directiond = (s – e)tothefirstvisiblesurface

2.  Foreachintersection,tracesecondaryrays,tocollectlight:•  shadowraysindirectionslitolightsourcei•  reflectivesurface:reflectedrayindirectionr,recurse•  transparentsurface:refracted/transmitted/transparencyrayindirectiont,recurse

r n

−dl1

t

l2

shadow rays

ShadowRayAteveryray-objectintersection,weshootashadowraytowardseachlightsource

Iftherayhitsthelightsource(l1),thelightisusedinlightingcalculation,withtheshadowrayasthelightdirection

Iftherayhitsanobject(l2),theintersectionisinshadowandthelightisnotusedinlightingcalculation

Shadowraysdonotspawnadditionalrays(notransparencythroughtransparentobject!)

r n

−dl1

t

l2

shadow rays

RecursiveRayTracingd = primaryrayl = shadowraysr = reflectedrayst = transmittedrays

opaque,reflectiveobject transparent,

reflectiveobject

r1

r2

r3

t1

t2

l3

l1

l2

d

Merrell08

Howdeepdowerecurse?

RayTreeEachintersectionmayspawnsecondaryrays:•  reflectedandtransmittedraysformaraytree•  nodesaretheintersectionpoints

•  edgesarethereflectedandrefractedrays

•  shadowraysaresentfromeveryintersectionpoint(todetermineifpointisinshadow),buttheydonotspawnadditionalrays

Raysarerecursivelyspawneduntil:•  raydoesnotintersectanyobject•  treereachesamaximumdepth•  lightreachessomeminimumvalue(reflected/refractedcontributiontocolorbecomestoosmall)

Merrell08

Page 6: Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics community in 1980: • recursive ray casting • first global illumination model:

RayTreeExample

Raytreeisevaluatedbottomup:• depth-firsttraversal(byrecursion)•  thenodecoloriscomputedbasedonitschildren’scolors(BG:background,ambientcolor)• don’tforgettonegatethenormalwheninsideanobject!

eyed

O1

r2

BG

r3 t2

O1 BG

r1 t1

O1 O2 opaque,reflectiveobject transparent,

reflectiveobject

r3

t2

l3

r1

t1 l1

r2

l2

d

O1

O2

Merrell08

raytrace() raytrace(ray r)

find first intersection color = ambient term for every light

cast shadow ray if (not in shadow)

color += local diffuse+specular terms // Phong illumination model

if reflective surface color += reflectedContrib // constant * raytrace(reflected ray)*local specular term

if transparent object color += refractedContrib // constant * raytrace(refracted ray)*local diffuse term

Durand

edray r

ShadowsIncreaserealismbyaddingspatialrelations•  providecontactpoints,stop“floating”objects•  providedepthcue•  emphasizeilluminationdirection

Provide“atmosphere”

Palmer

Someofitisabsorbed(heat,vibration)Someofitisreflected(bouncesback)Someofitisrefracted(goesinsidethematerial)Theproportionofabsorbed,reflected,andrefractedlightdependonthemedium,thefrequencyoflight,andontheanglebetweenthedirectionofincidentlightandthesurfacenormalLightmayalsobescatteredbythemediumittraverses

Rossignac

LightHittingaSurface

Page 7: Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics community in 1980: • recursive ray casting • first global illumination model:

Reflection:arrivingenergyfromonedirectiongoesoutinonlyonereflectiondirection

PerfectSpecularReflection

nd r

θi θr

θi = θr

r = d – 2(d � n)n

RefractionLighttransmitsthroughtransparentobjectsLightenteringanewmediumisrefracted•  itstrajectorybendsinwardswhenenteringadensermedium•  thinkofthewheelononesideofacartslowingdownfirst

•  similarly,soundbendstowardscoolerair

Whydoeshotroadappearwet?•  lightisbent:lighttravelsfasterthroughthehotairneartheground

Rossignac

RefractionAssumethatkicisthespeedoflightinmediumMiandktcisthespeedoflightinmediumMt:•  indexofrefractionofamaterialMis:η = 1/k•  lightbendswhenmovingfromonemediumtoanotheraccordingtoSnell’slaw(1621):ηi sin θi = ηt sin θt

glass

ηiair

ηt

nd

t

θi

θt

Let µ =ηiηt, v = −d

t = µv − µ(n • v) + 1− µ2 (1− (n • v)2 )( )n

Unrefracted (geometrical)line of sight Refracted (optical)

line of sight

Transparentobject

Line of sight

AB

qi

qt

Merrell,Rossignac,FvD

θi

θt

FresnelCoefficientCaptureshowmuchlightreflectsfromasmoothinterfacebetweentwomaterials(F,fractionoflightreflected):

c = F*creflection + (1−F) crefraction

• reflectancedependsonangleofincidence•  notsomuchformetal(conductormaterial)•  butdramaticallyforwater/glass(dielectric/insulatormaterial):

4%atnormal,100%atgrazingangle

Schlick’sapproximationofFresnelcoefficient:F(θ) = F (0) + (1−F (0))(1−(n•v))5

whereistheFresnelcoefficientatnormal(0º)

F(0) = ηt −ηi

ηt +ηi

⎛⎝⎜

⎞⎠⎟

2

Zwicker06,Gillies09

Gold:F(0) = 0.82Silver:F(0) = 0.95Glass:F(0) = 0.04Diamond:F(0) = 0.15

Page 8: Computer Graphics · 2015. 11. 9. · Ray Tracing Whitted introduced ray tracing to the graphics community in 1980: • recursive ray casting • first global illumination model:

t = µv − µ(n • v)+ 1− µ2 (1− (n • v)2 )( )n

TotalInternalReflectionWhengoingfromadensetoalessdensemedium,theangleofrefractionbecomeslargerthantheangleofincidence(θt > θi)

Iftheangleofincidenceistoolarge(≥ θc),lightcangettrappedinsidethedensematerial• diamond→air:θc = 24.6º• water→air:θc = 48.6º• principlebehindopticalfiber

Canbenegativeforgrazingangleswhenη >1,e.g.,whengoingfromglasstoair,resultingintotalinternalreflection(norefraction)

Hart