我有一个基于OpenGL ES 2.0的iPhone应用程序,我正在运行一些OpenGL ES故障。OpenGL ES 2.0衍生纹理
我想complile片段着色器计算/显示输入纹理的派生。我的片段着色器代码是:
varying highp vec2 textureCoordinate;
uniform sampler2D inputImageTexture;
uniform sampler2D inputImageTexture2;
void main(void)
{
mediump vec4 derivData = vec4(dFdx(texture2D(inputImageTexture, textureCoordinate).xyz, 0.0);
gl_FragColor = derivData;
}
但是,编译失败。如果我拿出dFdX,它编译得很好。
有没有人有这方面的经验?我最终还想计算关于Y的导数,然后合并它们,看看输入纹理是如何成像的。
我一直在这里挣扎几天,所以你有任何意见将不胜感激!
不幸的是,'dFdx()'不是OpenGL ES 2.0中的内置函数。这些功能的完整列表可以在这个方便的参考卡中找到:http://www.khronos.org/opengles/sdk/docs/reference_cards/OpenGL-ES-2_0-Reference-card.pdf – 2012-03-12 17:35:36
其实,我可能是有点错了。它看起来像'GL_OES_standard_derivatives'扩展名可能出现在iOS设备上,为此提供支持:http://stackoverflow.com/questions/5959542/ios-simulator-gl-oes-standard-derivatives。但是,模拟器似乎缺乏这种支持。 – 2012-03-12 17:40:14
“但是,编译失败。”当它编译失败时,它是否会给你一些错误信息?你能发布该错误消息吗? – 2012-03-12 17:42:33