28 lines
725 B
GLSL
28 lines
725 B
GLSL
#import "Common/ShaderLib/GLSLCompat.glsllib"
|
|
|
|
uniform vec4 m_Diffuse;
|
|
uniform sampler2D m_LeafMap;
|
|
uniform bool m_HasLeafMap;
|
|
|
|
in vec2 texCoord;
|
|
in vec3 worldNormal;
|
|
|
|
void main() {
|
|
vec3 baseColor;
|
|
|
|
if (m_HasLeafMap) {
|
|
vec4 tex = texture2D(m_LeafMap, texCoord);
|
|
if (tex.a < 0.5) discard;
|
|
baseColor = tex.rgb * m_Diffuse.rgb;
|
|
} else {
|
|
// Fallback: kreisförmiger Clip
|
|
vec2 uv = texCoord * 2.0 - 1.0;
|
|
if (dot(uv, uv) > 0.95) discard;
|
|
float edge = 1.0 - dot(uv, uv);
|
|
baseColor = m_Diffuse.rgb * (0.7 + 0.3 * edge);
|
|
}
|
|
|
|
// Leaves transmit light — no directional shading, uniform brightness
|
|
gl_FragColor = vec4(baseColor, 1.0);
|
|
}
|