2012-08-24 50 views
1

我最近在Windows機器上使用OpenGL編寫了一個基本的渲染引擎,所有東西在這方面運行良好。不幸的是,當我嘗試將它運行到運行Ubuntu 12.04的筆記本電腦上時,出現了一些複雜情況,最初鏈接設置和庫是問題,但我設法排除了所有問題,目前的問題是編譯GLSL着色器,我編譯頂點和片段着色器,我得到以下錯誤。在Linux中編譯GLSL着色器時出錯

'0:2(14):預處理器錯誤:語法錯誤,意想不到的IDENTIFIER,期望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); 
} 

任何想法?

回答

-1

在我的情況下改變

#version 330 core 

#version 330 

幫助。

+0

您當然知道OP可能不想使用兼容性配置文件? –

0
  1. 嘗試在着色器程序結束時添加更多新的空白行。
  2. 嘗試使用文本編輯器(Ubuntu)創建代碼的新副本。