mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-12-12 09:11:18 -05:00
29 lines
741 B
Text
29 lines
741 B
Text
|
#version 300 es
|
||
|
|
||
|
// A very cut down variant of Unity's directional lightmap;
|
||
|
// has an inline medium precision matrix constructor,
|
||
|
// but even if dirBasis is declared as mediump
|
||
|
// some code was promoting it to high precision.
|
||
|
|
||
|
out mediump vec4 _glesFragData;
|
||
|
|
||
|
mat3 transposem3(mat3 m) {
|
||
|
return mat3( m[0][0], m[1][0], m[2][0],
|
||
|
m[0][1], m[1][1], m[2][1],
|
||
|
m[0][2], m[1][2], m[2][2]);
|
||
|
}
|
||
|
|
||
|
in mediump vec3 inNormal;
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
mediump mat3 dirBasis = transposem3(mat3(
|
||
|
vec3( 0.8164966, 0.0, 0.5773503),
|
||
|
vec3( -0.4082483, 0.7071068, 0.5773503),
|
||
|
vec3( -0.4082483, -0.7071068, 0.5773503)));
|
||
|
mediump vec4 c;
|
||
|
c.xyz = dirBasis * inNormal;
|
||
|
c.w = 0.0;
|
||
|
_glesFragData = c;
|
||
|
}
|