2017-10-02 1 views
0

Je suis en train de compiler des shaders dans java lwjgl 2.9, et si je cours ma partie, elle ne peut pas compiler des shaders. question est pourquoi shader ne reconise pas const mot-clé, si je supprime const puis il jette erreur float n'est pas reconisé ou quelque chose comme ça.java lwjgl 2 erreur de shader

ERROR: 0:24: 'const' : syntax error syntax error. Could not compile shader!

codes shader

Terrain Vertex shader

#version 150 

in vec3 position; 
in vec2 textureCoordinates; 
in vec3 normal; 

out vec2 pass_textureCoordinates; 
out vec3 surfaceNormal; 
out vec3 toLightVector[4]; 
out vec3 toCameraVector; 
out float visibility; 
out vec4 shadowCoords; 

uniform mat4 transformationMatrix; 
uniform mat4 projectionMatrix; 
uniform mat4 viewMatrix; 
uniform vec3 lightPosition[4]; 

uniform mat4 toShadowMapSpace; 

const float density = 0; 
const float gradient = 5.0; 
const float shadowDistance = 150.0 
const float transitionDistance = 10.0; 

uniform vec4 plane; 

void main(void){ 

vec4 worldPosition = transformationMatrix * vec4(position,1.0); 
shadowCoords = toShadowMapSpace * worldPosition; 

gl_ClipDistance[0] = dot(worldPosition, plane); 

vec4 positionRelativeToCam = viewMatrix * worldPosition; 
gl_Position = projectionMatrix * positionRelativeToCam; 
pass_textureCoordinates = textureCoordinates; 

surfaceNormal = (transformationMatrix * vec4(normal,0.0)).xyz; 
for(int i=0;i<4;i++){ 
    toLightVector[i] = lightPosition[i] - worldPosition.xyz; 
} 
toCameraVector = (inverse(viewMatrix) * vec4(0.0,0.0,0.0,1.0)).xyz - worldPosition.xyz; 

float distance = length(positionRelativeToCam.xyz); 
visibility = exp(-pow((distance*density),gradient)); 
visibility = clamp(visibility,0.0,1.0); 

distance = distance - (shadowDistance - transitionDistance); 
distance = distance/transitionDistance; 
shadowCoords.w = clamp(1.0-distance, 0.0, 1.0); 
} 

shader fragment du relief

#version 330 

in vec2 textureCoords; 

out vec4 out_colour; 

uniform sampler2D modelTexture; 

void main(void){ 

float alpha = texture(modelTexture, textureCoords).a; 
if(alpha < 0.5){ 
discard; 
} 

out_colour = vec4(1.0); 

} 

Répondre

2
const float gradient = 5.0; 
const float shadowDistance = 150.0 
           ^where's the semicolon? 
const float transitionDistance = 10.0; 
+0

En fait je l'ai figuré chez moi, mais merci pour la réponse. – MemesTV