diff --git a/examples/js/pmrem/PMREMGenerator.js b/examples/js/pmrem/PMREMGenerator.js index 3b25335b4c0330c88b241cc22b14bca89200d4c5..03541b1876f13164a4f8b95d343ad1e45e749ee8 100644 --- a/examples/js/pmrem/PMREMGenerator.js +++ b/examples/js/pmrem/PMREMGenerator.js @@ -90,6 +90,7 @@ THREE.PMREMGenerator = ( function () { } _applyPMREM( cubeUVRenderTarget ); _cleanup(); + cubeUVRenderTarget.scissorTest = false; return cubeUVRenderTarget; @@ -121,6 +122,7 @@ THREE.PMREMGenerator = ( function () { _textureToCubeUV( cubemap, cubeUVRenderTarget ); _applyPMREM( cubeUVRenderTarget ); _cleanup(); + cubeUVRenderTarget.scissorTest = false; return cubeUVRenderTarget; @@ -363,6 +365,7 @@ THREE.PMREMGenerator = ( function () { new THREE.WebGLRenderTarget( 3 * SIZE_MAX, 3 * SIZE_MAX, params ); cubeUVRenderTarget.texture.mapping = THREE.CubeUVReflectionMapping; cubeUVRenderTarget.texture.name = 'PMREM.cubeUv'; + cubeUVRenderTarget.scissorTest = true; return cubeUVRenderTarget; } diff --git a/examples/jsm/pmrem/PMREMGenerator.js b/examples/jsm/pmrem/PMREMGenerator.js index 38eb04cfcc8c253b2a5d143fb28e123c88dc780d..d5cc2b32231a5ae0bde60f9be0b368c5d03eb079 100644 --- a/examples/jsm/pmrem/PMREMGenerator.js +++ b/examples/jsm/pmrem/PMREMGenerator.js @@ -116,6 +116,7 @@ var PMREMGenerator = ( function () { } _applyPMREM( cubeUVRenderTarget ); _cleanup(); + cubeUVRenderTarget.scissorTest = false; return cubeUVRenderTarget; @@ -147,6 +148,7 @@ var PMREMGenerator = ( function () { _textureToCubeUV( cubemap, cubeUVRenderTarget ); _applyPMREM( cubeUVRenderTarget ); _cleanup(); + cubeUVRenderTarget.scissorTest = false; return cubeUVRenderTarget; @@ -389,6 +391,7 @@ var PMREMGenerator = ( function () { new WebGLRenderTarget( 3 * SIZE_MAX, 3 * SIZE_MAX, params ); cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping; cubeUVRenderTarget.texture.name = 'PMREM.cubeUv'; + cubeUVRenderTarget.scissorTest = true; return cubeUVRenderTarget; } diff --git a/examples/webgl_materials_envmaps_hdr.html b/examples/webgl_materials_envmaps_hdr.html index 059c44b1dfbb5ef164bbd8b33807c3b07a8c46b9..25813bce996147754a9e5c51f4d1e205ce346d7b 100644 --- a/examples/webgl_materials_envmaps_hdr.html +++ b/examples/webgl_materials_envmaps_hdr.html @@ -36,12 +36,44 @@ var container, stats; var camera, scene, renderer, controls; var torusMesh, planeMesh; - var ldrCubeRenderTarget, hdrCubeRenderTarget, rgbmCubeRenderTarget; + var generatedCubeRenderTarget, ldrCubeRenderTarget, hdrCubeRenderTarget, rgbmCubeRenderTarget; var ldrCubeMap, hdrCubeMap, rgbmCubeMap; init(); animate(); + function getEnvScene() { + + var envScene = new THREE.Scene(); + + var geometry = new THREE.BoxBufferGeometry(); + geometry.deleteAttribute('uv'); + var roomMaterial = new THREE.MeshStandardMaterial({metalness: 0, side: THREE.BackSide}); + var room = new THREE.Mesh(geometry, roomMaterial); + room.scale.setScalar(10); + envScene.add(room); + + var mainLight = new THREE.PointLight(0xffffff, 1.0, 0, 2); + mainLight.position.set(0, 4.5, 0); + envScene.add(mainLight); + + var lightMaterial = new THREE.MeshBasicMaterial(); + lightMaterial.color.setScalar(20); + + var light1 = new THREE.Mesh(geometry, lightMaterial); + light1.position.set(-5, 2, 0); + light1.scale.set(0.1, 1, 1); + envScene.add(light1); + + var light2 = new THREE.Mesh(geometry, lightMaterial); + light2.position.set(0, 5, 0); + light2.scale.set(1, 0.1, 1); + envScene.add(light2); + + return envScene; + + } + function init() { container = document.createElement( 'div' ); @@ -84,6 +116,9 @@ } + var envScene = getEnvScene(); + generatedCubeRenderTarget = pmremGenerator.fromScene( envScene ); + var hdrUrls = [ 'px.hdr', 'nx.hdr', 'py.hdr', 'ny.hdr', 'pz.hdr', 'nz.hdr' ]; hdrCubeMap = new HDRCubeTextureLoader() .setPath( './textures/cube/pisaHDR/' ) @@ -142,7 +177,7 @@ var gui = new GUI(); - gui.add( params, 'envMap', [ 'LDR', 'HDR', 'RGBM16' ] ); + gui.add( params, 'envMap', [ 'Generated', 'LDR', 'HDR', 'RGBM16' ] ); gui.add( params, 'roughness', 0, 1, 0.01 ); gui.add( params, 'metalness', 0, 1, 0.01 ); gui.add( params, 'exposure', 0, 2, 0.01 ); @@ -182,6 +217,10 @@ switch ( params.envMap ) { + case 'Generated': + renderTarget = generatedCubeRenderTarget; + cubeMap = generatedCubeRenderTarget; + break; case 'LDR': renderTarget = ldrCubeRenderTarget; cubeMap = ldrCubeMap;