SlideShare a Scribd company logo
1 of 60
The Terrain of




          Angel Cunado
          Lead Engine Programmer
Kingdom Under Fire II
MMO
3rd Person Action
Real Time Strategy




MMOARTS
Kingdom Under Fire II
Terrain requirements
  3rd person camera (close view, high detail)
  RTS camera (large, instant displacements)
  Large continuous world (streaming)
  Direct3D 9 class HW with ps3
Agenda
Geometry
Texturing
Storage, Streaming and Synthesis (overview)
Terrain Geometry
Terrain Geometry
Terrain Geometry
Height map based
8Km x 8Km terrain patch around the camera
Geometry resolution down to 12.5cm
Brute force rendering → 8,589,934,592 tri.
Terrain Geometry
It's all about finding the right LOD technique
We use “Geometry Clipmaps”
  “Geometry clipmaps: Terrain rendering using nested
  regular grids.” Siggraph 2004, F. Losasso, H.
  Hoppe
  “Terrain rendering using GPU base geometry
  clipmaps.” 2005, A. Asirvathan, H. Hoppe, GPU
  Gems 2
Geometry Clipmaps
Nested regular grids
  (2n-2)2 quads each
Roughly centered around
the camera
Grid meshes must be
progressively updated as
the camera moves
Geometry Clipmaps
Geometry Clipmaps
KUFII World Terrain
  n = 8, 254x254 quads, 129.032 triangles each
  clipmap
  8 Geometry clipmaps
   –   From 32m x 32m with 12.5cm resolution
   –   To 4km x 4km with 16m resolution
  Total: 774.192 triangles
Frustum Culling
Split each clipmap
into 12 nearly square
patches
4 different index
buffers
  2n-2-1 x 2n-2-1,
  2n-2-1 x 2n-2
  2n-2 x 2n-2-1
  2n-2 x 2n-2
Frustum Culling
8x12 = 96 BBoxes to
test
~8 x 4→32 draw calls
~200K visible triangles
Geometry Clipmaps
Geomorphing needed to avoid gaps between
consecutive clipmaps.

Geometry Clipmap update
  This is the tricky part...
  Store vertex elevations in a texture
  Incremental texture updates as the camera moves
  Please check the reference docs for details...
Normal Map
Normal Clipmap
Normals stored in
texture clipmaps
Generated at
runtime from
elevation data.
8 LODs
8192m x 8192m
1024 x 1024 texels
3cm details
Normal clipmap
Stored in a volume texture.
One clipmap LOD → one
volume slice
PS calculates the right slice
and UVs
  Based in distance to camera
  and derivatives
Compressed to DXT5
Texturing
Texturing
This a 20km x 20km
section of KUFII
terrain.
Texture details down
to ~3mm
Equivalent to
         2
6,000,000 texels.
Texture Splatting
Classical terrain texturing method
Combine 2 repeating tiles using a lower
resolution blend map.
Use multipass render
..or multitexturing.
                                     x
Texture Splatting
4096 x 4096 blend map for a 20Km x 20Km
results in ~5x5m per texel.
KUFII art team wanted ~0.1x0.1m per texel
Texture Splatting
4096 x 4096 blend map for a 20Km x 20Km
results in ~5x5m per texel.
KUFII art team wanted ~0.1x0.1m
Easy... just use a texture clipmap for the blend
map!
Blend Clipmap
Texture Splatting
What if we want to use 64
different tiles?
We need 63 blend
channels...
16 passes with 4 texture
tiles each?!
Texture Splatting
What if we want our tiles
to also support bump
mapping?
Too many passes, too
many texture fetches.
Conventional solution
Split the terrain into smaller sections that use a
reasonable number of tiles.
Conventional solution
Tradeoff between number of sections and
number of tiles in each section
Terrain artists need to be careful to disguise the
seams between adjacent sections
Conventional solution
Tradeoff between number of sections and
number of tiles in each section
Terrain artists need to be careful to disguise the
seams between adjacent sections
And most important: Geometry Clipmaps treat
terrain as it was continuous!!!
  No easy way to divide in sections using independent
  draw calls each.
