私は現在、Qt 5 でいくつかの opengl コンポーネントを試しています。QtCreator 2.6.2 を使用して Mac OSX 10.8 でコンパイルしています。しかし、QGLShader を使用してロードしようとすると、コンパイルに失敗し、ログ関数はエラー メッセージを返しません。
頂点シェーダー:
attribute vec4 in_position;
attribute vec3 in_normal;
attribute vec3 in_color;
attribute vec2 in_tex;
uniform vec4 lightPosition;
varying vec2 texCoords;
varying vec3 normal;
varying vec3 vertToLightDir;
void main(void)
{
gl_Position = gl_ModelViewProjectionMatrix * in_position;
vec4 worldVert = gl_ModelViewMatrix * in_position;
vertToLightDir = normalize(vec3(lightPosition - worldVert));
normal = gl_NormalMatrix * in_normal;
texCoords = in_tex;
}
フラグメント シェーダー:
uniform sampler2D texture0;
uniform vec4 lightColor;
varying vec2 texCoords;
varying vec3 normal;
varying vec3 vertToLightDir;
void main(void)
{
float lightIntensity = clamp(dot(normal, vertToLightDir), 0.0, 1.0);
gl_FragColor = (texture2D(texture0, texCoords) + (lightColor * lightIntensity)) * 0.5;
}
シェーダーをロードするコード:
QGLShader fragShader(QGLShader::Fragment);
bool success = fragShader.compileSourceFile("Fragment.glsl");
qDebug() << fragShader.log();
デバッガーを使用して、compileSourceFile 関数が false を返すことを確認しました。また、access("Fragment.glsl", F_OK) を使用して、プログラムがファイルを見つけることができたかどうかを確認しました。頂点シェーダー ファイルについても同様です。それらがコンパイルされない理由を見つけることができないようです。私が間違っていることはありますか?