| 12345678910111213141516171819202122232425262728293031323334 |
- vec2 PackNormal( in vec3 _normal )
- {
- /*original code:
- const float _scale = 1.7777;
- vec2 _enc = _normal.xy / (_normal.z+1.0);
- _enc /= _scale;
- _enc = _enc*0.5 + 0.5;
- return _enc;*/
- const float _scale = 1.7777;
- float scalar1 = (_normal.z+1.0)*(_scale*2.0);
- return _normal.xy / scalar1 + 0.5;
- }
- vec3 UnpackNormal( in vec2 _enc )
- {
- /*original code:
- float _scale = 1.7777;
- vec3 _nn = vec3( _enc*vec2(2.0*_scale, 2.0*_scale) + vec2(-_scale, -_scale), 1.0 );
- float _g = 2.0 / dot(_nn.xyz, _nn.xyz);
- vec3 _normal;
- _normal.xy = _g * _nn.xy;
- _normal.z = _g - 1.0;
- return _normal;*/
- const float _scale = 1.7777;
- vec2 _nn = _enc*(2.0*_scale) - _scale;
- float _g = 2.0 / (dot(_nn.xy, _nn.xy) + 1.0);
- vec3 _normal;
- _normal.xy = _g * _nn.xy;
- _normal.z = _g - 1.0;
- return _normal;
- }
|