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);
}
En fait je l'ai figuré chez moi, mais merci pour la réponse. – MemesTV