Texture Splatting Revisited
   Splatting with up to 256 tiles!
What if we consider each texel in the blend
clipmap as a separate terrain section using up
to 2 tiles?
  Reminder: One blend texel in KUFII → ~10x10cm.
Texture Splatting Revisited
   Splatting with up to 256 tiles!
What if we consider each texel in the blend
clipmap as a separate terrain section using up
to 2 tiles?
  Reminder: One blend texel in KUFII → ~10x10cm.
Assign an index to each tile
Store 2 indices and one alpha value per texel of
the blend clipmap
Pack all the tiles in a texture Atlas.
Splatting with 2 indexed color tiles...


                 ID1
                 ID2
                  f




                  x
...and 1 bump tile.


       ID1
       ID2
        f




       +
Texture Splatting Revisited
A total 6 texture fetches required:
  Blend ClipMap: 1
  Normal ClipMap: 2
  Color Atlas: 2
  Bump Atlas: 1
Blend Clipmap Format
The tile with the highest weight goes in ID1
  Bump map uses only ID1
  Blend weight range is 0.5 to 1.0
Two possible formats
  5551 RGBA => 32 tiles and 64 blend steps
  8888 RGBA => 256 tiles and 512 blend steps
If weight == 0 then make ID2 = ID1 to optimize
texture bandwidth
Blend Map Filtering
Blend Map Filtering
Problem: HW texture filtering makes no sense.
We need to filter in the PS
  Fetch the Blend clipmap 4 times
  Fetch the Color Atlas 2 x 4 = 8 times
  Fetch the Bump Atlas 4 times
  Do bi-linear filtering by interpolating in the PS
Blend Map Filtering
Layer Map Filtering
18 texture fetches needed!
So how expensive is it?...
Layer Map Filtering
18 texture fetches needed!
So how expensive is it?...
…not that much actually
  Blend Map fetches are always 4 neighboring texels
  Atlas fetches usually end up sampling the same tile
  (and UV coords) several times
  E.g. The 8 color fetches very rarely correspond to
  more than 2 or 3 actual different tiles.
~ 25% perf. decrease compared to the non-
filtered version.
PS Dynamic Flow Control
PS Dynamic Flow Control
There are big areas in the Blend Map where
ID0 and ID1 don't change across several texels.
  Green areas in the previous slide.
In those areas HW bi-linear filter works just fine.
Use dynamic flow control to skip PS bi-linear
filter.
Pre-compute the condition expression and store
it in the blend map alpha channel.
Texture Memory Requirements
888RGBX Blend Clipmap: 24 MB
  6 slices x 1024x1024
  Covering 128m to 4096m
  Closest clipmap texel size = 12.5cm
DXT5 Normal Clipmap: 8MB
  8 slices x 1024x1024
  Covering 32m to 4096m
  Closest clipmap texel size = 3.125cm
Total: 32MB
Low Quality Settings
 Texture Memory Requirements
888RGBX Blend Clipmap: 7 MB
  7 slices x 512x512
  Covering 64m to 4096m
  Closest clipmap texel size = 12.5cm
DXT5 Normal Clipmap: 2.25MB
  9 slices x 512x512
  Covering 16m to 4096m
  Closest clipmap texel size = 3.125cm
Total: 9.25MB
Low Quality Settings
Low Quality vs High Quality Settings
Texturing Terrain Slopes
Textures are mapped to the terrain by a planar
projection along the Y axis.
In steeply sloped areas this causes
unacceptable distortion.
Texturing Terrain Slopes
Texturing Terrain Slopes
Texturing Terrain Slopes
Texturing Terrain Slopes
Solution: Selectable projection axis and scale
per texture tile
Adds one extra level of indirection:
   “Layer Table”         Tile   Axis   Scale




                                X      1.5
                   ID1
                   ID2
                    f
                                Z      1
