20 float p = sqrt ((n.z * 8.0) + 8.0);
21 float x = (n.x / p) + 0.5;
22 float y = (n.y / p) + 0.5;
41 float f = dot (fn, fn);
42 float g = sqrt (1.0 - (f / 4.0));
45 float z = 1.0 - (f / 2.0);
46 return vec3 (x, y, z);
62 vec3 p = cross (n, t.xyz);
78 vec3 rgb = texture (map, uv).xyz;
79 return (rgb * 2.0) + (-1.0);
98 mat3x3 mat = mat3x3 (t, b, n);
99 return normalize (mat * m);
116 const sampler2D t_normal,
123 vec3 nn = normalize (n);
124 vec3 nt = normalize (t);
125 vec3 nb = normalize (b);
145 const sampler2D t_normal,
146 const mat3x3 m_normal,
153 return normalize (m_normal * nl);
156 #endif // R2_NORMALS_H vec3 R2_normalsBumpLocal(const sampler2D t_normal, const vec3 n, const vec3 t, const vec3 b, const vec2 uv)
vec3 R2_normalsBitangent(const vec3 n, const vec4 t)
vec3 R2_normalsTransform(const vec3 m, const vec3 t, const vec3 b, const vec3 n)
vec3 R2_normalsUnpack(const sampler2D map, const vec2 uv)
vec3 R2_normalsDecompress(const vec2 n)
vec2 R2_normalsCompress(const vec3 n)
vec3 R2_normalsBump(const sampler2D t_normal, const mat3x3 m_normal, const vec3 n, const vec3 t, const vec3 b, const vec2 uv)