Fixed scaling factors for packing and unpacking unorm555 and unorm565

master
Aaron ago%!(EXTRA string=9 years) committed by Christophe Riccio
parent 695f853ae0
commit f2135a0ca3
  1. 8
      glm/gtc/packing.inl

@ -725,7 +725,7 @@ namespace detail
GLM_FUNC_QUALIFIER uint16 packUnorm1x5_1x6_1x5(vec3 const & v) GLM_FUNC_QUALIFIER uint16 packUnorm1x5_1x6_1x5(vec3 const & v)
{ {
u32vec3 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec3(15.f, 31.f, 15.f))); u32vec3 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec3(31.f, 63.f, 31.f)));
detail::u5u6u5 Result; detail::u5u6u5 Result;
Result.data.x = Unpack.x; Result.data.x = Unpack.x;
Result.data.y = Unpack.y; Result.data.y = Unpack.y;
@ -735,7 +735,7 @@ namespace detail
GLM_FUNC_QUALIFIER vec3 unpackUnorm1x5_1x6_1x5(uint16 v) GLM_FUNC_QUALIFIER vec3 unpackUnorm1x5_1x6_1x5(uint16 v)
{ {
vec3 const ScaleFactor(1.f / 15.f, 1.f / 31.f, 1.f / 15.f); vec3 const ScaleFactor(1.f / 31.f, 1.f / 63.f, 1.f / 31.f);
detail::u5u6u5 Unpack; detail::u5u6u5 Unpack;
Unpack.pack = v; Unpack.pack = v;
return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * ScaleFactor; return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * ScaleFactor;
@ -743,7 +743,7 @@ namespace detail
GLM_FUNC_QUALIFIER uint16 packUnorm3x5_1x1(vec4 const & v) GLM_FUNC_QUALIFIER uint16 packUnorm3x5_1x1(vec4 const & v)
{ {
u32vec4 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec4(15.f, 15.f, 15.f, 1.f))); u32vec4 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec4(31.f, 31.f, 31.f, 1.f)));
detail::u5u5u5u1 Result; detail::u5u5u5u1 Result;
Result.data.x = Unpack.x; Result.data.x = Unpack.x;
Result.data.y = Unpack.y; Result.data.y = Unpack.y;
@ -754,7 +754,7 @@ namespace detail
GLM_FUNC_QUALIFIER vec4 unpackUnorm3x5_1x1(uint16 v) GLM_FUNC_QUALIFIER vec4 unpackUnorm3x5_1x1(uint16 v)
{ {
vec4 const ScaleFactor(1.f / 15.f, 1.f / 15.f, 1.f / 15.f, 1.f); vec4 const ScaleFactor(1.f / 31.f, 1.f / 31.f, 1.f / 31.f, 1.f);
detail::u5u5u5u1 Unpack; detail::u5u5u5u1 Unpack;
Unpack.pack = v; Unpack.pack = v;
return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactor; return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactor;

Loading…
Cancel
Save