#version 400
// Uniforms
uniform samplerCube texture0; // Cube map
uniform vec3 cameraposition;
uniform vec2 camerarange;
// Inputs
in vec4 ex_vertexposition;
in float ex_selectionstate;
in vec3 ex_VertexCameraPosition;
out vec4 fragData0;
out vec4 fragData1;
out vec4 fragData2;
out vec4 fragData3;
void main(void)
{
vec3 cubecoord = normalize(ex_vertexposition.xyz - cameraposition);
vec4 outcolor = texture(texture0, cubecoord);
// Calcula la distancia desde la cámara al fragmento
float distanceToCamera = length(ex_vertexposition.xyz - ex_VertexCameraPosition);
// Compara la distancia con el rango de la cámara para determinar si está detrás de otros objetos
bool isBehind = distanceToCamera > camerarange.x && distanceToCamera < camerarange.y;
if (isBehind) {
// Si el fragmento está detrás de otros objetos, dibuja el skybox
fragData0 = outcolor * (1.0 - ex_selectionstate) + ex_selectionstate * (outcolor * 0.5 + vec4(0.5, 0.0, 0.0, 0.0));
} else {
// Si el fragmento está delante de otros objetos, no dibujes nada
discard;
}
fragData1 = vec4(0.0);
fragData2 = vec4(0.0, 0.0, 0.0, 0.0);
fragData3 = vec4(ex_VertexCameraPosition, 1.0);
}
Looking at the skybox sahder, but everything seems to be ok, chatgpt tells me it is the occlusion system.