DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a...
Transcript of DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a...
![Page 1: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/1.jpg)
DX11 Tessellation
Tianyun Ni
![Page 2: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/2.jpg)
Tessellation Agenda
Motivation
How it works
Tessellation Schemes
Watertight, LODs, perf
Examples
Metro2033
Terrain Fractal detail
DS shading
![Page 3: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/3.jpg)
Geometric Realism in Film
Geometric complexity is key to
realism
Pixels are meticulously shaded
Geometric detail is substantial
Enables richer content and animation
© Disney Enterprises, Inc. and Jerry Bruckheimer, Inc.
All rights reserved. Image courtesy Industrial Light & Magic.
© Pixar animation studios
![Page 4: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/4.jpg)
The Problem of Geometric Realism in Games
Pixels are meticulously shaded,
but geometric detail is modest
Image from Far Cry® 2,
courtesy of Ubisoft
![Page 5: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/5.jpg)
Memory footprint & BW savings
Store coarse geometry, expand on-demand
Enables more complex animations
Scalability
Dynamic LOD allows for performance/quality tradeoffs
Scale into the future – resolution, compute power
Computational efficiency
Dynamic LOD
GPU animate and expand compact representation
Tessellation – What and Why
© Kenneth Scott, id Software 2008
![Page 6: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/6.jpg)
Tessellation Adds Rich Detail to Games
Unigine Corp. © 2005-2010. All rights reservedUnigine Heaven Benchmark
Adds detail to edges
Accurate occlusion
Realistic shadows
Dynamically adds geometry only
where it’s needed
Tessellation ON Tessellation OFF
![Page 7: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/7.jpg)
Tessellation in DirectX 11
Hull shader
Runs pre-expansion
Explicitly parallel across control points
Fixed function tessellation stage
Configured by LOD output from HS
Produces triangles and lines
Expansion happens here
Domain shader
Runs post-expansion
Maps (u,v) to (x,y,z,w)
Implicitly parallel
Vertex
Patch
Assembly
Hull
Tessellator
Domain
Primitive
Assembly
Geometry
From input assembly
Control
points
![Page 8: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/8.jpg)
Life of a patch
Patch
Represent the a face and its 1-ring.
Only primitive type that is supported
when tessellation stages are enabled.
Arbitrary number of vertices between 1
and 32
No implied topology.
Vertex
Patch
Assembly
Hull
Tessellator
Domain
Primitive
Assembly
Geometry
From input assembly
Control
points
Input Mesh
(a collection of patch primitives)
Displacement Map
Normal Map (optional)
![Page 9: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/9.jpg)
Life of a patchVertex
Patch
Assembly
Hull
Tessellator
Domain
Primitive
Assembly
Geometry
From input assembly
Control
points
Input Mesh
(a collection of patch primitives)
Displacement Map
Normal Map (optional)
Skinning,…
struct VERTEX
{
float3 vPosition : POSITION;
float2 vUV : TEXCOORD0;
float3 vTangent : TANGENT;
uint4 vBones : BONES;
float4 vWeights : WEIGHTS;
};
![Page 10: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/10.jpg)
Life of a patch
Hull Shader
Control Point Phase (optional)
Compute Control points (optional)
Explicitly parallel
Constant Phase
Compute LODs
Compute per patch information
Pseudo parallel (fxc dependent)
Vertex
Patch
Assembly
Hull
Tessellator
Domain
Primitive
Assembly
Geometry
From input assembly
Control
points
Input Mesh
(a collection of patch primitives)
Displacement Map
Normal Map (optional)
![Page 11: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/11.jpg)
Life of a patchVertex
Patch
Assembly
Hull
Tessellator
Domain
Primitive
Assembly
Geometry
From input assembly
Control
points
TessellatorWhere expansion happens
Let lod be the TessFactor at each edge and interior
Number of triangles on a triangle domain1+6*∑ i=1
lod/2(2*i), If lod is odd
6*∑ i=1lod/2(2*i-1), If lod is even
Number of triangles on a quad domain2*lod*lod
![Page 12: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/12.jpg)
Life of a patch
Domain Shader
Surface Evaluation
Displacement mapping
Implicitly parallel (on thread per vertex)
Vertex shader tasksVertex projection
Normal transformation
…
Vertex
Patch
Assembly
Hull
Tessellator
Domain
Primitive
Assembly
Geometry
From input assembly
Control
points
Patch Surface
High-detailed Mesh
Input Mesh
(a collection of patch primitives)
Displacement Map
Normal Map (optional)
![Page 13: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/13.jpg)
Tessellation schemes
Various tessellation schemes differ at
Number of vertices in the patch primitive
Control points computations (in Hull Shader)
Pass through or higher order parametric patch
Surface evaluation (in Domain Shader)
Barycentric interpolation or higher order parametric patch
Linear/FlatPhong
TessellationPN Triangles
Catmull-Clark
(approximated)
Local Construction Schemes
![Page 14: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/14.jpg)
PN Triangles
Key features:
Cubic Bezier patches
Quadratic normal variation
Easy to implement
Hard edges not handled
“Curved PN Triangles”, by Alex Vlachos, Jörg Peters, Chas Boyd, and Jason
Mitchell, I3D 2001.
“PN Quads”, by Jörg Peters, 2008.
One input triangle
Geometry
patch
Normal
patch
![Page 15: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/15.jpg)
Phong Tessellation
Key features:Quadratic geometry interpolation
Linear normal variation (phong shading)
Simpler than PN Triangles
Can not handle inflection points Needs a relatively dense mesh to start with
Paper Siggraph 2008 Asia, by Tamy Boubekeur & Marc Alexa
![Page 16: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/16.jpg)
Catmull-Clark Subdivision Surfaces
Provides movie-quality surfaces
Catmull-Clark subdivision surfaces are extensively used
in movie production and modeling & sculpting tools
Suitable for quadrilateral meshes with few triangles
Approximation (ACC)
Approximation rather than interpolation
Requires the mesh info of a facet and its1-ring
neighborhood
![Page 17: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/17.jpg)
ACC references
Approximating Catmull-Clark Subdivision Surface with BicubicPatches” by Charles Loop and Scott Schaefer, ACM Transactions on Graphics, Vol. 27 No. 1 Article 8 March 2008.
http://research.microsoft.com/en-us/um/people/cloop/msrtr-2007-44.pdf
“Approximating Subdivision Surface with Gregory Patches for hardware Tessellation” by Charles Loop, Scott Schaefer, Tianyun Ni, Ignacio Castano, Siggraph Asia 2009.
http://research.microsoft.com/en-us/um/people/cloop/sga09.pdf
Extends previous work to a more general mesh that contain quads, triangles and meshes with boundary.
Reduces number of control points for faster surface construction and evaluation.
![Page 18: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/18.jpg)
Tessellation Schemes Comparison
# of vertices in a
patch primitive
# of control
points
Base
mesh
Surface fairness
Phong 3
Or 4
6
Or 9
Artifacts at inflection points and
high curvature area
PN 3
Or 4
10+6
Or 16+9
Artifacts at high curvature area
Gregory ACC 16 to 32 15
Or 20
Similar to CC surfaces
Choose appropriate schemes for your art assets.
Tradeoff between performance and visual quality
![Page 19: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/19.jpg)
Water Tightness
Control Points cracksProblem: floating point precision issues a+b+c != c+b+a
Require consistent evaluations at corners and edges
Displacement cracksProblem: Bilinear discontinuities
Define patch ownership of the texture coordinates
NormalsProblem: cross(tanU,tanV) ≠cross(tanV, tanU)
Discontinuities occur at shared corners and edges
![Page 20: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/20.jpg)
LOD computation
LOD heuristics
Object to camera distance
Screen resolution
Silhouette
Displacement density
Performance/quality balance control
Smooth LOD transitions
![Page 21: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/21.jpg)
Screen Space LOD Computation
Generate exactly the amount of geometry
needed for a given view
No under/oversampling
Uniform sampling of the surface improves
shading
Triangles of roughly the same size => hw
efficiency
4-8 pixels/tri on screen for high end
![Page 22: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/22.jpg)
Optimization tips
Per-object culling (based on bounding box)
Frustum
Occlusion
Per-patch culling (in the hull shader, based on tight-bound
Displaced Bezier patches)
Frustum, Backface, Occlusion (?)
Set tessellation factor to 0
Do not use tessellation factor = 1
![Page 23: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/23.jpg)
Metro 2033: Tessellation in characters
Displacement mapping enables film-level
geometric complexity in real-time
Screenshots from Metro 2033
© THQ and 4A Games
![Page 24: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/24.jpg)
Metro 2033 tessellation
Reuse of DX9/DX10 assets
Phong Tessellation + Displacement maps
LOD criteria:
TESS_FACT = LEN * NP * Q / DIST
Where LEN is edge length in world space
NP is number of pixels on the screen
Q is quality constant
DIST is distance from observer to edge center
![Page 25: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/25.jpg)
Metro 2033: Tessellation in characters
![Page 26: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/26.jpg)
Metro 2033: Artifacts on Hard Edges
![Page 27: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/27.jpg)
Transitional Polygons
![Page 28: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/28.jpg)
Terrain Tessellation
Flat quads; regular grid
Height map; vertical displacement; sample in DS
Challenges:
Existing data from DX9/DX10
A wide range of LODs
![Page 29: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/29.jpg)
Data Solution: Fractal “Amplification”
Coarse height map defines topographic shapeUpsample with bicubic
Fractal detail map adds high-LOD detail (fBm)
Cheap memory requirements
Can reuse coarse assets from DX9 or DX10 engine
Bicubic Noise
![Page 30: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/30.jpg)
Fractal “Amplification” - Results
No hw tessellation
![Page 31: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/31.jpg)
Fractal “Amplification” - Results
Bicubic filtered heights
![Page 32: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/32.jpg)
Fractal “Amplification” - Results
Tessellation
Bicubic + 5 octaves fBm
![Page 33: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/33.jpg)
Screen-space-based LOD (hull shader)
Enclose quad patch edge in bounding sphere
Project into screen-space
eye
Screen
Projected
sphere
diameterΔ size
Δs per edge = diameter / target Δ size
(diameter & target size in pixels)
Fully independent of patch size
![Page 34: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/34.jpg)
Fractal “Amplification” - Results
No hw tessellation
![Page 35: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/35.jpg)
Fractal “Amplification” - Results
Tessellation
Bicubic + 5 octaves fBm
![Page 36: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/36.jpg)
HAWX 2 Results
No Hardwre Tessellation
![Page 37: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/37.jpg)
HAWX 2 Results
Tessellation
Bicubic + 5 octaves
![Page 38: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/38.jpg)
HAWX 2 Results
No Hardwre Tessellation
![Page 39: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/39.jpg)
HAWX 2 Results
Tessellation
Bicubic + 5 octaves
![Page 40: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/40.jpg)
HAWX 2 Results
No Hardwre Tessellation
![Page 41: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/41.jpg)
HAWX 2 Results
Tessellation
Bicubic + 5 octaves
![Page 42: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/42.jpg)
Shading at different frequencies
Hoist lower-frequency computation from PS to DS
E.g. ambient/volumetric lighting
Shading in object space sometimes better
More uniform surface sampling
Less aliasing under animation
In general, compute complex things as early in the pipeline as
possible
VS possible? … HS possible? … DS possible? … If not, then PS
Try to minimize number of attributes coming to PS stage
![Page 43: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/43.jpg)
Shading in the Domain Shader
![Page 44: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/44.jpg)
Conclusions on Tessellation
Direct3D11 Tessellation enables visual detail
Several tessellation schemes with flexible LOD control
Changes to content creation pipeline
Tessellation HW is very powerful, but still need to use it wisely
It is possible to re-use DX9/DX10 content with no extra work
Local schemes, Fractal noise functions,…
Tessellation is not only about visual detail, but faster shading
Shading in DS
It’s time to bring games to the next level!!!
![Page 45: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/45.jpg)
Thanks
To all the people I borrowed material from: Miguel Sainz, Kirill
Dmitriev, Yury Uralsky, Iain Cantlay, Jon Jansen, Cem
Cebenoyan, Sarah Tariq, Tim Tcheblokov, Evgeny Makarov, THQ,
4A Games, Ubisoft, ID, Pixar, Disney…
For questions/comments please contact us:
![Page 48: DX11 Tessellation...Let lod be the TessFactor at each edge and interior Number of triangles on a triangle domain 1+6*∑ i=1 lod/2(2*i), If lod is odd 6*∑ i=1 lod/2(2*i-1), If lod](https://reader033.fdocuments.us/reader033/viewer/2022050608/5faee4c87aab2e2b6f137dc9/html5/thumbnails/48.jpg)
Content Creation Pipeline
Modeling ToolsBase surface
(control cage)
Sculpting ToolsDetailed mesh
Baker ToolsNormal, displacement, occlusion, and other maps…
Some baker tools can be automated… talk to us!