
The control-points output from a hull shader can be consumed by the domain-shader stage. The shader output is between 1 and 32 control points, regardless of the number of tessellation factors.The shader input is between 1 and 32 control points.At the simplest black-box level, the hull-shader stage would look something like the following diagram.Ī hull shader is implemented with an HLSL function, and has the following properties:
#Tessellation projects Patch#
It also does some per patch calculations to provide data for the tessellation stage and the domain stage. The progression finally highlights the vertices that correspond to these samples.Ī hull shader - which is invoked once per patch - transforms input control points that define a low-order surface into control points that make up a patch. The progression next highlights the input patch with the corresponding geometry patch, domain samples, and triangles that connect these samples. The progression starts with the low-detail subdivision surface. The following diagram shows the progression through the tessellation stages. The following diagram highlights the new stages of the Direct3D 11 pipeline. Domain-Shader Stage - A programmable shader stage that calculates the vertex position that corresponds to each domain sample.Tessellator Stage - A fixed function pipeline stage that creates a sampling pattern of the domain that represents the geometry patch and generates a set of smaller objects (triangles, points, or lines) that connect these samples.Hull-Shader Stage - A programmable shader stage that produces a geometry patch (and patch constants) that correspond to each input patch (quad, triangle, or line).The Direct3D 11 pipeline implements tessellation using three new pipeline stages: To approximate the high-ordered surface, each patch is subdivided into triangles, points, or lines using tessellation factors. Tessellation uses the GPU to calculate a more detailed surface from a surface constructed from quad patches, triangle patches or isolines. To access the new tessellation features, you must learn about some new pipeline stages. This can lead to very large performance improvements if an application implements large numbers of morph targets and/or more sophisticated skinning/deformation models. The Direct3D 11 pipeline implements tessellation in hardware, which off-loads the work from the CPU to the GPU. This could include blending calculations using blend shapes or morph targets for realistic animation or physics calculations for collision detection or soft body dynamics. Improves performance by performing expensive computations at lower frequency (doing calculations on a lower-detail model).Supports scalable-rendering techniques, such as continuous or view dependent levels-of-detail which can be calculated on the fly.

The tessellation technique implemented in the Direct3D 11 pipeline also supports displacement mapping, which can produce stunning amounts of surface detail. Saves lots of memory and bandwidth, which allows an application to render higher detailed surfaces from low-resolution models.APIs for initializing Tessellation Stages.
#Tessellation projects software#
While software tessellation can be done, tessellation implemented by hardware can generate an incredible amount of visual detail (including support for displacement mapping) without adding the visual detail to the model sizes and paralyzing refresh rates. Tessellation tiles (or breaks up) high-order surfaces into suitable structures for rendering.īy implementing tessellation in hardware, a graphics pipeline can evaluate lower detail (lower polygon count) models and render in higher detail. The Direct3D 11 runtime supports three new stages that implement tessellation, which converts low-detail subdivision surfaces into higher-detail primitives on the GPU.
