【发布时间】:2014-06-10 13:30:13
【问题描述】:
我试图弄清楚是什么决定了uniform samplerBuffer 指向的缓冲区对象。
假设我们有uniform samplerBuffer aBuffer,它的值为0; aBuffer 指向什么?
【问题讨论】:
-
纹理图像单元 0;我最近回答了一个类似的问题,我会指出你there。但基本上它引用绑定到该图像单元的纹理。
-
@Andon 换句话说它指向
GL_TEXTURE0? -
是的,
samplerBuffer与任何其他类型的采样器没有什么不同。真正唯一的独特之处在于,您在此示例中将绑定到GL_TEXTURE0的事物分配为glTexBuffer (...),而不是glTexImage2D (...)(在sampler2D的情况下)。好吧,当然,你必须使用texelFetch (...)。 -
@Andon 等等,我不知道。如果您确实使用
glTexImage2d()绑定了一些东西怎么办? -
那么它就不是缓冲纹理了。这就是这个问题的意义所在,对吧?
glTexImage2D (...)用于GL_TEXTURE_2D/sampler2D。glTexBuffer (...)代表GL_TEXTURE_BUFFER/samplerBuffer。