Texturing Terrain Slopes
Two layers can share the same texture tile,
while having different projection axis/scale.
Blend clipmap now contains layer ID.
                        Tile   Axis   Scale




                               X      1.5
                  ID1
                  ID2
                   f
                               Z      1
Tile Projection Axis
X
Y
Z
Texturing Terrain Slopes
Texturing Terrain Slopes
Storage, Streaming & Synthesis

           Terrain sections LODs        Cache

 Disk
        Streaming           Synthesis
Storage, Streaming & Synthesis
Terrain divided into rectangular sections
For each section LOD chains of the elevation
and layer data are stored independently.
Section LODs are streaming on demand.
The synthesis process can fill the gaps when
some LOD is temporally unavailable.
Procedural synthesis is also use to generate
extra high frequency detail.
Without Procedural Detail
With Procedural Detail
Questions?
We are Hiring!

Programming all engine areas
  Graphics, Animation, Physics and Tools.
All levels of experience
  Junior, Senior, Lead...

More Related Content

What's hot

Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Tiago Sousa
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbiteElectronic Arts / DICE
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingElectronic Arts / DICE
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbiteElectronic Arts / DICE
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontElectronic Arts / DICE
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonAMD Developer Central
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3guest11b095
 
Crysis 2-key-rendering-features
Crysis 2-key-rendering-featuresCrysis 2-key-rendering-features
Crysis 2-key-rendering-featuresRaimundo Renato
 
Checkerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOCCheckerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOCQLOC
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunElectronic Arts / DICE
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Tiago Sousa
 
Dx11 performancereloaded
Dx11 performancereloadedDx11 performancereloaded
Dx11 performancereloadedmistercteam
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용JP Jung
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility bufferWolfgang Engel
 
Destruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsDestruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsElectronic Arts / DICE
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizationspjcozzi
 

What's hot (20)

Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in Frostbite
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
 
Crysis 2-key-rendering-features
Crysis 2-key-rendering-featuresCrysis 2-key-rendering-features
Crysis 2-key-rendering-features
 
Checkerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOCCheckerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOC
 
Beyond porting
Beyond portingBeyond porting
Beyond porting
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
Dx11 performancereloaded
Dx11 performancereloadedDx11 performancereloaded
Dx11 performancereloaded
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility buffer
 
Destruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsDestruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance Fields
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizations
 

Similar to Angel cunado_The Terrain Of KUF2

CS 354 Texture Mapping
CS 354 Texture MappingCS 354 Texture Mapping
CS 354 Texture MappingMark Kilgard
 
Voxel rendering on mobile devices
Voxel rendering on mobile devicesVoxel rendering on mobile devices
Voxel rendering on mobile devicesDevGAMM Conference
 
The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014Jarosław Pleskot
 
Realtime Per Face Texture Mapping (PTEX)
Realtime Per Face Texture Mapping (PTEX)Realtime Per Face Texture Mapping (PTEX)
Realtime Per Face Texture Mapping (PTEX)basisspace
 
Computer Graphics Part1
Computer Graphics Part1Computer Graphics Part1
Computer Graphics Part1qpqpqp
 
Anatomy of a Texture Fetch
Anatomy of a Texture FetchAnatomy of a Texture Fetch
Anatomy of a Texture FetchMark Kilgard
 
Next generation graphics programming on xbox 360
Next generation graphics programming on xbox 360Next generation graphics programming on xbox 360
Next generation graphics programming on xbox 360VIKAS SINGH BHADOURIA
 
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15Jarosław Pleskot
 
DeepLab V3+: Encoder-Decoder with Atrous Separable Convolution for Semantic I...
DeepLab V3+: Encoder-Decoder with Atrous Separable Convolution for Semantic I...DeepLab V3+: Encoder-Decoder with Atrous Separable Convolution for Semantic I...
DeepLab V3+: Encoder-Decoder with Atrous Separable Convolution for Semantic I...Joonhyung Lee
 
