Alt*_*cho 5 opengl macos macros glsl
我有一个简单的顶点着色器:
precision mediump float;
attribute vec4 position;
attribute vec4 color;
varying vec4 f_color;
uniform mat4 projection;
uniform mat4 modelView;
void main(void) {
gl_Position = projection * modelView * position;
f_color = color;
f_texCoord = texCoord;
}
Run Code Online (Sandbox Code Playgroud)
这无法编译,并指出(使用 getShaderInfoLog()):
ERROR: 0:1: 'precision' : syntax error syntax error
Run Code Online (Sandbox Code Playgroud)
如果我删除带有精度说明符的行,它编译得很好。
系统:
OS: Mac OX 10.9.2
GPU: NVIDIA GeForce 320M 256 MB
GLSL Ver.: 1.20
Run Code Online (Sandbox Code Playgroud)
有人帮帮我吧。
您已经找到了解决问题的方法:只需删除带有精度限定符的行即可。
更大的问题是您还没有决定使用哪个版本的 OpenGL。您提供的 GLSL 示例似乎适用于与 OpenGL ES相关的旧版本 GLSL ,它是为移动设备设计的。由于您实际上是在台式机/笔记本电脑上运行,因此您需要“正常”OpenGL。您观察到的错误是两者之间的差异造成的。
一般来说,您希望使用目标系统支持的最新版本的 OpenGL。现在可能是 OpenGL 3.3(以及 GLSL 3.3)。
| 归档时间: |
|
| 查看次数: |
3239 次 |
| 最近记录: |