Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.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
GLSL:iPhone应用程序无法访问内置属性?_Iphone_Ios_Opengl Es_Glsl_Opengl Es 2.0 - Fatal编程技术网

GLSL:iPhone应用程序无法访问内置属性?

GLSL:iPhone应用程序无法访问内置属性?,iphone,ios,opengl-es,glsl,opengl-es-2.0,Iphone,Ios,Opengl Es,Glsl,Opengl Es 2.0,我在这里真的很绝望。我正在使用Xcode,试图在iPhone上实现一些OpenGL的东西。我必须为Phong Lighting编写一个着色器。我甚至声明了我的几何体(顶点、索引、计算等),并将各自的参数作为属性传递给着色器(用GLSL编写)。使用这些属性可以很好地工作,一些真正基本的着色器程序可以正确编译并提供预期的输出 现在我尝试从一些更高级的计算开始,为此我需要使用GLSL的一些内置属性,即“gl_NormalMatrix”,但每当我尝试时,程序就会崩溃,我得到一个“错误:0:3:使用未声明

我在这里真的很绝望。我正在使用Xcode,试图在iPhone上实现一些OpenGL的东西。我必须为Phong Lighting编写一个着色器。我甚至声明了我的几何体(顶点、索引、计算等),并将各自的参数作为属性传递给着色器(用GLSL编写)。使用这些属性可以很好地工作,一些真正基本的着色器程序可以正确编译并提供预期的输出

现在我尝试从一些更高级的计算开始,为此我需要使用GLSL的一些内置属性,即“gl_NormalMatrix”,但每当我尝试时,程序就会崩溃,我得到一个“错误:0:3:使用未声明的标识符‘gl_NormalMatrix’”。 无论何时使用任何内置属性(如gl_顶点、gl_法线等),都会发生相同的情况

这些属性在iPhone的GLSL中不可用,还是我遗漏了什么?也许我还没有完全理解这是怎么回事。如前所述,将我自己的顶点属性传递到着色器中效果很好,我还想知道程序如何“自己”知道“正确的值”——因此内置属性的整个概念对我来说仍然有点混乱。但每当我试图运行我在网上找到的一些着色器以查看是否发生了什么事情时,我都会抛出这些错误,即使其他人在编写着色器时似乎广泛使用内置属性

我真的希望这里有人能解释一下。万分感谢


Julia

这些属性在GL ES中不可用,无论是在iPhone上还是其他地方。WebGL也是如此。您需要编写自己的矩阵代码,如果您只支持iOS 5+,则需要使用GLKit,并为自己提供属性。有关ES 2.0的简要概述,请参见,其中列出了所有可用的内置特殊变量,如下所示:

  • gl_位置
  • gl_点大小
  • 格卢弗拉古德酒店
  • 正面
  • 格卢波因库德酒店
  • 格拉夫拉格色罗
  • 弗拉格达塔[北]

GLKit的数学工具非常好,因为它内置并使用ARM的NEON SIMD单元。我认为有足够的理由在所有新的GL项目中指定IOS 5作为最小值。

< P>这些属性在GL ES中是不可用的,无论是在iPhone上还是在其他地方。WebGL也是如此。您需要编写自己的矩阵代码,如果您只支持iOS 5+,则需要使用GLKit,并为自己提供属性。有关ES 2.0的简要概述,请参见,其中列出了所有可用的内置特殊变量,如下所示:

  • gl_位置
  • gl_点大小
  • 格卢弗拉古德酒店
  • 正面
  • 格卢波因库德酒店
  • 格拉夫拉格色罗
  • 弗拉格达塔[北]

GLKit的数学工具非常好,因为它内置并使用ARM的NEON SIMD单元。我认为这是在所有新的GL项目中指定iOS 5为最小值的充分理由。

谢谢,这确实有很多意义。谢谢,我已经找了一些时间了。谢谢,这确实有很多意义。谢谢,我已经找了一些时间了。