Opengl Shader基本计算

时间:2013-04-20 17:02:11

标签: opengl glsl

操作系统: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;
} 

1 个答案:

答案 0 :(得分: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);