Skip to content

Commit

Permalink
Merge pull request #623 from gkjohnson/blurred-map-fix
Browse files Browse the repository at this point in the history
Use float buffers in BlurredEnvMapGenerator
  • Loading branch information
gkjohnson authored Apr 7, 2024
2 parents 998782b + ed142f6 commit 2421250
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions src/utils/BlurredEnvMapGenerator.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { WebGLRenderTarget, RGBAFormat, HalfFloatType, PMREMGenerator, DataTexture, EquirectangularReflectionMapping } from 'three';
import { WebGLRenderTarget, RGBAFormat, HalfFloatType, PMREMGenerator, DataTexture, EquirectangularReflectionMapping, FloatType, DataUtils } from 'three';
import { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';
import { MaterialBase } from '../materials/MaterialBase.js';
import * as CommonGLSL from '../shader/common/index.js';
Expand Down Expand Up @@ -58,7 +58,7 @@ export class BlurredEnvMapGenerator {
this.renderer = renderer;
this.pmremGenerator = new PMREMGenerator( renderer );
this.copyQuad = new FullScreenQuad( new PMREMCopyMaterial() );
this.renderTarget = new WebGLRenderTarget( 1, 1, { type: HalfFloatType, format: RGBAFormat } );
this.renderTarget = new WebGLRenderTarget( 1, 1, { type: FloatType, format: RGBAFormat } );

}

Expand Down Expand Up @@ -96,7 +96,14 @@ export class BlurredEnvMapGenerator {

// read the data back
const buffer = new Uint16Array( width * height * 4 );
renderer.readRenderTargetPixels( renderTarget, 0, 0, width, height, buffer );
const readBuffer = new Float32Array( width * height * 4 );
renderer.readRenderTargetPixels( renderTarget, 0, 0, width, height, readBuffer );

for ( let i = 0, l = readBuffer.length; i < l; i ++ ) {

buffer[ i ] = DataUtils.toHalfFloat( readBuffer[ i ] );

}

const result = new DataTexture( buffer, width, height, RGBAFormat, HalfFloatType );
result.minFilter = texture.minFilter;
Expand Down

0 comments on commit 2421250

Please sign in to comment.