如果我只需要从BO中读取数据,我有两种方法,第一种是将数据加载到buffer textures中,然后在着色器中通过texelfetch()读取数据,第二种是将数据加载到buffer textures中,并将buffer textures绑定到image unit中,然后通过imageLoad()读取数据,我想知道在数据量很大的情况下,哪种方法效率更高?
texelfetch()
imageLoad()
z2acfund1#
使用texelfetch从缓冲区纹理阅读数据()通常比将缓冲区纹理绑定到图像单元并使用imageLoad更有效()来读取数据。这是因为texelfetch()是专门为阅读纹理数据而设计的,并且可以为此目的而优化,图像加载时()更通用,用于从缓冲区纹理读取数据时可能效率不高。texelfetch和texelfetch的选择()和imageLoad()将取决于您的特定用例以及您希望如何访问缓冲区纹理中的数据。
1条答案
按热度按时间z2acfund1#
使用texelfetch从缓冲区纹理阅读数据()通常比将缓冲区纹理绑定到图像单元并使用imageLoad更有效()来读取数据。这是因为texelfetch()是专门为阅读纹理数据而设计的,并且可以为此目的而优化,图像加载时()更通用,用于从缓冲区纹理读取数据时可能效率不高。texelfetch和texelfetch的选择()和imageLoad()将取决于您的特定用例以及您希望如何访问缓冲区纹理中的数据。