This repository has been archived on 2023-10-09. You can view files and clone it, but cannot push or open issues or pull requests.
Files
blender-archive/source/blender/draw/engines/eevee/shaders/octahedron_lib.glsl
Campbell Barton e12c08e8d1 ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.

For details on usage and instructions for migrating branches
without conflicts, see:

https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-17 06:21:24 +02:00

39 lines
990 B
GLSL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

vec2 mapping_octahedron(vec3 cubevec, vec2 texel_size)
{
/* projection onto octahedron */
cubevec /= dot(vec3(1.0), abs(cubevec));
/* out-folding of the downward faces */
if (cubevec.z < 0.0) {
vec2 cubevec_sign = step(0.0, cubevec.xy) * 2.0 - 1.0;
cubevec.xy = (1.0 - abs(cubevec.yx)) * cubevec_sign;
}
/* mapping to [0;1]ˆ2 texture space */
vec2 uvs = cubevec.xy * (0.5) + 0.5;
/* edge filtering fix */
uvs = (1.0 - 2.0 * texel_size) * uvs + texel_size;
return uvs;
}
vec4 textureLod_octahedron(sampler2DArray tex, vec4 cubevec, float lod, float lod_max)
{
vec2 texelSize = 1.0 / vec2(textureSize(tex, int(lod_max)));
vec2 uvs = mapping_octahedron(cubevec.xyz, texelSize);
return textureLod(tex, vec3(uvs, cubevec.w), lod);
}
vec4 texture_octahedron(sampler2DArray tex, vec4 cubevec)
{
vec2 texelSize = 1.0 / vec2(textureSize(tex, 0));
vec2 uvs = mapping_octahedron(cubevec.xyz, texelSize);
return texture(tex, vec3(uvs, cubevec.w));
}