|
@@ -354,9 +354,10 @@ class RGBELoader extends DataTextureLoader {
|
|
|
const e = sourceArray[ sourceOffset + 3 ];
|
|
|
const scale = Math.pow( 2.0, e - 128.0 ) / 255.0;
|
|
|
|
|
|
- destArray[ destOffset + 0 ] = DataUtils.toHalfFloat( sourceArray[ sourceOffset + 0 ] * scale );
|
|
|
- destArray[ destOffset + 1 ] = DataUtils.toHalfFloat( sourceArray[ sourceOffset + 1 ] * scale );
|
|
|
- destArray[ destOffset + 2 ] = DataUtils.toHalfFloat( sourceArray[ sourceOffset + 2 ] * scale );
|
|
|
+ // clamping to 65504, the maximum representable value in float16
|
|
|
+ destArray[ destOffset + 0 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 0 ] * scale, 65504 ) );
|
|
|
+ destArray[ destOffset + 1 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 1 ] * scale, 65504 ) );
|
|
|
+ destArray[ destOffset + 2 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 2 ] * scale, 65504 ) );
|
|
|
|
|
|
};
|
|
|
|