我创建了一个基于three.js的web应用程序来展示3d tiles。您可以在此链接后找到展示:https://www.karak.at/workbench/dd6228117c6faec166b208710b5a52d5
它是如何工作的:使用InstancedMesh多次加载和克隆OBJ文件以创建瓦片墙。接下来,将一个点和一个聚光灯添加到场景中。灯光的位置对当前鼠标位置起作用。场景将在mousemove上重新渲染。
渲染在基于M1的Mac上的所有浏览器和基于英特尔的Mac上的所有浏览器(除了Chrome)中都非常流畅。在基于英特尔的Mac电脑上使用Chrome 98版,电脑工作量很大,风扇上升,帧率下降,在最坏的情况下,应用程序崩溃。
以下是我的渲染器设置:
this.renderer = new THREE.WebGLRenderer({
antialias: AA,
powerPreference: "high-performance",
depth: true,
alpha: false,
stencil: false
});
下面是一个用于在隔离环境中展示问题的笔:https://codepen.io/Huangart/pen/VwrVjpj
我的应用程序的实现方面有什么问题吗?这是已知问题吗?如何解决Chrome的问题?
1条答案
按热度按时间vof42yt11#
我在同一个硬件上遇到了同样的问题。
我认为这与这个bug有关:https://bugs.chromium.org/p/chromium/issues/detail?id=1245448
将
about:flags
上的ANGLE图形后端标志更改为Metal
,在我的机器上大大提高了性能。