![triangle tessellation triangle tessellation](https://images-eu.ssl-images-amazon.com/images/I/51maEWAE%2B3L.png)
When pname is GL_PATCH_DEFAULT_OUTER_LEVEL, values is a 4-element array of floats defining the four outer tessellation levels. Void glPatchParameterfv(GLenum pname, const GLfloat * values) These are defined by the following function: The amount of tessellation done in this case is taken from default values set into the context.
#Triangle tessellation Patch
If no TCS is active in the current program or program pipeline, then the patch data is passed directly from the Vertex Shader invocations to the tessellation primitive generation step. Therefore, for each patch provided by the application, one patch will be provided to the next tessellation stage. However, a TCS cannot discard a patch (directly it can do so indirectly), nor can it write multiple patches. The TCS can change the size of a patch, adding more vertices per-patch or providing fewer.
![triangle tessellation triangle tessellation](https://p7.hiclipart.com/preview/635/970/508/penrose-triangle-tessellation-geometry-art-triangle.jpg)
The Tessellation Evaluation Shader (TES) takes the tessellated patch and computes the vertex values for each generated vertex.
#Triangle tessellation generator
The tessellation primitive generator takes the input patch and subdivides it based on values computed by the TCS or provided as defaults. The TCS is optional default tessellation values can be used if no TCS is provided. Without this protection, gaps and breaks in what are supposed to be contiguous patches can occur. So if you have two adjacent patches that need to have different levels of tessellation, the TCS invocations for the different patches need to use their tessellation controls to ensure that the shared edge(s) between the patches use the same level of tessellation. Therefore, the TCS is primarily responsible for ensuring continuity across patches. The Tessellation Control Shader (TCS) determines how much tessellation to do (it can also adjust the actual patch data, as well as feed additional patch data to later stages). Each stage of the tessellation pipeline performs part of this process. Generally, the process of tessellation involves subdividing a patch of some type, then computing new vertex values (position, color, texture coordinates, etc.) for each of the vertices generated by this process. They are described below, in the order they are processed. Two of the stages are programmable between them is a fixed function stage. The tessellation process is divided into three stages which form an optional part of Vertex Processing in the rendering pipeline. Note: This describes the OpenGL 4.0 feature, not the old gluTess* tessellation functionality.