自定义着色材料一直无法进行初始化?(Custom shader material taking fo

2019-10-16 13:04发布

我一直在raymarched项目three.js所一点点过去的一年中和复杂性增加,从而有初始化时间。 它现在可以在40秒+ 60fps的加载项目,但是浏览器加载后运行。 我已经通过性能测试,追查元凶的功能,它似乎得到三个图书馆内挂了InitMaterial功能。 没有人有任何想法,这可能是导致此挂起? 我个人认为这可能是由于制服的,因为有相当多的人,我们在着色器使用量。

您可以在这里代码有问题 。 需要注意的是globalsinclude.glsl就是制服的名单。

Answer 1:

这是一般与DirectX Windows上的问题。 我想,如果你试图在Linux或Mac在同一个页面或Chrome启动--use-angle=gl在Windows上,你会看到时间下降。

举个例子,你可以试试这个荒谬的着色器 。 它需要大约3秒编译OpenGL的,但在DirectX浏览器可能会决定它的时间过长,并重置GPU处理。

没有太多的浏览器可以做的问题,因为它主要是在微软的法庭。 微软设计的DirectX原生游戏。 本土游戏可以编译着色器下线。 该网络不能这样做,因为他们是传递到驱动程序不透明的二进制文件,并可以充分战功。

有传言有关添加异步着色器编译功能的WebGL。 着色器仍然需要40秒,编译它只是不会阻止页面。 在这一点上,虽然这是不可能发生的。

我可以建议的唯一事情是简化您的着色器。 如果你有循环也许解开他们,看看有没有什么帮助。



文章来源: Custom shader material taking forever to initialize?