可以使用的着色器
可以在集群中使用的着色器
该集群使用 Unity 的内置渲染管道,许多资产附带的着色器按原样工作。但是,那些使用几何着色器(通常用于显着改变形状的效果)在 iOS 和 Mac 上不起作用(显示为与缺失材质相同的紫色)。
我们建议您检查它,以便更多用户可以使用世界。
制作自己的着色器
以下信息仅供参考,未来可能会因平台本身的优化而有所变化。
该集群可在多个平台(Windows、Mac、Android、iOS)和不同的 UI(VR 和非 VR)上运行,一个好的世界有望在所有平台上正常运行。
集群使用的 Graphics API 是:
- Direct3D 11 (Windows)
- Metal (iOS / Mac)
- OpenGL ES 3 (Android)
这意味着不能使用几何着色器(#pragma geometry …)。
所以建议结合Unity动画和顶点着色器来实现顶点数动态增加或减少的效果。
我们建议将 #pragma target 3.5 或更低版本作为 ShaderLab 的目标版本。
由于集群的VR支持使用Multi-Pass Stereo Rendering,所以在写广告牌、水等受双目视差影响的东西时请参考。
提速技巧
由于移动 GPU 通常具有比桌面环境更小的 GPU 内存带宽,因此生成额外内存读取的 AlphaBlend 和 GrabPass 往往特别慢。
这个问题可以通过设计一个即使不透明也能起作用的效果来缓解,或者通过对透明部分使用 Alpha Cut 来缓解。