着色器运行顺序

顶点着色器(VertexShader)和置换(Displacement)功能是一样

只是顶点着色器(VertexShader)只能控制细分前的顶点

而置换(Displacement)控制的是细分后的顶点
image.png

打开置换

image.png

⚠️注意:摄像机剪裁

置换和顶点着色器是可以对物体进行变换的,但这些步骤都是在GPU中进行的 而摄像机剪裁在CPU中进行

CPU首先运行,然后才是GPU运行 摄像机剪裁比着色器先运行

问题1: 如果物体不在摄像机范围内, 但经过置换和顶点着色器将物体移动到摄像机范围内时 不会背渲染出来 原因: 摄像机已经把物体剔除掉了 解决办法: 扩大物体渲染边界 image.png

问题2: 碰撞体是在GPU中计算的, 导致碰撞体和渲染出来的物体位置不一致

由于原本的置换是基于世界空间的, 所以需要乘以顶点法向,让他沿着自身法线方向镜像置换 image.png ⚠️注意:但法线硬边会断开 解决办法: image.png