【问题标题】:How to sort an instance buffer on GPU?如何在 GPU 上对实例缓冲区进行排序?
【发布时间】:2016-03-16 06:35:13
【问题描述】:

我正在使用实例化来绘制一大组广告牌。

我需要按到相机的距离对这些实例进行排序,以修复透明度伪影。

理想情况下,我想使用着色器对 GPU 上的实例缓冲区进行排序。

我读过的文章使用纹理对项目进行排序。但是可以直接对实例缓冲区进行排序吗?或者快速将数据从纹理传输到实例缓冲区?

【问题讨论】:

  • “使用纹理对项目进行排序”是什么意思?他们实际上在做什么?
  • 是的,密钥存储在纹理中。片段着色器比较键并将它们按排序顺序写入输出纹理中。这是来自 GPU Gems 的文章:http.developer.nvidia.com/GPUGems2/gpugems2_chapter46.html

标签: sorting opengl instance gpu


【解决方案1】:

好的,我刚刚找到了我丢失的部分。 (抱歉,我这几天一直在阅读文章,但没有找到方法)。

我必须将实例数据存储在缓冲区纹理中。 https://www.opengl.org/wiki/Buffer_Texture

它是一个缓冲区,也可以作为纹理访问。

因此它可以在排序时被片段着色器用作纹理。 并且在绘制实例时,它应该可以作为顶点着色器中的属性访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2013-05-10
    • 1970-01-01
    相关资源
    最近更新 更多