//glsl version 4.5 #version 450 #extension GL_EXT_nonuniform_qualifier : require layout (location = 0) in vec3 in_color; layout (location = 1) in vec2 texCoord; layout (location = 2) in vec3 worldPosition; layout (location = 3) flat in uint textureId; layout (location = 4) flat in uint baseInstance; layout (location = 0) out vec4 outFragColor; #include "globalSet.glsl" #include "sharedSsbo.glsl" void main() { // outFragColor = vec4(in_color + 0.25 * sceneData.ambientColor.xyz,1.0f); // outFragColor = vec4(texCoord.x, texCoord.y, 0.5f, 1.0f); // vec4 color = texture(tex1, texCoord).xyzw; vec4 color = texture(gTex[textureId], texCoord).xyzw; if(color.w < 0.05f) { discard; } float cameraDist = length(cameraData.position.xyz - worldPosition); float opacity = clamp((1.f) - (clamp(cameraDist - 300, 0, 300) / 300.f), 0.f, 1.f); //float opacity = 1.0; if(opacity < 0.05f) { discard; } // outFragColor = vec4(mix(sceneData.fogColor.xyz, color.xyz, opacity), color.w); outFragColor = vec4(color.xyz, opacity); //vec3 mixed = mix(normalize(vec3(0.5, 0.3, 0.2)) * 3, vec3(0.2, 0.2, 1) * 3, texCoord.y * 2); //outFragColor = vec4(color.xyz, 1.0f); //outFragColor = vec4(0.0, 1.0, 0.0, 1.0f); }