19
Background Caches Background Caches for Large Outdoor for Large Outdoor Scenes Scenes Bill Hess Bill Hess

Background Caches for Large Outdoor Scenes Bill Hess

  • View
    222

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Background Caches for Large Outdoor Scenes Bill Hess

Background Caches for Background Caches for Large Outdoor ScenesLarge Outdoor Scenes

Bill HessBill Hess

Page 2: Background Caches for Large Outdoor Scenes Bill Hess

Motivation:Motivation:

Page 3: Background Caches for Large Outdoor Scenes Bill Hess

Motivation:Motivation:

Page 4: Background Caches for Large Outdoor Scenes Bill Hess

View FrustumView Frustum

Volume enclosed by 6 planesVolume enclosed by 6 planes Objects outside the frustum are not drawnObjects outside the frustum are not drawn Back plane decides how deep the scene isBack plane decides how deep the scene is

Page 5: Background Caches for Large Outdoor Scenes Bill Hess

Problem: Depth BufferProblem: Depth Buffer

Geometry depth is stored at every pixelGeometry depth is stored at every pixelAllows objects to be drawn in any orderAllows objects to be drawn in any orderAllows objects to intersect each otherAllows objects to intersect each other

Depth buffer precision is fixed in hardwareDepth buffer precision is fixed in hardwareMultiple scene depths can map to one depth Multiple scene depths can map to one depth

buffer valuebuffer valueAs the back plane is pushed back, the As the back plane is pushed back, the

range of values that can map to the same range of values that can map to the same depth value increasesdepth value increases

Page 6: Background Caches for Large Outdoor Scenes Bill Hess

Problem: Depth BufferProblem: Depth Buffer

Page 7: Background Caches for Large Outdoor Scenes Bill Hess

Problem: ProjectionProblem: Projection View Frustum volume increases with the cube of View Frustum volume increases with the cube of

the scene depththe scene depth Potentially 8 times more geometry to draw just to Potentially 8 times more geometry to draw just to

double scene depthdouble scene depth

hBV 3

1

Page 8: Background Caches for Large Outdoor Scenes Bill Hess

SolutionSolution

Draw backgrounds less frequentlyDraw backgrounds less frequentlyDraw background as a flat imageDraw background as a flat imageCommon methodsCommon methods

Render/Draw backgrounds ahead of timeRender/Draw backgrounds ahead of timeRender backgrounds into a texture at run-timeRender backgrounds into a texture at run-time

Page 9: Background Caches for Large Outdoor Scenes Bill Hess

SkyboxSkybox Scene surrounded by a textured cubeScene surrounded by a textured cube Cube is textured with a backdrop representing the Cube is textured with a backdrop representing the

backgroundbackground Cube does not move with the sceneCube does not move with the scene

Appears “infinitely” far awayAppears “infinitely” far away

Page 10: Background Caches for Large Outdoor Scenes Bill Hess

Skybox limitationsSkybox limitations

Players can never reach the backgroundPlayers can never reach the backgroundGap between foreground and backgroundGap between foreground and backgroundNo parallax effectNo parallax effectReally only good for… sky.Really only good for… sky.

Page 11: Background Caches for Large Outdoor Scenes Bill Hess

3D Skybox3D Skybox

Used in Valve’s Source engineUsed in Valve’s Source engineBackground geometry is drawn to 1:16 Background geometry is drawn to 1:16

scale in a hidden part of the mapscale in a hidden part of the mapCamera is placed into the “skybox” to Camera is placed into the “skybox” to

render the backgroundrender the backgroundUse the depth buffer twiceUse the depth buffer twiceBackground is only a mockup, not Background is only a mockup, not

explorableexplorable

Page 12: Background Caches for Large Outdoor Scenes Bill Hess
Page 13: Background Caches for Large Outdoor Scenes Bill Hess
Page 14: Background Caches for Large Outdoor Scenes Bill Hess

Related ResearchRelated Research

Pre-Computed backgroundsPre-Computed backgroundsScene is broken into view-cellsScene is broken into view-cellsBackgrounds are stored on diskBackgrounds are stored on disk

City walkthroughCity walkthroughBuildings are rendered to flat ImpostorsBuildings are rendered to flat ImpostorsCamera is constrained to street tracksCamera is constrained to street tracks

Page 15: Background Caches for Large Outdoor Scenes Bill Hess

Layered Depth Images Layered Depth Images

Render scene but record multiple colors and Render scene but record multiple colors and depths at each pixeldepths at each pixel

Use inverse camera transformation to reposition Use inverse camera transformation to reposition each pixel for a new camera angleeach pixel for a new camera angle

Parallax effectParallax effect Hidden surfaces are revealedHidden surfaces are revealed Storage required equal to depth complexity of Storage required equal to depth complexity of

the image (max number of overlapping objects)the image (max number of overlapping objects)

Page 16: Background Caches for Large Outdoor Scenes Bill Hess

GoalGoal

Dynamically generate background imagesDynamically generate background images Show parallax for view changesShow parallax for view changes Transition between background and foregroundTransition between background and foreground Work in real-timeWork in real-time

Combination of Skybox and Layered Depth Combination of Skybox and Layered Depth ImageImage

Page 17: Background Caches for Large Outdoor Scenes Bill Hess

Work So FarWork So FarRecreate the problemRecreate the problem

Page 18: Background Caches for Large Outdoor Scenes Bill Hess

Work So FarWork So Far

Page 19: Background Caches for Large Outdoor Scenes Bill Hess

Work So FarWork So Far