-
3.3 Tessellation Shader (TESS) & Geometry Shader(GS)
一、曲面细分着色器的应用
海浪,雪地等


与置换贴图的结合

二、几何着色器的应用
几何动画


草地等(与曲面着色器结合)

三、着色器执行顺序

1.TESS的输入与输出
-
- Patch,可以看成是多个顶点的集合,包含每个顶点的属性,可以指定一个Patch包含的顶点数以及自己的属性
2.TESS流程
-
- 决定细分的数量(设定Tessellation factor以及Inside Tessellation factor)
- 对输入的Patch参数进行改变(如果需要)
- Tessellation Primitive Generation
-
- 对细分后的点进行处理,从重心空间(Barycentric coordinate system)转换到屏幕空间
3.HULL Shader各参数解析
-
- 决定将一条边分成几部分:
- equal_spacing:将一条边等分,限制在[1,max],如果有小数则向上取整。

-
- fractional_even_spacing:限制在[2,max],向上去最近的偶数。

-
- fractional_odd_spacing:限制在[1, max -1]向上取最近的奇数,周长会被划分为n-2的等长部分,以及两个位于两端的部分(可能比中间部分更短)。具体长度与小数部分有关,为了获取更平滑的细分。

- Inner Tessellation Factor
-



4.GS的输入与输出
- 输入为图元(三角形、矩形、线等),根据图元的不同,shader中会出现对应不同数量的顶点。
- 输出同样为图元,一个或多个,徐亚自己从顶点构建,顺序很重要同时需要定义最大输出的顶点数。
视频代码





-
相关阅读:
vue3+ts 实现移动端分页
cookie、session、tooken
C++入门
为啥不建议使用Select *
SaaSBase:什么是Oracle Fusion ERP?
从校园到职场,如果是你会和我一样吗?
【JavaScript】关键字function的点滴
利用 SOAR 加快事件响应并加强网络安全
【王道】计算机网络传输层(四)
基于php+mysql的村镇干部绩效考核系统
-
原文地址:https://blog.csdn.net/s178435865/article/details/133876081