unpackFloat.js 778 B

1234567891011121314151617181920
  1. //This file is automatically rebuilt by the Cesium build process.
  2. export default "#define SHIFT_RIGHT_8 0.00390625 //1.0 / 256.0\n\
  3. #define SHIFT_RIGHT_16 0.00001525878 //1.0 / 65536.0\n\
  4. #define SHIFT_RIGHT_24 5.960464477539063e-8//1.0 / 16777216.0\n\
  5. #define BIAS 38.0\n\
  6. float czm_unpackFloat(vec4 packedFloat)\n\
  7. {\n\
  8. packedFloat *= 255.0;\n\
  9. float temp = packedFloat.w / 2.0;\n\
  10. float exponent = floor(temp);\n\
  11. float sign = (temp - exponent) * 2.0;\n\
  12. exponent = exponent - float(BIAS);\n\
  13. sign = sign * 2.0 - 1.0;\n\
  14. sign = -sign;\n\
  15. float unpacked = sign * packedFloat.x * float(SHIFT_RIGHT_8);\n\
  16. unpacked += sign * packedFloat.y * float(SHIFT_RIGHT_16);\n\
  17. unpacked += sign * packedFloat.z * float(SHIFT_RIGHT_24);\n\
  18. return unpacked * pow(10.0, exponent);\n\
  19. }\n\
  20. ";