2
0

Encodings.js 1.1 KB

1234567891011121314151617181920212223242526
  1. /**
  2. * @author Ben Houston / http://clara.io / bhouston
  3. * @author Prashant Sharma / spidersharma03
  4. */
  5. THREE.Encodings = function() {
  6. if( THREE.toHalf === undefined ) throw new Error("THREE.Encodings is required for HDRCubeMapLoader when loading half data.");
  7. };
  8. THREE.Encodings.RGBEByteToRGBFloat = function( sourceArray, sourceOffset, destArray, destOffset ) {
  9. var e = sourceArray[sourceOffset+3];
  10. var scale = Math.pow(2.0, e - 128.0) / 255.0;
  11. destArray[destOffset+0] = sourceArray[sourceOffset+0] * scale;
  12. destArray[destOffset+1] = sourceArray[sourceOffset+1] * scale;
  13. destArray[destOffset+2] = sourceArray[sourceOffset+2] * scale;
  14. };
  15. THREE.Encodings.RGBEByteToRGBHalf = function( sourceArray, sourceOffset, destArray, destOffset ) {
  16. var e = sourceArray[sourceOffset+3];
  17. var scale = Math.pow(2.0, e - 128.0) / 255.0;
  18. destArray[destOffset+0] = THREE.toHalf( sourceArray[sourceOffset+0] * scale );
  19. destArray[destOffset+1] = THREE.toHalf( sourceArray[sourceOffset+1] * scale );
  20. destArray[destOffset+2] = THREE.toHalf( sourceArray[sourceOffset+2] * scale );
  21. };