PR-317: MLP-Mixer: An all-MLP Architecture for Vision
PR-317: MLP-Mixer: An all-MLP Architecture for VisionPR-317: MLP-Mixer: An all-MLP Architecture for Vision
PR-317: MLP-Mixer: An all-MLP Architecture for VisionJinwon Lee
 
A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemBo Li
 
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3Electronic Arts / DICE
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
 
Texture mapping in_opengl
Texture mapping in_openglTexture mapping in_opengl
Texture mapping in_openglManas Nayak
 
A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)
A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)
A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)Mark Kilgard
 
Rendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb RaiderRendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb RaiderEidos-Montréal
 
Game development terminologies
Game development terminologiesGame development terminologies
Game development terminologiesAhmed Badr
 

Similar to Angel cunado_The Terrain Of KUF2 (20)

CS 354 Texture Mapping
CS 354 Texture MappingCS 354 Texture Mapping
CS 354 Texture Mapping
 
Voxel rendering on mobile devices
Voxel rendering on mobile devicesVoxel rendering on mobile devices
Voxel rendering on mobile devices
 
The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014
 
Realtime Per Face Texture Mapping (PTEX)
Realtime Per Face Texture Mapping (PTEX)Realtime Per Face Texture Mapping (PTEX)
Realtime Per Face Texture Mapping (PTEX)
 
Computer Graphics Part1
Computer Graphics Part1Computer Graphics Part1
Computer Graphics Part1
 
Anatomy of a Texture Fetch
Anatomy of a Texture FetchAnatomy of a Texture Fetch
Anatomy of a Texture Fetch
 
Next generation graphics programming on xbox 360
Next generation graphics programming on xbox 360Next generation graphics programming on xbox 360
Next generation graphics programming on xbox 360
 
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
 
DeepLab V3+: Encoder-Decoder with Atrous Separable Convolution for Semantic I...
DeepLab V3+: Encoder-Decoder with Atrous Separable Convolution for Semantic I...DeepLab V3+: Encoder-Decoder with Atrous Separable Convolution for Semantic I...
DeepLab V3+: Encoder-Decoder with Atrous Separable Convolution for Semantic I...
 
PR-317: MLP-Mixer: An all-MLP Architecture for Vision
PR-317: MLP-Mixer: An all-MLP Architecture for VisionPR-317: MLP-Mixer: An all-MLP Architecture for Vision
PR-317: MLP-Mixer: An all-MLP Architecture for Vision
 
A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering System
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
A0280105
A0280105A0280105
A0280105
 
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
 
Texture mapping in_opengl
Texture mapping in_openglTexture mapping in_opengl
Texture mapping in_opengl
 
A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)
A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)
A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)
 
Rendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb RaiderRendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb Raider
 
Reyes
ReyesReyes
Reyes
 
Game development terminologies
Game development terminologiesGame development terminologies
Game development terminologies
 

More from drandom

노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splattingdrandom
 
The Settler 7- 포스트모템
The Settler 7- 포스트모템The Settler 7- 포스트모템
The Settler 7- 포스트모템drandom
 
최우성 구별하여 사용하면 좋은 프로젝트 관련용어
최우성 구별하여 사용하면 좋은 프로젝트 관련용어최우성 구별하여 사용하면 좋은 프로젝트 관련용어
최우성 구별하여 사용하면 좋은 프로젝트 관련용어drandom
 
이은석 마비노기 영웅전 포스트모템 2부 (kgc 버전)
이은석   마비노기 영웅전 포스트모템 2부 (kgc 버전)이은석   마비노기 영웅전 포스트모템 2부 (kgc 버전)
이은석 마비노기 영웅전 포스트모템 2부 (kgc 버전)drandom
 
이은석 마비노기 영웅전 포스트모템 1부 (kgc 버전)
이은석   마비노기 영웅전 포스트모템 1부 (kgc 버전)이은석   마비노기 영웅전 포스트모템 1부 (kgc 버전)
이은석 마비노기 영웅전 포스트모템 1부 (kgc 버전)drandom
 
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술drandom
 
