logging in or signing up PrimalSeasCvt Marco1 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 462 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: February 11, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Notes: Notes These slides were exported from Apple Keynote. Much of the beauty of the original layout & transitions has been lost in the conversion. There are three mpeg movies accompanying the slides, which have not been embedded in the interests of file size. You may be able to download them from wherever you obtained the slides.The Primal™ SeasWater on PlayStation®2: The Primal™ Seas Water on PlayStation®2 Andrew Ostler Senior Programmer Sony Computer Entertainment Europe Cambridge StudioOverview: Overview Context – Primal™ and the PS2 Water simulation Water renderingContext - about Primal™: Context - about Primal™ PlayStation®2 game Launched earlier this year in the US, Europe and Russia; Japanese version in beta nowContext - about Primal™: Context - about Primal™ Rich landscapes an important aspect of the game A quarter of the game is set in a ‘watery’ realmContext – about PS2: Context – about PS2 4 year old game console No programmable shaders Single texture unit 4MB VRAM Effects can only occupy a part of the frame time (33ms @ 30Hz)Water simulation: Water simulation Two types in Primal™ Dynamic physical simulation Closed-form solutionPhysical simulation: Physical simulation Standard technique using a 2D grid of height values Refer to e.g.: Mathematics for 3D Game Programming & Computer Graphics, Eric Lengyel Game Programming Gems, Mark DeLoura (Editor)Physical simulation video: Physical simulation videoClosed-form solution: Closed-form solution In our case, simply sum sine waves Used because: Simulation too expensive over the huge surfaces required Easier to apply level-of-detail (LOD)Quadtree LOD: Quadtree LOD Each quad at the final level is sampled to produce a grid of heights, which looks the same to the renderer as the physical simulation • Start with full surfaceWater rendering: Water rendering Common renderer Reflection and refraction via portals Can be layered for more complex effectsVU1 renderer: Runs on coprocessor (Vector Unit 1) in parallel with main CPU Heightfields generated on main CPU Transferred to VU1 by DMA VU1 generates triangle strips VU1 rendererVU1 renderer cont.: VU1 renderer cont. Input data is heights only VU1 calculates: Vertex positions Normals (for lighting/environment map) Texture coordinates (and perturbations) Colours/transparency Triangle strips passed to common landscape rendererSlide15: Transparent dynamic surface Fixed (though animating) texture Screen space processing to enhance feel of ‘volume’ Water level can be raised/lowered ‘Shipwater’Slide16: ‘Shipwater’‘Shipwater’ video: ‘Shipwater’ videoRefraction: Refraction Important visual cue to a water surface Governed by Snell’s Law Air WaterRefraction: Refraction Simulate with UV (texture coordinate) perturbations Assume water has constant depth Calculate difference between direct and refracted ray entering water and hitting the bottomRefraction: Refraction Portals: PortalsPortals - construction: Portals - constructionPortals - projection: Portals - projection • Underwater geometry is rendered as a texture applied to water surface • This texture is rendered to a p-buffer • Projection used is aligned in the space defined by the water surfacePortals - projection: Portals - projectionPortals – texture mapping: Portals – texture mappingSea surface: Sea surface Three layers Refracted view of ‘underwater’ Basic surface ReflectionSea surface layers: Sea surface layersLayer 1: Refractive portal: Layer 1: Refractive portalLayer 2: Base texture: Layer 2: Base textureLayer 3: Environment map: Layer 3: Environment mapParabolic Environment Mapping: Parabolic Environment Mapping Reference: Heidrich 1999 Similar to well-known environment maps based on shiny spheres Shiny paraboloid captures one hemisphere.Pre-rendering a parabolic environment map: Pre-rendering a parabolic environment map Can do it in Maya Make a perfectly shiny paraboloid Place a camera above it Raytrace itPre-rendered parabolic environment map: Pre-rendered parabolic environment map Looks great But – assumes that the environment is ‘at infinity’ or at least a long way from the shiny object We need to render our environment map each frame, based on the camera positionHow do we do that then?: How do we do that then? Need to capture the whole upper hemisphere, as seen from the camera position The game is restricted to rendering normal perspective projectionsWith four cameras: With four cameras Render four views of the landscape Each has a 90° vertical field-of-view Arranged at 90° intervals around the vertical axisAssembling the environment map: Assembling the environment mapPre-rendered sky: Pre-rendered sky The sky does not depend on camera position, so can be pre-rendered Could pre-render as a final environment map, but choose to pre-render four views so it blends in better with landscapeDraw process: Draw process Seriously constrained by VRAM 640x448 32bit double buffers plus z buffer leaves ~1MB for textures and offscreen buffers (p-buffers) Have to work mainly in the back bufferComplete scene: Complete sceneDraw process: Draw process Render underwater view, to back buffer as normal, with skewed projection Copy back buffer to offscreen for later use as texture (reduced to 256x256) Clear screen and z Move texture back into back buffer to free up VRAMUnderwater view: Underwater viewDraw process: Draw process Copy fixed sky texture to screen Render four quadrant views over the top of the sky texture Copy underwater view back offscreen Assemble envmap into offscreen area Clear screen areas usedPartially assembled envmap: Partially assembled envmapDraw process: Draw process Render heightfield textured with underwater view Render sea surface itself, blending around underwater portal Then render everything above waterDraw process: Draw processVideo: Video The sea surfaces in the ‘Aquis’ realmEnd: End andrew_ostler@scee.net http://www.technology.scee.net/sceesite/presentations.html www.primalgame.com You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
PrimalSeasCvt Marco1 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 462 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: February 11, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Notes: Notes These slides were exported from Apple Keynote. Much of the beauty of the original layout & transitions has been lost in the conversion. There are three mpeg movies accompanying the slides, which have not been embedded in the interests of file size. You may be able to download them from wherever you obtained the slides.The Primal™ SeasWater on PlayStation®2: The Primal™ Seas Water on PlayStation®2 Andrew Ostler Senior Programmer Sony Computer Entertainment Europe Cambridge StudioOverview: Overview Context – Primal™ and the PS2 Water simulation Water renderingContext - about Primal™: Context - about Primal™ PlayStation®2 game Launched earlier this year in the US, Europe and Russia; Japanese version in beta nowContext - about Primal™: Context - about Primal™ Rich landscapes an important aspect of the game A quarter of the game is set in a ‘watery’ realmContext – about PS2: Context – about PS2 4 year old game console No programmable shaders Single texture unit 4MB VRAM Effects can only occupy a part of the frame time (33ms @ 30Hz)Water simulation: Water simulation Two types in Primal™ Dynamic physical simulation Closed-form solutionPhysical simulation: Physical simulation Standard technique using a 2D grid of height values Refer to e.g.: Mathematics for 3D Game Programming & Computer Graphics, Eric Lengyel Game Programming Gems, Mark DeLoura (Editor)Physical simulation video: Physical simulation videoClosed-form solution: Closed-form solution In our case, simply sum sine waves Used because: Simulation too expensive over the huge surfaces required Easier to apply level-of-detail (LOD)Quadtree LOD: Quadtree LOD Each quad at the final level is sampled to produce a grid of heights, which looks the same to the renderer as the physical simulation • Start with full surfaceWater rendering: Water rendering Common renderer Reflection and refraction via portals Can be layered for more complex effectsVU1 renderer: Runs on coprocessor (Vector Unit 1) in parallel with main CPU Heightfields generated on main CPU Transferred to VU1 by DMA VU1 generates triangle strips VU1 rendererVU1 renderer cont.: VU1 renderer cont. Input data is heights only VU1 calculates: Vertex positions Normals (for lighting/environment map) Texture coordinates (and perturbations) Colours/transparency Triangle strips passed to common landscape rendererSlide15: Transparent dynamic surface Fixed (though animating) texture Screen space processing to enhance feel of ‘volume’ Water level can be raised/lowered ‘Shipwater’Slide16: ‘Shipwater’‘Shipwater’ video: ‘Shipwater’ videoRefraction: Refraction Important visual cue to a water surface Governed by Snell’s Law Air WaterRefraction: Refraction Simulate with UV (texture coordinate) perturbations Assume water has constant depth Calculate difference between direct and refracted ray entering water and hitting the bottomRefraction: Refraction Portals: PortalsPortals - construction: Portals - constructionPortals - projection: Portals - projection • Underwater geometry is rendered as a texture applied to water surface • This texture is rendered to a p-buffer • Projection used is aligned in the space defined by the water surfacePortals - projection: Portals - projectionPortals – texture mapping: Portals – texture mappingSea surface: Sea surface Three layers Refracted view of ‘underwater’ Basic surface ReflectionSea surface layers: Sea surface layersLayer 1: Refractive portal: Layer 1: Refractive portalLayer 2: Base texture: Layer 2: Base textureLayer 3: Environment map: Layer 3: Environment mapParabolic Environment Mapping: Parabolic Environment Mapping Reference: Heidrich 1999 Similar to well-known environment maps based on shiny spheres Shiny paraboloid captures one hemisphere.Pre-rendering a parabolic environment map: Pre-rendering a parabolic environment map Can do it in Maya Make a perfectly shiny paraboloid Place a camera above it Raytrace itPre-rendered parabolic environment map: Pre-rendered parabolic environment map Looks great But – assumes that the environment is ‘at infinity’ or at least a long way from the shiny object We need to render our environment map each frame, based on the camera positionHow do we do that then?: How do we do that then? Need to capture the whole upper hemisphere, as seen from the camera position The game is restricted to rendering normal perspective projectionsWith four cameras: With four cameras Render four views of the landscape Each has a 90° vertical field-of-view Arranged at 90° intervals around the vertical axisAssembling the environment map: Assembling the environment mapPre-rendered sky: Pre-rendered sky The sky does not depend on camera position, so can be pre-rendered Could pre-render as a final environment map, but choose to pre-render four views so it blends in better with landscapeDraw process: Draw process Seriously constrained by VRAM 640x448 32bit double buffers plus z buffer leaves ~1MB for textures and offscreen buffers (p-buffers) Have to work mainly in the back bufferComplete scene: Complete sceneDraw process: Draw process Render underwater view, to back buffer as normal, with skewed projection Copy back buffer to offscreen for later use as texture (reduced to 256x256) Clear screen and z Move texture back into back buffer to free up VRAMUnderwater view: Underwater viewDraw process: Draw process Copy fixed sky texture to screen Render four quadrant views over the top of the sky texture Copy underwater view back offscreen Assemble envmap into offscreen area Clear screen areas usedPartially assembled envmap: Partially assembled envmapDraw process: Draw process Render heightfield textured with underwater view Render sea surface itself, blending around underwater portal Then render everything above waterDraw process: Draw processVideo: Video The sea surfaces in the ‘Aquis’ realmEnd: End andrew_ostler@scee.net http://www.technology.scee.net/sceesite/presentations.html www.primalgame.com