我注意到如果你有一个空场景然后用基于物理的光照加载3D模型,那么当对象出现时会有一点点凹凸不平。如果我之后再添加一个不同的对象,则不会发生这种口吃。
查看分析器,看起来默认的PBR着色器正在第一个慢帧中进行编译。是否可以预编译这些着色器,以便在我第一次渲染模型时不会发生这种情况?
Similar issues已经在其他框架中提出,比如Three.js。看起来似乎是一件明智的事情。
答案 0 :(得分:0)
如果要预编译基于物理的渲染(PBR)或任何其他常规SceneKit的着色器,则必须使用SCNProgram
类,该类是一个完整的Metal着色器程序,用于替换SceneKit的几何或材质渲染。
这里是page,其中包含代码段和有用的链接,向您展示了如何使用顶点或片段预编译的Metal着色器。