gpt4 book ai didi

opengl - 上传 mat4 属性 (VBO) 与 mat4 制服 (UBO) 的性能

转载 作者:行者123 更新时间:2023-12-04 23:00:52 26 4
gpt4 key购买 nike

如果我正在进行实例化渲染并且需要将每个实例一个 mat4 发送到顶点着色器,对于大量实例,哪种方法可能更快?

  • 使用实例化的 mat4 属性 (glVertexAttribDivisor) 并将 mat4s 发送到 VBO 每帧 (glBufferData)
  • 在统一块中使用 mat4 统一数组,使用统一缓冲区对象更新每帧数组,并使用 gl_InstanceID 作为数组索引访问适当的 mat4
  • 最佳答案

    根据 robinjam、GuyRT 和 Brett Hale 的评论/回答,我做了一些测试。
    测试渲染了 40000 个相同网格(三角形)的实例,每帧更新每个实例的模型矩阵。我的 GPU 是 GeForce GTX 460 SE。

    这是我的结果:

  • mat4 制服(通过 glUniformMatrix4fv 更新),每次绘制调用有 254 个实例(由于统一限制而受到限制)= 160 fps
  • 块中的 mat4 统一(通过 UBO 更新),每个绘制调用有 254 个实例(由于统一限制而受到限制)= 260 fps
  • mat4 属性(通过 VBO 更新),每次绘制调用有 40000 个实例 = 287 fps
  • 关于opengl - 上传 mat4 属性 (VBO) 与 mat4 制服 (UBO) 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25022184/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com