跳转到主要内容
Game Engine Jul 23, 2022 1 tags

曲面细分与几何着色器

曲面细分与几何着色器

cover

一.曲面细分着色器

曲面细分着色器的应用

将一条直线进行细分,无限逼近这条曲线

可以用来制作海浪,雪地,雪地里出现的脚印,可以和置换贴图来结合,真正改变物体形状,边缘会有非常强的凹凸感

为什么不用复杂模型,而用曲面细分着色器?

它可以根据距离或者一些规则来动态调整模型的复杂度,带来更好的性能

二.几何着色器的应用

几何着色器的应用

主要来进行一些几何的绘制

可以用来做一些简单的几何动画,可以用来做类似于爆破破碎的效果,也可以草自己定义草是怎么画的,然后和曲面细分着色器结合,这样就可以有一个动态调整密度的草地,远的地方稀疏一些,近的地方密一点

三.着色器的执行顺序

顶点--->曲面细分---->几何----->片元

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.输出同样为图元,一个或多个,需要自己从顶点构建,顺序很重要,同时需要定义最大输出的顶点数

Related Articles

继续阅读