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

added generated environment example

上级 5b6b120c
......@@ -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;
}
......
......@@ -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;
}
......
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册