提交 d3f7ab09 编写于 作者: E Emmett Lalish

added generated environment example

上级 5b6b120c
...@@ -90,6 +90,7 @@ THREE.PMREMGenerator = ( function () { ...@@ -90,6 +90,7 @@ THREE.PMREMGenerator = ( function () {
} }
_applyPMREM( cubeUVRenderTarget ); _applyPMREM( cubeUVRenderTarget );
_cleanup(); _cleanup();
cubeUVRenderTarget.scissorTest = false;
return cubeUVRenderTarget; return cubeUVRenderTarget;
...@@ -121,6 +122,7 @@ THREE.PMREMGenerator = ( function () { ...@@ -121,6 +122,7 @@ THREE.PMREMGenerator = ( function () {
_textureToCubeUV( cubemap, cubeUVRenderTarget ); _textureToCubeUV( cubemap, cubeUVRenderTarget );
_applyPMREM( cubeUVRenderTarget ); _applyPMREM( cubeUVRenderTarget );
_cleanup(); _cleanup();
cubeUVRenderTarget.scissorTest = false;
return cubeUVRenderTarget; return cubeUVRenderTarget;
...@@ -363,6 +365,7 @@ THREE.PMREMGenerator = ( function () { ...@@ -363,6 +365,7 @@ THREE.PMREMGenerator = ( function () {
new THREE.WebGLRenderTarget( 3 * SIZE_MAX, 3 * SIZE_MAX, params ); new THREE.WebGLRenderTarget( 3 * SIZE_MAX, 3 * SIZE_MAX, params );
cubeUVRenderTarget.texture.mapping = THREE.CubeUVReflectionMapping; cubeUVRenderTarget.texture.mapping = THREE.CubeUVReflectionMapping;
cubeUVRenderTarget.texture.name = 'PMREM.cubeUv'; cubeUVRenderTarget.texture.name = 'PMREM.cubeUv';
cubeUVRenderTarget.scissorTest = true;
return cubeUVRenderTarget; return cubeUVRenderTarget;
} }
......
...@@ -116,6 +116,7 @@ var PMREMGenerator = ( function () { ...@@ -116,6 +116,7 @@ var PMREMGenerator = ( function () {
} }
_applyPMREM( cubeUVRenderTarget ); _applyPMREM( cubeUVRenderTarget );
_cleanup(); _cleanup();
cubeUVRenderTarget.scissorTest = false;
return cubeUVRenderTarget; return cubeUVRenderTarget;
...@@ -147,6 +148,7 @@ var PMREMGenerator = ( function () { ...@@ -147,6 +148,7 @@ var PMREMGenerator = ( function () {
_textureToCubeUV( cubemap, cubeUVRenderTarget ); _textureToCubeUV( cubemap, cubeUVRenderTarget );
_applyPMREM( cubeUVRenderTarget ); _applyPMREM( cubeUVRenderTarget );
_cleanup(); _cleanup();
cubeUVRenderTarget.scissorTest = false;
return cubeUVRenderTarget; return cubeUVRenderTarget;
...@@ -389,6 +391,7 @@ var PMREMGenerator = ( function () { ...@@ -389,6 +391,7 @@ var PMREMGenerator = ( function () {
new WebGLRenderTarget( 3 * SIZE_MAX, 3 * SIZE_MAX, params ); new WebGLRenderTarget( 3 * SIZE_MAX, 3 * SIZE_MAX, params );
cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping; cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;
cubeUVRenderTarget.texture.name = 'PMREM.cubeUv'; cubeUVRenderTarget.texture.name = 'PMREM.cubeUv';
cubeUVRenderTarget.scissorTest = true;
return cubeUVRenderTarget; return cubeUVRenderTarget;
} }
......
...@@ -36,12 +36,44 @@ ...@@ -36,12 +36,44 @@
var container, stats; var container, stats;
var camera, scene, renderer, controls; var camera, scene, renderer, controls;
var torusMesh, planeMesh; var torusMesh, planeMesh;
var ldrCubeRenderTarget, hdrCubeRenderTarget, rgbmCubeRenderTarget; var generatedCubeRenderTarget, ldrCubeRenderTarget, hdrCubeRenderTarget, rgbmCubeRenderTarget;
var ldrCubeMap, hdrCubeMap, rgbmCubeMap; var ldrCubeMap, hdrCubeMap, rgbmCubeMap;
init(); init();
animate(); 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() { function init() {
container = document.createElement( 'div' ); container = document.createElement( 'div' );
...@@ -84,6 +116,9 @@ ...@@ -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' ]; var hdrUrls = [ 'px.hdr', 'nx.hdr', 'py.hdr', 'ny.hdr', 'pz.hdr', 'nz.hdr' ];
hdrCubeMap = new HDRCubeTextureLoader() hdrCubeMap = new HDRCubeTextureLoader()
.setPath( './textures/cube/pisaHDR/' ) .setPath( './textures/cube/pisaHDR/' )
...@@ -142,7 +177,7 @@ ...@@ -142,7 +177,7 @@
var gui = new GUI(); 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, 'roughness', 0, 1, 0.01 );
gui.add( params, 'metalness', 0, 1, 0.01 ); gui.add( params, 'metalness', 0, 1, 0.01 );
gui.add( params, 'exposure', 0, 2, 0.01 ); gui.add( params, 'exposure', 0, 2, 0.01 );
...@@ -182,6 +217,10 @@ ...@@ -182,6 +217,10 @@
switch ( params.envMap ) { switch ( params.envMap ) {
case 'Generated':
renderTarget = generatedCubeRenderTarget;
cubeMap = generatedCubeRenderTarget;
break;
case 'LDR': case 'LDR':
renderTarget = ldrCubeRenderTarget; renderTarget = ldrCubeRenderTarget;
cubeMap = ldrCubeMap; cubeMap = ldrCubeMap;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册