Mmorpg 사례로 본 만족도와 재접속
Mmorpg 사례로 본 만족도와 재접속Mmorpg 사례로 본 만족도와 재접속
Mmorpg 사례로 본 만족도와 재접속drandom
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기drandom
 
오토데스크 게임수퍼유저투어 part 2. 제작 파이프라인 현대화
오토데스크 게임수퍼유저투어 part 2. 제작 파이프라인 현대화오토데스크 게임수퍼유저투어 part 2. 제작 파이프라인 현대화
오토데스크 게임수퍼유저투어 part 2. 제작 파이프라인 현대화drandom
 
오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례
오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례
오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례drandom
 
Landscape 구축, Unreal Engine 3 의 차세대 terrain system
Landscape 구축, Unreal Engine 3 의 차세대 terrain systemLandscape 구축, Unreal Engine 3 의 차세대 terrain system
Landscape 구축, Unreal Engine 3 의 차세대 terrain systemdrandom
 
MMORPG게임엔진의 현재와미래 by 장언일
MMORPG게임엔진의 현재와미래 by 장언일MMORPG게임엔진의 현재와미래 by 장언일
MMORPG게임엔진의 현재와미래 by 장언일drandom
 
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" DemoThe Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demodrandom
 
Gdc2011 direct x 11 rendering in battlefield 3
Gdc2011 direct x 11 rendering in battlefield 3Gdc2011 direct x 11 rendering in battlefield 3
Gdc2011 direct x 11 rendering in battlefield 3drandom
 
Lighting you up in Battlefield 3
Lighting you up in Battlefield 3Lighting you up in Battlefield 3
Lighting you up in Battlefield 3drandom
 
From Content for Next Generation Games by Chris Wells
From Content for Next Generation Games by Chris WellsFrom Content for Next Generation Games by Chris Wells
From Content for Next Generation Games by Chris Wellsdrandom
 

More from drandom (16)

노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splatting
 
The Settler 7- 포스트모템
The Settler 7- 포스트모템The Settler 7- 포스트모템
The Settler 7- 포스트모템
 
최우성 구별하여 사용하면 좋은 프로젝트 관련용어
최우성 구별하여 사용하면 좋은 프로젝트 관련용어최우성 구별하여 사용하면 좋은 프로젝트 관련용어
최우성 구별하여 사용하면 좋은 프로젝트 관련용어
 
이은석 마비노기 영웅전 포스트모템 2부 (kgc 버전)
이은석   마비노기 영웅전 포스트모템 2부 (kgc 버전)이은석   마비노기 영웅전 포스트모템 2부 (kgc 버전)
이은석 마비노기 영웅전 포스트모템 2부 (kgc 버전)
 
이은석 마비노기 영웅전 포스트모템 1부 (kgc 버전)
이은석   마비노기 영웅전 포스트모템 1부 (kgc 버전)이은석   마비노기 영웅전 포스트모템 1부 (kgc 버전)
이은석 마비노기 영웅전 포스트모템 1부 (kgc 버전)
 
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
 
Mmorpg 사례로 본 만족도와 재접속
Mmorpg 사례로 본 만족도와 재접속Mmorpg 사례로 본 만족도와 재접속
Mmorpg 사례로 본 만족도와 재접속
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
오토데스크 게임수퍼유저투어 part 2. 제작 파이프라인 현대화
오토데스크 게임수퍼유저투어 part 2. 제작 파이프라인 현대화오토데스크 게임수퍼유저투어 part 2. 제작 파이프라인 현대화
오토데스크 게임수퍼유저투어 part 2. 제작 파이프라인 현대화
 
오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례
오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례
오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례
 
Landscape 구축, Unreal Engine 3 의 차세대 terrain system
Landscape 구축, Unreal Engine 3 의 차세대 terrain systemLandscape 구축, Unreal Engine 3 의 차세대 terrain system
Landscape 구축, Unreal Engine 3 의 차세대 terrain system
 
