1

最近、WindowsマシンでOpenGLを使用して基本的なレンダリングエンジンを作成しましたが、その場合はすべて正常に動作します。残念ながら、Ubuntu 12.04を実行しているラップトップにそれを持ち込もうとしたとき、いくつかの問題がありました。最初はリンク設定とライブラリが問題でしたが、すべてを整理することができました。現在の問題は、GLSLシェーダーのコンパイルにあります。頂点シェーダーとフラグメントシェーダーの両方をコンパイルすると、次のエラーが発生します。

'0:2(14):プリプロセッサエラー:構文エラー、予期しない識別子、NEWLINEを期待しています
'

これは私の頂点シェーダーからのコードです。

#version 330 core

layout(location = 0) in vec3 position;
layout(location = 1) in vec2 uv;
layout(location = 2) in vec3 normal;

struct DirectionalLight{
    vec3 direction;
    vec3 color;
    vec3 ambient;
};

uniform mat4 modelMatrix;
uniform mat4 viewMatrix;
uniform mat4 projectionMatrix;
uniform DirectionalLight dLight;

out vec2 iUv;
out vec3 iPosition;
out vec3 iNormal;
out vec3 lightDir;

void main()
{
    iUv = uv;
    iPosition = vec3(viewMatrix * modelMatrix * vec4(position,1));
    iNormal = normal;
    lightDir = vec3(normalize(viewMatrix * vec4(dLight.direction, 0)));

    gl_Position =  projectionMatrix * viewMatrix * modelMatrix * vec4(position,1);
}

何か案は?

4

2 に答える 2