36 lines
781 B
Plaintext
36 lines
781 B
Plaintext
precision mediump float;
|
|
|
|
uniform sampler2D Texture;
|
|
varying vec2 texCoord;
|
|
varying vec3 vWorldPos;
|
|
|
|
uniform vec3 eyePos; // Позиция камеры
|
|
uniform vec3 targetPos; // Цель камеры
|
|
|
|
void main()
|
|
{
|
|
|
|
vec4 color;
|
|
|
|
vec3 dirToCamera = normalize(eyePos - targetPos);
|
|
vec3 dirToVertex = normalize(vWorldPos - targetPos);
|
|
|
|
float dotProduct = dot(dirToCamera, dirToVertex);
|
|
|
|
float distanceX = abs(vWorldPos.x);
|
|
float distanceZ = abs(vWorldPos.z);
|
|
|
|
//float distanceToCamera = length(vWorldPos - targetPos);
|
|
|
|
if ((distanceX > 380.0 || distanceZ > 380.0) && (dotProduct > 0.0) && vWorldPos.y > 10.0)
|
|
{
|
|
//color.rgba = vec4(1,0,0,1);
|
|
discard;
|
|
}
|
|
else
|
|
{
|
|
color.rgb = texture2D(Texture, texCoord).rgb;
|
|
color.a = 1.0;
|
|
}
|
|
gl_FragColor = color;
|
|
} |