MMORPG게임엔진의 현재와미래 by 장언일
MMORPG게임엔진의 현재와미래 by 장언일MMORPG게임엔진의 현재와미래 by 장언일
MMORPG게임엔진의 현재와미래 by 장언일
 
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" DemoThe Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
 
Gdc2011 direct x 11 rendering in battlefield 3
Gdc2011 direct x 11 rendering in battlefield 3Gdc2011 direct x 11 rendering in battlefield 3
Gdc2011 direct x 11 rendering in battlefield 3
 
Lighting you up in Battlefield 3
Lighting you up in Battlefield 3Lighting you up in Battlefield 3
Lighting you up in Battlefield 3
 
From Content for Next Generation Games by Chris Wells
From Content for Next Generation Games by Chris WellsFrom Content for Next Generation Games by Chris Wells
From Content for Next Generation Games by Chris Wells
 

Recently uploaded

How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIyuj
 
办理学位证加州州立大学洛杉矶分校毕业证成绩单原版一比一
办理学位证加州州立大学洛杉矶分校毕业证成绩单原版一比一办理学位证加州州立大学洛杉矶分校毕业证成绩单原版一比一
办理学位证加州州立大学洛杉矶分校毕业证成绩单原版一比一Fi L
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Rndexperts
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,Aginakm1
 
Design principles on typography in design
Design principles on typography in designDesign principles on typography in design
Design principles on typography in designnooreen17
 
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts ServiceCall Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Servicejennyeacort
 
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一z xss
 
Design and Managing Service in the field of tourism and hospitality industry
Design and Managing Service in the field of tourism and hospitality industryDesign and Managing Service in the field of tourism and hospitality industry
Design and Managing Service in the field of tourism and hospitality industryrioverosanniejoy
 
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一F La
 
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...Rishabh Aryan
 
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改yuu sss
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书zdzoqco
 
Call Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full NightCall Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full Nightssuser7cb4ff
 
西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造kbdhl05e
 
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一Fi ss
 
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degreeyuu sss
 
FiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfFiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfShivakumar Viswanathan
 
Call Girls Meghani Nagar 7397865700 Independent Call Girls
Call Girls Meghani Nagar 7397865700  Independent Call GirlsCall Girls Meghani Nagar 7397865700  Independent Call Girls
Call Girls Meghani Nagar 7397865700 Independent Call Girlsssuser7cb4ff
 
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一Fi L
 

Recently uploaded (20)

How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AI
 
办理学位证加州州立大学洛杉矶分校毕业证成绩单原版一比一
办理学位证加州州立大学洛杉矶分校毕业证成绩单原版一比一办理学位证加州州立大学洛杉矶分校毕业证成绩单原版一比一
办理学位证加州州立大学洛杉矶分校毕业证成绩单原版一比一
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
 
Call Girls in Pratap Nagar, 9953056974 Escort Service
Call Girls in Pratap Nagar,  9953056974 Escort ServiceCall Girls in Pratap Nagar,  9953056974 Escort Service
Call Girls in Pratap Nagar, 9953056974 Escort Service
 
Design principles on typography in design
Design principles on typography in designDesign principles on typography in design
Design principles on typography in design
 
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts ServiceCall Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
 
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
 
Design and Managing Service in the field of tourism and hospitality industry
Design and Managing Service in the field of tourism and hospitality industryDesign and Managing Service in the field of tourism and hospitality industry
Design and Managing Service in the field of tourism and hospitality industry
 
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
 
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
 
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
 
Call Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full NightCall Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full Night
 
西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造
 
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
 
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
 
FiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfFiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdf
 
Call Girls Meghani Nagar 7397865700 Independent Call Girls
Call Girls Meghani Nagar 7397865700  Independent Call GirlsCall Girls Meghani Nagar 7397865700  Independent Call Girls
Call Girls Meghani Nagar 7397865700 Independent Call Girls
 
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
 

