WebGL:顶点着色器中的纹理访问?

sha*_*roz 7 textures webgl vertex-shader

是否可以使用WebGL 从顶点着色器中读取纹理?

我写了一个WebGL页面(只是为了试一试)并使用Chrome 7来测试它.我一升级到Chrome 8,就停止了工作.我仔细检查了webgl是否已启用.错误是:

'texture2D':找不到匹配的重载函数

当我用一个常量替换对texture2D的调用时,它可以工作.使用相同纹理的片段着色器中的纹理访问也起作用.

有人有主意吗?我特别担心升级Chrome会导致它崩溃.

更新:它适用于firefox 4 beta.我报告了Chrome的一个错误 - 问题65340

更新2:它现在可以在Firefox和Chrome中使用

小智 6

它并不是Chrome中的"漏洞".

顶点纹理访问不是Open GL ES 2的必需功能,Open GL ES 2是WebGL规范的基础.我怀疑可能发生的事情是,尽管您的基础GL驱动程序支持顶点纹理访问,但现在您已使用Angle切换到Chrome,而Angle不会将该顶点纹理访问报告为可用.

您可以使用Thatcher Ulrich来比较您的FF和Chrome版本

http://webgl-bench.appspot.com/

这有MAX_VERTEX_TEXTURE_IMAGE_UNITS参数(接近结尾)Chrome/Angle总是报告0.t

要检查的另一件事是你正在使用正确的texture2D语法 - 规范已更改,可能是FF支持旧语法的stil.