当前位置: 代码迷 >> 综合 >> Unity Shader--关于顶点偏移的一点发现
  详细解决方案

Unity Shader--关于顶点偏移的一点发现

热度:48   发布时间:2023-09-27 23:14:20.0

前言

最近学习Shader的过程中,发现了一个问题,顶点偏移后转换到裁剪空间的效果和顶点转换到裁剪空间后再偏移的效果不同,写下此文,供同学者参考。

正文

1.顶点偏移后转换到裁剪空间的效果

Unity Shader--关于顶点偏移的一点发现

关键代码:o.pos = UnityObjectToClipPos(v.vertex + _Vec)

2.顶点转换到裁剪空间后再偏移的效果

Unity Shader--关于顶点偏移的一点发现

关键代码:o.pos = UnityObjectToClipPos(v.vertex) + _Vec

可以看到,1的效果会出现三角面缺失的情况,而2不会,后经查询,参考这里,原因为:图元装配阶段在几何阶段之后,也就是说三角面的计算发生在顶点转换到裁剪空间之后
参考下图:

Unity Shader--关于顶点偏移的一点发现

  相关解决方案