细分着色器
来源:互联网 发布:04年总决赛科比数据 编辑:程序博客网 时间:2024/05/22 07:02
细分控制
- 作用:
- 对input patch进行修改,输出output patch到TES
- 为TPG提供细分参数
TCS函数会为每一个output patch中的每一个顶点执行一次,同一个patch中对应的函数共享同一个gl_ in和gl_out
#version 430layout(vertices = 4) out; //output patch大小/*---------------------内置输入变量---------------------in int gl_PatchVerticesIn; //input patch中顶点数量in int gl_PrimitiveID; //当前patch的索引in int gl_InvocationID; //当前patch中对应函数的索引in gl_PerVertex{ vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[];} gl_in [gl_MaxPatchVertices];-----------------------------------------------------*//*---------------------内置输出变量---------------------patch out float gl_TessLevelOuter[4];patch out float gl_TessLevelInner[2];out gl_PerVertex{ vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[];} gl_out[];-----------------------------------------------------*///自定义输入in vec2 uvInTCS[];//自定义输出patch out vec2 uvInTES[];void main(){ ...}
细分计算
- 作用:接收从TCS传来的为细分面片顶点和从TPG传来的归一化细分坐标,生成细分后的顶点
- TES函数为细分后的每一个顶点执行一次,同一个patch中对应的函数共享一个gl_in
TES只能输出线段或三角形
#version 430layout(triangles,equal_spacing,ccw)/*---------------------内置输入变量---------------------in vec3 gl_TessCoord;in int gl_PatchVerticesIn; //上一阶段output patch中的顶点数in int gl_PrimitiveID; //对应patch的索引in gl_PerVertex{ vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[];} gl_in[gl_MaxPatchVertices];-----------------------------------------------------*//*---------------------内置输出变量---------------------out gl_PerVertex { vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[];};-----------------------------------------------------*///自定义输入patch in vec2 uvInTES[];//自定义输出out vec2 uvInGS;void main(){ ...}
细分流程
0 0
- 细分着色器
- 细分着色器
- glsl 细分着色器
- Tessellation Shader(细分曲面着色器)
- OpenGL 4.0的Tessellation Shader(细分曲面着色器)
- Unity Shader:细分着色器(Tessellation Shader)在顶点与片段着色器中的写法以及各参数变量解释。
- Windows 8 Directx 开发学习笔记(十四)使用几何着色器实现三角形细分
- 最简单的曲面细分着色器(Tesselation Shader)【OpenGL】【GLSL】
- 着色器
- 着色器
- 着色器
- 着色器
- 着色器
- 着色器
- 着色器:着色器语言&固定功能着色器
- OpenGL ES着色器语言之着色
- OpenGL ES着色器语言之着色
- Q80:平坦着色(Flat Shading)和平滑着色(Smooth Shading)——“Q79:怎么用三角形网格(Triangle Mesh)细分曲面”(补充)
- 用户界面框架jQuery EasyUI示例大全之DataGrid(4/4)
- Android的AsyncTask类的解读
- iOS经典讲解之Apple Pay开发
- lvs:Linux virtual server八种算法
- linux下游戏服务器的启动
- 细分着色器
- Ios生成二维码
- ZOJ1060
- Linux下常用命令整理
- $( function() {} );与( function($){} )(jQuery);的异同
- 自定义Tabbar
- myeclipse优化
- 如何编写函数才能提高代码质量
- 【iOS8.0+】WKWebView的新特性与使用