Arbeiten aus dem URlaub
This commit is contained in:
29
ez-tree-jme/assets/Shaders/Tree.frag
Normal file
29
ez-tree-jme/assets/Shaders/Tree.frag
Normal file
@@ -0,0 +1,29 @@
|
||||
#import "Common/ShaderLib/GLSLCompat.glsllib"
|
||||
|
||||
uniform vec4 m_Diffuse;
|
||||
uniform sampler2D m_BarkMap;
|
||||
uniform bool m_HasBarkMap;
|
||||
|
||||
in vec2 texCoord;
|
||||
in vec3 worldNormal;
|
||||
|
||||
void main() {
|
||||
vec3 n = normalize(worldNormal);
|
||||
|
||||
// Sun at ~45° elevation from SE — good contrast on vertical cylinders
|
||||
vec3 sunDir = normalize(vec3(0.6, 0.7, 0.4));
|
||||
vec3 fillDir = normalize(vec3(-0.5, 0.3, -0.4));
|
||||
vec3 rimDir = normalize(vec3(-0.3, 0.5, 0.7));
|
||||
|
||||
float sun = max(dot(n, sunDir), 0.0);
|
||||
float fill = max(dot(n, fillDir), 0.0) * 0.22;
|
||||
float rim = max(dot(n, rimDir), 0.0) * 0.14;
|
||||
float sky = dot(n, vec3(0.0, 1.0, 0.0)) * 0.4 + 0.4; // [0.0, 0.8]
|
||||
float light = sun * 0.75 + fill + rim + sky * 0.09 + 0.05;
|
||||
|
||||
vec3 baseColor = m_HasBarkMap
|
||||
? texture2D(m_BarkMap, texCoord).rgb * m_Diffuse.rgb
|
||||
: m_Diffuse.rgb;
|
||||
|
||||
gl_FragColor = vec4(baseColor * clamp(light, 0.0, 1.0), m_Diffuse.a);
|
||||
}
|
||||
Reference in New Issue
Block a user