Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone OpenGL ES 2.0衍生纹理_Iphone_Objective C_Opengl Es_Glsl - Fatal编程技术网

Iphone OpenGL ES 2.0衍生纹理

Iphone OpenGL ES 2.0衍生纹理,iphone,objective-c,opengl-es,glsl,Iphone,Objective C,Opengl Es,Glsl,我有一个基于OpenGL ES 2.0的iPhone应用程序,我运行它时遇到了一些OpenGL ES问题 我正在尝试合成一个片段着色器,用于计算/显示输入纹理的导数。我的片段着色器代码是: varying highp vec2 textureCoordinate; uniform sampler2D inputImageTexture; uniform sampler2D inputImageTexture2; void main(void) { mediump vec4 d

我有一个基于OpenGL ES 2.0的iPhone应用程序,我运行它时遇到了一些OpenGL ES问题

我正在尝试合成一个片段着色器,用于计算/显示输入纹理的导数。我的片段着色器代码是:

 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的导数,然后合并它们,看看输入纹理是如何成为图像的


我已经为此挣扎了几天了,所以如果您有任何建议,我将不胜感激

所有支持ES 2.0的iOS硬件都将支持GL_OES_标准_衍生产品扩展:

然而,你并不是“免费”得到它的。在片段着色器中,必须在顶部(从)添加以下内容:

第一个答案的注释中的所有信息基本上都是准确的,但如果没有这一条,您将继续得到以下错误:

ERROR: 0:15: Call to undeclared function 'dFdx'
ERROR: 0:16: Call to undeclared function 'dFdy'

这让我陷入了一个循环,但一旦我添加了enable行,它似乎在设备和模拟器上都能工作(实际上还没有评估它在这两个方面都能工作,但它确实可以编译)。

不幸的是,
dFdx()
不是OpenGL ES 2.0中的内置函数。这些功能的完整列表可以在这张方便的参考卡中找到:实际上,我可能在这方面有点错。看起来iOS设备上可能存在
GL\u OES\u standard\u衍生工具
扩展,支持以下内容:。然而,模拟器似乎缺乏这种支持。“然而,这使编译失败。”当它编译失败时,它是否给了您某种错误消息?你能发布那个错误消息吗?我可以确认我的iPhone 4上出现了
GL\u OES\u standard\u衍生品
,上次我查看了支持的扩展列表。所以我认为Brad的第二个评论是一个答案。这也将允许使用fwidth函数。这正是我需要知道的。谢谢
ERROR: 0:15: Call to undeclared function 'dFdx'
ERROR: 0:16: Call to undeclared function 'dFdy'