在将unity中制作好的场景,在unity中测试正常,但发布到HoloLens后,场景却一片空白。但是可以正常唤出主菜单。程序是使用unity封装的opengl绘制多个线段和面片,组成这些面片和线段的点大概有2-3万。
原因:
batches过高。由于使用的是HoloLens1代眼镜,年代久远,且眼镜内有多个程序,因此眼镜的处理能力可能下降,不能满足渲染需求。
查看batches的方法:在unity的Game窗口中点击Stats选项,如图所示。
处理方法:降低batches。
网上关于batches的介绍非常多,想要了解的可以自行搜索。这里只介绍一下我所采用的方法。
1、对于静止的没有移动缩放和旋转需求的物体,可以开启静态批处理。
2、对于需要移动的物体,静态批处理会使物体的移动失效,所以可以采用动态批处理。unity自动为使用相同材质的物体进行动态批处理。所以应尽量减少物体使用的材质,尽量减少物体,尽量减少new新的材质。
3、在绘制时应尽量降低使用的setpass的数量,降低setpass操作。
4、统一缩放尺度的物体不会与非统一缩放尺度的物体进行批处理。
5、尽量降低shader中的pass数量。
降低batches的方法还有很多,大家可以自行选择。
参考资料:
1、https://www.zhihu.com/question/313989500/answer/610459313
2、https://blog.csdn.net/qq_33515628/article/details/84789339