问题分析:
- 问题其实是:被shader改变的顶点已经进入摄像机视锥体,但是物体本身没有进入。
- 由于shader改变的顶点位置是在GPU处理的。
- 而物体本身没有进入摄像机视锥体,CPU层处理时已经被提前裁剪掉了。
解决方案:
- 改变摄像机的裁剪视锥体范围,Unity提供的API:Camera.cullingMatrix
- 简单处理:另在场景中做一个符合裁剪范围的摄像机,把此摄像机的裁剪矩阵赋值给主摄像机。
- 例:
originalMatrix = mainCamera.cullingMatrix;
mainCamera.cullingMatrix = cullingCamera.cullingMatrix;