提交 47afab80 编写于 作者: E Emmett Lalish

2k -> 1k envMaps

上级 9dbd38f3
......@@ -23,9 +23,8 @@ THREE.PMREMGenerator = ( function () {
// variance #defines in cube_uv_reflection_fragment.glsl.js.
var EXTRA_LOD_SIGMA = [ 0.125, 0.215, 0.35, 0.446, 0.526, 0.582 ];
var TOTAL_LODS = LOD_MAX - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;
// The maximum length of the blur for loop, chosen to equal the number needed
// for GENERATED_SIGMA. Smaller _sigmas will use fewer samples and exit early,
// but not recompile the shader.
// The maximum length of the blur for loop. Smaller sigmas will use fewer
// samples and exit early, but not recompile the shader.
var MAX_SAMPLES = 20;
var ENCODINGS = {
[ THREE.LinearEncoding ]: 0,
......@@ -173,10 +172,10 @@ THREE.PMREMGenerator = ( function () {
}
var planes = new THREE.BufferGeometry();
planes.addAttribute(
planes.setAttribute(
'position', new THREE.BufferAttribute( position, positionSize ) );
planes.addAttribute( 'uv', new THREE.BufferAttribute( uv, uvSize ) );
planes.addAttribute(
planes.setAttribute( 'uv', new THREE.BufferAttribute( uv, uvSize ) );
planes.setAttribute(
'faceIndex', new THREE.BufferAttribute( faceIndex, faceIndexSize ) );
_lodPlanes.push( planes );
......@@ -214,7 +213,7 @@ THREE.PMREMGenerator = ( function () {
_pingPongRenderTarget.dispose();
_renderer.setRenderTarget( null );
var size = _renderer.getSize();
var size = _renderer.getSize( new THREE.Vector2() );
_renderer.setViewport( 0, 0, size.x, size.y );
}
......
......@@ -45,12 +45,12 @@ var PMREMGenerator = ( function () {
var SIZE_MAX = Math.pow( 2, LOD_MAX );
// The standard deviations (radians) associated with the extra mips. These are
// chosen to approximate a Trowbridge-Reitz distribution function times the
// geometric shadowing function.
// geometric shadowing function. These sigma values squared must match the
// variance #defines in cube_uv_reflection_fragment.glsl.js.
var EXTRA_LOD_SIGMA = [ 0.125, 0.215, 0.35, 0.446, 0.526, 0.582 ];
var TOTAL_LODS = LOD_MAX - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;
// The maximum length of the blur for loop, chosen to equal the number needed
// for GENERATED_SIGMA. Smaller _sigmas will use fewer samples and exit early,
// but not recompile the shader.
// The maximum length of the blur for loop. Smaller sigmas will use fewer
// samples and exit early, but not recompile the shader.
var MAX_SAMPLES = 20;
var ENCODINGS = {
[ LinearEncoding ]: 0,
......@@ -198,10 +198,10 @@ var PMREMGenerator = ( function () {
}
var planes = new BufferGeometry();
planes.addAttribute(
planes.setAttribute(
'position', new BufferAttribute( position, positionSize ) );
planes.addAttribute( 'uv', new BufferAttribute( uv, uvSize ) );
planes.addAttribute(
planes.setAttribute( 'uv', new BufferAttribute( uv, uvSize ) );
planes.setAttribute(
'faceIndex', new BufferAttribute( faceIndex, faceIndexSize ) );
_lodPlanes.push( planes );
......@@ -239,7 +239,7 @@ var PMREMGenerator = ( function () {
_pingPongRenderTarget.dispose();
_renderer.setRenderTarget( null );
var size = _renderer.getSize();
var size = _renderer.getSize( new Vector2() );
_renderer.setViewport( 0, 0, size.x, size.y );
}
......
......@@ -45,12 +45,12 @@
new RGBELoader()
.setDataType( THREE.UnsignedByteType )
.setPath( 'textures/equirectangular/' )
.load( 'pedestrian_overpass_2k.hdr', function ( texture ) {
.load( 'pedestrian_overpass_1k.hdr', function ( texture ) {
var pmremGenerator = new PMREMGenerator( renderer );
scene.background = pmremGenerator.fromEquirectangular(texture).texture;
var envMap = pmremGenerator.fromEquirectangular( texture ).texture;
var envMap = scene.background;
scene.background = envMap;
// model
......
......@@ -27,7 +27,6 @@
import { DRACOLoader } from './jsm/loaders/DRACOLoader.js';
import { RGBELoader } from './jsm/loaders/RGBELoader.js';
import { PMREMGenerator } from './jsm/pmrem/PMREMGenerator.js';
import { PMREMCubeUVPacker } from './jsm/pmrem/PMREMCubeUVPacker.js';
var orbitControls;
var container, camera, scene, renderer, loader;
......@@ -156,25 +155,12 @@
new RGBELoader()
.setDataType( THREE.UnsignedByteType )
.setPath( 'textures/equirectangular/' )
.load( 'venice_sunset_2k.hdr', function ( texture ) {
.load( 'venice_sunset_1k.hdr', function ( texture ) {
var options = {
minFilter: texture.minFilter,
magFilter: texture.magFilter
};
var pmremGenerator = new PMREMGenerator( renderer );
envMap = pmremGenerator.fromEquirectangular( texture ).texture;
background = new THREE.WebGLRenderTargetCube( 1024, 1024, options ).fromEquirectangularTexture( renderer, texture );
var pmremGenerator = new PMREMGenerator( background.texture );
pmremGenerator.update( renderer );
var pmremCubeUVPacker = new PMREMCubeUVPacker( pmremGenerator.cubeLods );
pmremCubeUVPacker.update( renderer );
envMap = pmremCubeUVPacker.CubeUVRenderTarget.texture;
pmremGenerator.dispose();
pmremCubeUVPacker.dispose();
background = envMap;
//
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册