
一.曲面细分着色器
曲面细分着色器的应用
将一条直线进行细分,无限逼近这条曲线
可以用来制作海浪,雪地,雪地里出现的脚印,可以和置换贴图来结合,真正改变物体形状,边缘会有非常强的凹凸感
为什么不用复杂模型,而用曲面细分着色器?
它可以根据距离或者一些规则来动态调整模型的复杂度,带来更好的性能
二.几何着色器的应用
几何着色器的应用
主要来进行一些几何的绘制
可以用来做一些简单的几何动画,可以用来做类似于爆破破碎的效果,也可以草自己定义草是怎么画的,然后和曲面细分着色器结合,这样就可以有一个动态调整密度的草地,远的地方稀疏一些,近的地方密一点
三.着色器的执行顺序
顶点--->曲面细分---->几何----->片元
Hull Shader主要作用是用来定义一些细分的参数,比如每条边上如何细分和内部三角形如何细分
Domain Shader它的空间在重心空间,我们需要把这个重心空间转换到我们要用的空间.
四.Unity曲面细分原理与应用1
Unity曲面细分原理与应用2
五.进阶渲染系列(二)——曲面细分(细分三角形)
六.TESS的输入与输出
顶点是共享的,不能单独定义单个顶点的
七.TESS流程
六.HULL Shader各参数解析
Tessellation Factor决定将一条边分成几部分:
Inner Tessellation Factor作延长线,作交点
八.曲面细分 Demo演示
1.将一个Quad细分
体现具体的使用方法,通过一个quad可以看出不同数值对细分的 影响(之后可以使用在草地中),基于shader再回顾一遍各个参数的作用
2.与置换贴图的结合
**3.**Unity-支持 DX11/OpenGL Core 曲面细分的表面着色器
九.几何着色器GS的输入与输出
1.输入为图元(三角形,矩形,线等)根据图元的不同,shader中会出现对应不同数量的顶点
2.输出同样为图元,一个或多个,需要自己从顶点构建,顺序很重要,同时需要定义最大输出的顶点数