Angel cunado_The Terrain Of KUF2

  • 1. The Terrain of Angel Cunado Lead Engine Programmer
  • 2. Kingdom Under Fire II MMO 3rd Person Action Real Time Strategy MMOARTS
  • 3. Kingdom Under Fire II Terrain requirements 3rd person camera (close view, high detail) RTS camera (large, instant displacements) Large continuous world (streaming) Direct3D 9 class HW with ps3
  • 7. Terrain Geometry Height map based 8Km x 8Km terrain patch around the camera Geometry resolution down to 12.5cm Brute force rendering → 8,589,934,592 tri.
  • 8. Terrain Geometry It's all about finding the right LOD technique We use “Geometry Clipmaps” “Geometry clipmaps: Terrain rendering using nested regular grids.” Siggraph 2004, F. Losasso, H. Hoppe “Terrain rendering using GPU base geometry clipmaps.” 2005, A. Asirvathan, H. Hoppe, GPU Gems 2
  • 9. Geometry Clipmaps Nested regular grids (2n-2)2 quads each Roughly centered around the camera Grid meshes must be progressively updated as the camera moves
  • 11. Geometry Clipmaps KUFII World Terrain n = 8, 254x254 quads, 129.032 triangles each clipmap 8 Geometry clipmaps – From 32m x 32m with 12.5cm resolution – To 4km x 4km with 16m resolution Total: 774.192 triangles
  • 12. Frustum Culling Split each clipmap into 12 nearly square patches 4 different index buffers 2n-2-1 x 2n-2-1, 2n-2-1 x 2n-2 2n-2 x 2n-2-1 2n-2 x 2n-2
  • 13. Frustum Culling 8x12 = 96 BBoxes to test ~8 x 4→32 draw calls ~200K visible triangles
  • 14. Geometry Clipmaps Geomorphing needed to avoid gaps between consecutive clipmaps. Geometry Clipmap update This is the tricky part... Store vertex elevations in a texture Incremental texture updates as the camera moves Please check the reference docs for details...
  • 16. Normal Clipmap Normals stored in texture clipmaps Generated at runtime from elevation data. 8 LODs 8192m x 8192m 1024 x 1024 texels 3cm details
  • 17. Normal clipmap Stored in a volume texture. One clipmap LOD → one volume slice PS calculates the right slice and UVs Based in distance to camera and derivatives Compressed to DXT5
  • 19. Texturing This a 20km x 20km section of KUFII terrain. Texture details down to ~3mm Equivalent to 2 6,000,000 texels.
  • 20. Texture Splatting Classical terrain texturing method Combine 2 repeating tiles using a lower resolution blend map. Use multipass render ..or multitexturing. x
  • 21. Texture Splatting 4096 x 4096 blend map for a 20Km x 20Km results in ~5x5m per texel. KUFII art team wanted ~0.1x0.1m per texel
  • 22. Texture Splatting 4096 x 4096 blend map for a 20Km x 20Km results in ~5x5m per texel. KUFII art team wanted ~0.1x0.1m Easy... just use a texture clipmap for the blend map!
  • 24. Texture Splatting What if we want to use 64 different tiles? We need 63 blend channels... 16 passes with 4 texture tiles each?!
  • 25. Texture Splatting What if we want our tiles to also support bump mapping? Too many passes, too many texture fetches.
  • 26. Conventional solution Split the terrain into smaller sections that use a reasonable number of tiles.
  • 27. Conventional solution Tradeoff between number of sections and number of tiles in each section Terrain artists need to be careful to disguise the seams between adjacent sections
  • 28. Conventional solution Tradeoff between number of sections and number of tiles in each section Terrain artists need to be careful to disguise the seams between adjacent sections And most important: Geometry Clipmaps treat terrain as it was continuous!!! No easy way to divide in sections using independent draw calls each.
  • 29. Texture Splatting Revisited Splatting with up to 256 tiles! What if we consider each texel in the blend clipmap as a separate terrain section using up to 2 tiles? Reminder: One blend texel in KUFII → ~10x10cm.
  • 30. Texture Splatting Revisited Splatting with up to 256 tiles! What if we consider each texel in the blend clipmap as a separate terrain section using up to 2 tiles? Reminder: One blend texel in KUFII → ~10x10cm. Assign an index to each tile Store 2 indices and one alpha value per texel of the blend clipmap Pack all the tiles in a texture Atlas.
  • 31. Splatting with 2 indexed color tiles... ID1 ID2 f x
  • 32. ...and 1 bump tile. ID1 ID2 f +
  • 33. Texture Splatting Revisited A total 6 texture fetches required: Blend ClipMap: 1 Normal ClipMap: 2 Color Atlas: 2 Bump Atlas: 1
  • 34. Blend Clipmap Format The tile with the highest weight goes in ID1 Bump map uses only ID1 Blend weight range is 0.5 to 1.0 Two possible formats 5551 RGBA => 32 tiles and 64 blend steps 8888 RGBA => 256 tiles and 512 blend steps If weight == 0 then make ID2 = ID1 to optimize texture bandwidth
  • 36. Blend Map Filtering Problem: HW texture filtering makes no sense. We need to filter in the PS Fetch the Blend clipmap 4 times Fetch the Color Atlas 2 x 4 = 8 times Fetch the Bump Atlas 4 times Do bi-linear filtering by interpolating in the PS
  • 38. Layer Map Filtering 18 texture fetches needed! So how expensive is it?...
  • 39. Layer Map Filtering 18 texture fetches needed! So how expensive is it?... …not that much actually Blend Map fetches are always 4 neighboring texels Atlas fetches usually end up sampling the same tile (and UV coords) several times E.g. The 8 color fetches very rarely correspond to more than 2 or 3 actual different tiles. ~ 25% perf. decrease compared to the non- filtered version.
  • 40. PS Dynamic Flow Control
  • 41. PS Dynamic Flow Control There are big areas in the Blend Map where ID0 and ID1 don't change across several texels. Green areas in the previous slide. In those areas HW bi-linear filter works just fine. Use dynamic flow control to skip PS bi-linear filter. Pre-compute the condition expression and store it in the blend map alpha channel.
  • 42. Texture Memory Requirements 888RGBX Blend Clipmap: 24 MB 6 slices x 1024x1024 Covering 128m to 4096m Closest clipmap texel size = 12.5cm DXT5 Normal Clipmap: 8MB 8 slices x 1024x1024 Covering 32m to 4096m Closest clipmap texel size = 3.125cm Total: 32MB
  • 43. Low Quality Settings Texture Memory Requirements 888RGBX Blend Clipmap: 7 MB 7 slices x 512x512 Covering 64m to 4096m Closest clipmap texel size = 12.5cm DXT5 Normal Clipmap: 2.25MB 9 slices x 512x512 Covering 16m to 4096m Closest clipmap texel size = 3.125cm Total: 9.25MB
  • 45. Low Quality vs High Quality Settings
  • 46. Texturing Terrain Slopes Textures are mapped to the terrain by a planar projection along the Y axis. In steeply sloped areas this causes unacceptable distortion.
  • 50. Texturing Terrain Slopes Solution: Selectable projection axis and scale per texture tile Adds one extra level of indirection: “Layer Table” Tile Axis Scale X 1.5 ID1 ID2 f Z 1
  • 51. Texturing Terrain Slopes Two layers can share the same texture tile, while having different projection axis/scale. Blend clipmap now contains layer ID. Tile Axis Scale X 1.5 ID1 ID2 f Z 1
  • 55. Storage, Streaming & Synthesis Terrain sections LODs Cache Disk Streaming Synthesis
  • 56. Storage, Streaming & Synthesis Terrain divided into rectangular sections For each section LOD chains of the elevation and layer data are stored independently. Section LODs are streaming on demand. The synthesis process can fill the gaps when some LOD is temporally unavailable. Procedural synthesis is also use to generate extra high frequency detail.
  • 60. We are Hiring! Programming all engine areas Graphics, Animation, Physics and Tools. All levels of experience Junior, Senior, Lead...