在OpenGL中,texelfetch()和imageLoad()哪个更高效?

cgvd09ve  于 2022-12-29  发布在  其他
关注(0)|答案(1)|浏览(346)
    • bounty将在5天后过期**。回答此问题可获得+50声望奖励。Moonchild希望引起更多人关注此问题。

如果我只需要从BO中读取数据,我有两种方法,第一种是将数据加载到buffer textures中,然后在着色器中通过texelfetch()读取数据,第二种是将数据加载到buffer textures中,并将buffer textures绑定到image unit中,然后通过imageLoad()读取数据,我想知道在数据量很大的情况下,哪种方法效率更高?

z2acfund

z2acfund1#

使用texelfetch从缓冲区纹理阅读数据()通常比将缓冲区纹理绑定到图像单元并使用imageLoad更有效()来读取数据。这是因为texelfetch()是专门为阅读纹理数据而设计的,并且可以为此目的而优化,图像加载时()更通用,用于从缓冲区纹理读取数据时可能效率不高。texelfetch和texelfetch的选择()和imageLoad()将取决于您的特定用例以及您希望如何访问缓冲区纹理中的数据。

相关问题