如何为SceneKit预编译PBR着色器?

问题描述 投票:10回答:1

我注意到,如果你有一个空的场景,然后在其中加载一个基于物理照明的3D模型,当对象出现时,会有一点点的卡顿。如果我之后再添加不同的对象进去,就不会出现这种卡顿。

从剖析器来看,似乎默认的PBR着色器是在第一个慢帧期间编译的。有没有可能预编译这些着色器,这样当我第一次去渲染模型时就不会发生这种情况?

类似问题 在其他框架中也被提起过,比如Three.js。似乎是个聪明的做法,可以防止。

ios scenekit metal arkit
1个回答
0
投票

如果你想预编译一个基于物理的渲染(PBR)或任何其他常规SceneKit的着色器,你必须使用一个基于物理的渲染器。SCNProgram 类,它是一个完整的金属着色器程序,可以替代SceneKit对几何体或材质的渲染。

下面是一个 网页 含有代码片段和有用的链接,告诉你如何使用顶点或片段预编译的Metal着色器。

© www.soinside.com 2019 - 2024. All rights reserved.