【问题标题】:ThreeJS Vertices and Faces optimizationThreeJS 顶点和面优化
【发布时间】:2020-03-25 15:46:04
【问题描述】:

我有一个 BufferGeometry,比如说..,它的顶点、面和绘制计数分别为 967、210 和 1。现在,当我将几何实例增加到 100 时,相应的顶点、面和绘制计数分别为 9670、2000 和1. 在缓冲几何的顶点和面随着实例的速率加倍的情况下,绘制调用保持不变。

因此,当我有一些几何图形中包含 15000 个实例且单个 buffergeoemtry 的顶点数超过 1000 时,值会升高得非常高,这反过来又会导致我的浏览器崩溃并且基本的轨道控制功能滞后。

p>

我只是在 Interleavebuffer 中渲染属性,从 Revit / CAD Team 获取数据。

问题是为什么顶点数应该增加,因为它们只是实例,我认为绘制调用可能对性能影响最大,而顶点/面在优化中也起着重要作用。

任何人都可以建议我解决上述问题。提前致谢。

【问题讨论】:

    标签: three.js


    【解决方案1】:

    是的,绘图调用的数量会对 WebGL 应用的性能产生重大影响。使用实例化渲染是减少绘制调用次数从而提高性能的一种可能方法。

    但是,实例化渲染不会减少必须在顶点着色器中处理的顶点数量。从某种意义上说,您只是降低了 CPU 和 GPU 之间发生的通信量(因为您可以使用单个 WebGL 绘制命令告诉 GPU 渲染许多实例)。但不可能节省着色器中的处理时间。

    【讨论】:

    • 这里的顶点着色器是什么意思! @穆根87。您是指我为 interleavedbuffer 获得的数据吗?
    • 不,我指的是 GPU 上的顶点着色器。只需用谷歌搜索主题,事情就会变得清晰。
    猜你喜欢
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    相关资源
    最近更新 更多