1. 首页
  2. three.js

three.js关闭对象,帧速率将降低

three.jsn当我的相机靠近一个物体时,场景会被卡住,帧速率会严重下降。原因是什么?n这可能是由于在该对象上使用PBR材质(MeshStandardMaterial/MeshPhysicalMaterial)造成的。这两种材质的渲染非常耗时,因此屏幕上包含它们的像素越多,在每一帧上渲染整个屏幕所需的时间就越长。n如果可能,对于低端设备,请考虑使用MeshLambertMaterial 1(用于粗糙表面)/MeshPhongMaterial(用于有光泽的表面)而不是PBR材质。您也可以尝试限制场景中的灯光数量。n(或“片段”;但使用像素更容易想象和理解)n但我使用编辑器加载相同的模型,但不会有这样的问题。n在这种情况下,如果没有看到codepen/live演示,很难说是什么原因造成了它,我仍然会考虑至少更改材料-只是为了确认这不是问题。n你能访问这个地址吗?http://192.168.18.73:8080/2图像1523×805 58.8 KBn您可以将模型拖动到场景中n是否找到帧丢失的原因?nhttp://192.168.18.73:8080/n这是您自己本地网络上的内部IP地址。除了你自己和你网络中的人之外(如果你的防火墙允许的话),没有人可以访问它。Qiumeng12:n但是我使用编辑器加载相同的模型,但是不会有这样的问题。n也许你的灯太多了?这些增加了片段着色器的成本,当您放大时,片段着色器会做更多的工作。不过猜猜看,最好是演示。n你能访问这个地址吗?https://84n6t.csb.app/2nhttps://84n6t.csb.app/4n可以访问吗?n我可以访问这个,但目前没有看到任何对象:屏幕截图2021-08-11,10.42.30 AM1327×909 38.8 KB图像1920×969 65.1 KBn您可以将模型拖到场景中n我不知道帧速率是什么,也不知道当我在电脑上放大时,它似乎不会减少很多,但一般来说,如果你用MeshStandardMaterial(这就是这个模型使用的)来“填充屏幕”,这不太可能会降低你的帧速率。许多其他因素也可能会起作用,例如渲染器配置或IBL,但我认为,按照@mjurczyk的建议,测试更便宜的材料是个好主意。图像1920×969 175 KBn图像1920×969 64.4 KBn帧速率是halvedhttps://95m8e.csb.app/2图像1509×840 36.3 KBn我没有注意到任何性能下降,但FPS计数器在哪里?n对不起,我刚刚删除了帧速率监视器的dom图像1920×969 68.6 KBn图像1920×969 58 KBn我添加了帧速率监视器的dom。当镜头靠近时,您可以尝试拖动对象,您可以感觉到帧速率明显下降n即使放大,它仍保持稳定的60帧/秒,至少在我的电脑上是这样(2012 Macbook Pro)。但并非所有的计算机都是一样的。早期的评论仍然是提高帧速率的最有可能的方法,不管你的计算机是什么-如果MeshStandardMaterial在填充屏幕时太贵,请使用像MeshPhongMaterial这样更便宜的材料n Close the object and the frame rate decreasesn

three.js关闭对象,帧速率将降低 为WP2原创文章,链接:https://www.wp2.cn/three-js/three-js%e5%85%b3%e9%97%ad%e5%af%b9%e8%b1%a1%ef%bc%8c%e5%b8%a7%e9%80%9f%e7%8e%87%e5%b0%86%e9%99%8d%e4%bd%8e/