From 2387cc26ab6e9cfa8e1457470448b5e2b23465b2 Mon Sep 17 00:00:00 2001 From: TimothyLottes Date: Sat, 12 Nov 2016 23:16:42 -0500 Subject: [PATCH] Add files via upload --- 20110331.html | 9 +++++++++ index.html | 2 ++ 2 files changed, 11 insertions(+) create mode 100644 20110331.html diff --git a/20110331.html b/20110331.html new file mode 100644 index 0000000..5aef3bb --- /dev/null +++ b/20110331.html @@ -0,0 +1,9 @@ +
+

20110331 - DX11 Tessellation and Level Building Blocks

+
+ +Developer friendly solution to tessellation of scene geometry.

Level Building Blocks

Scene geometry is composed of level building blocks (LBBs) as described in this Killzone 2 presentation. Similar to tessellation, LBBs without tessellation require solutions to the geometry crack problem when two LBBs share edges:

(1.) In some situations, for the same vertex, different drawing passes can generate slightly different post-transform vertex positions or vertex outputs. (2.) LBBs which share edges and have a T-junction likely will have cracks. (3.) LBBs changing between different static LOD models can produce cracks. (4.) Cracks can cause occlusion query results to be poor.

Solutions to the crack problem include,

(1.) Overlap of LBB surfaces on the same surface plane will have z-fighting, instead for flat surfaces, extra hidden lip surface behind or at an angle to the surface plane will cause a little overdraw, but can solve crack problems. (2.) For non-flat surfaces, insuring LBBs intersect. (3.) Overlay higher detail LBBs over low detail LBBs, but still draw the low detail LBBs.


LBBs with Tessellation

LBBs with tessellation can be a simple extension of LBBs without tessellation. To avoid all the problems typical of DX11 tessellation, using a single dynamically computed LOD level for each drawn LBB. Displacement aliasing can trivially be solved by specifying displacement map texture fetch LOD level (since all edges now share the same tessellation factor).

Second, skip using continuous LOD changes for each LBB. Instead use a fixed set of LOD levels. This avoids the problem of constant vertex swimming, or models getting stuck in a LOD point where geometry looks bad because of intermediate tessellation vertex positions. When LBBs need to transition between LOD levels, transition them using a fixed 1 second interval where the tessellation LOD factor smoothly transitions between states.


Advantages of This Type of System

(1.) Should be easier to tune engine for performance of various graphics cards by tuning the LOD transition points. Engine could self tune by adaptively adjusting LOD to meet performance requirements. (2.) Should be easier for an artist to build level geometry: no hand construction of different LOD levels. (3.) Pre-computed radiance transfer or pre-computed lighting perhaps better, no need for separate baking for different LOD levels. + +
+ + diff --git a/index.html b/index.html index 6b713ee..531c0a6 100644 --- a/index.html +++ b/index.html @@ -247,6 +247,8 @@ and attempting to restore what I can from prior lost images.
20110907 - Parallel Programming With Clones

+20110331 - DX11 Tessellation and Level Building Blocks
+
2010
20101005 - MSVC Optimizing Static Constant Data Copy?
20101004 - MSVC Optimizing Static Constant Function Tables?