opengl - 如何使这段代码在 Mesa3d 上工作?

标签 opengl glsl mesa

此 GLSL 代码在 ATI 的 OpenGL 中无警告地编译和运行:

void main()
{
  vec4 tmp = gl_ModelViewMatrix * gl_Vertex;
  tmp.xyz = tmp.xyz / (1 - tmp.w);
  tmp.w = 1;
  gl_Position = gl_ProjectionMatrix * tmp;
  gl_FrontColor = gl_Color;
}

为什么它会因台面而失败?如何解密该错误消息并使其与 Mesa 的实现兼容?

Compilation log:
0:1(88): error: Could not implicitly convert operands to arithmetic operator
0:1(89): error: Operands to arithmetic operators must be numeric
0:1(97): error: type mismatch

最佳答案

尝试将您的 1 更改为 1.0

关于opengl - 如何使这段代码在 Mesa3d 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5159817/

相关文章:

c# - 简单的 OpenTK 着色器不工作

c++ - GLSL 着色器无法编译,有人可以帮我找出原因吗?

opengl - 我可以在没有显卡或 MESA 的计算机上编程/编译 OpenGL 4.0 代码吗?

opengl - 具有多种纹理的 VBO

c++ - 如何将纹理应用于 openscenegraph 中的模型?

java - 我在 LWJGL 中绘制四边形时做错了什么?

opengl - 像素完美的纹理映射与现代 OpenGL

opengl - 如何使用 CMake 在 Ubuntu 中查找和链接 OpenGL(mesa) 包

opengl - 在 Raspberry Pi 上运行 Open GL 程序?

c++ - 如何从手动矩阵操作中推断平移、剪切等?