0

操作系统:Win7 VS 2012

显卡:Inter HD 4000

无需任何计算即可生成图像。但是,当我为预期投影添加 p*vPosition 时,我的窗口在执行程序后立即打开和关闭。谁能指出我做错了什么?我的 vshsader.glsl 代码如下所示:

#version 150

in  vec4 vPosition;
in  vec4 vColor;
out vec4 color;

void main() 
{
    float d = -10.0;
    mat4 p = mat4( 1.0, 0.0, 0.0, 0.0
                   0.0, 0.0, 1.0, 0.0
                   0.0, 0.0, 1.0, 0.0
                   0.0, 0.0, 1/d, 0.0);

  gl_Position = p*vPosition;
  color = vColor;
} 
4

1 回答 1

3

您在 mat4 构造函数的每行参数的末尾缺少逗号。

它应该是:

mat4 p = mat4( 1.0, 0.0, 0.0, 0.0, // <- end with comma
               0.0, 0.0, 1.0, 0.0, // <- end with comma
               0.0, 0.0, 1.0, 0.0, // <- end with comma
               0.0, 0.0, 1/d, 0.0);
于 2013-04-21T02:42:51.307 回答