【发布时间】:2018-03-03 14:01:34
【问题描述】:
我注意到,如果您有一个空场景,然后使用基于物理的照明在其中加载 3D 模型,则当对象出现时会出现一点点卡顿。如果我在那之后添加一个不同的对象,就不会发生这种口吃。
查看分析器,默认 PBR 着色器似乎在第一个慢帧期间进行编译。是否可以预编译这些着色器,以便在我第一次渲染模型时不会发生这种情况?
Similar issues 已经在其他框架中提出,例如 Three.js。预防似乎是一件明智的事情。
【问题讨论】:
-
我不知道 SceneKit,但是有没有在屏幕外渲染的选项?您可以在“加载”期间和开始游戏之前或其他任何事情之前将这样的模型渲染到屏幕外吗?
-
@KenThomases 这就是我一直在做的,但它很老套,我想知道是否有更好的方法。
-
由于着色器通常依赖于平台(即在手头的硬件卡上编译),为一个特定平台预编译它会在其他硬件上产生问题,就像@KenThomases 所说,屏幕外渲染是最好的选择。
-
运气好吗?我刚刚添加了一个
delay函数,等待 1 秒再显示,我讨厌。