1. 首页
  2. three.js

three.js我设定了3-4fps

我有一个非常复杂的场景(我正在使用ngl,它是建立在three.js). 我刚开始添加颜色管理,所以我设置了>。现在我的帧速率突然从60变为3fps,但只有当我的鼠标移动时。看看chrome开发工具,似乎大部分时间都花在这个自底向上的调用堆栈上:ngetProgramParameterfetchAttributeLocationsWebGLProgram.getAttributesinitMateralsetProgram…renderObjectn我一般都知道3d的方法,但我不擅长WebGL或three.js然而。这个堆栈是否意味着我的材质每帧都要重新初始化?我能做些什么吗?还是我期待着?n我的代码在常规渲染和拾取渲染(到渲染目标)之间交替进行。garyo在第2篇文章中解决了这个问题,我找到了。我的“拾取渲染”(pick render)渲染到一个渲染目标(正如您所期望的),而该渲染目标是一个纹理(当然),我需要将该纹理的编码设置为相同的sRGBEncoding以修复慢度。否则渲染器必须在每一帧切换编码,然后它必须重新编译…nAha,我找到了。我的“拾取渲染”(pick render)渲染到一个渲染目标(正如您所期望的),而该渲染目标是一个纹理(当然),我需要将该纹理的编码设置为相同的sRGBEncoding以修复慢度。否则,渲染器必须在每一帧切换编码,然后必须重建材质n I set renderer.encoding=sRGBEncoding, and now my framerate dropped to 3-4fpsn

three.js我设定了3-4fps 为WP2原创文章,链接:https://www.wp2.cn/three-js/three-js%e6%88%91%e8%ae%be%e5%ae%9a%e4%ba%863-4fps/