SHADER
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
group_uniforms NormalMap;
|
||||
uniform float normal_scale : hint_range(-16,16) = 1.0;
|
||||
uniform sampler2D normal_map : hint_normal;
|
||||
group_uniforms;
|
||||
|
||||
struct NormalData {
|
||||
vec3 vector;
|
||||
vec3 map;
|
||||
float depth;
|
||||
};
|
||||
|
||||
NormalData normal_map_fragment(
|
||||
vec2 uv,
|
||||
vec3 normal,
|
||||
vec3 tangent,
|
||||
vec3 binormal,
|
||||
) {
|
||||
vec3 map = texture(normal_map, uv).rgb;
|
||||
vec3 vector = map;
|
||||
vector.xy = vector.xy * 2.0 - 1.0;
|
||||
vector.z = sqrt(max(0.0, 1.0 - dot(vector.xy, vector.xy)));
|
||||
vec3 ref_normal = normalize(mix(
|
||||
normal,
|
||||
tangent * vector.x + binormal * vector.y + normal * vector.z,
|
||||
normal_scale
|
||||
));
|
||||
return NormalData(vector, map, normal_scale);
|
||||
}
|
||||
Reference in New Issue
Block a user