Skip to content

Commit 9ab67f8

Browse files
committed
Adjust the index demo
1 parent 59ea1d2 commit 9ab67f8

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

example/index.js

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { GUI } from 'three/examples/jsm/libs/lil-gui.module.min.js';
2929
import Stats from 'three/examples/jsm/libs/stats.module.js';
3030
import { generateRadialFloorTexture } from './utils/generateRadialFloorTexture.js';
3131
import { PathTracingSceneWorker } from '../src/workers/PathTracingSceneWorker.js';
32-
import { PhysicalPathTracingMaterial, PathTracingRenderer, MaterialReducer, BlurredEnvMapGenerator } from '../src/index.js';
32+
import { PhysicalPathTracingMaterial, PathTracingRenderer, MaterialReducer, BlurredEnvMapGenerator, GradientEquirectTexture } from '../src/index.js';
3333
import { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';
3434
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
3535

@@ -106,7 +106,7 @@ let creditEl, loadingEl, samplesEl;
106106
let floorPlane, gui, stats, sceneInfo;
107107
let renderer, orthoCamera, perspectiveCamera, activeCamera;
108108
let ptRenderer, fsQuad, controls, scene;
109-
let envMap, envMapGenerator;
109+
let envMap, envMapGenerator, backgroundMap;
110110
let loadingModel = false;
111111
let delaySamples = 0;
112112

@@ -135,14 +135,17 @@ async function init() {
135135
orthoCamera = new OrthographicCamera( orthoWidth / - 2, orthoWidth / 2, orthoHeight / 2, orthoHeight / - 2, 0, 100 );
136136
orthoCamera.position.set( - 1, 0.25, 1 );
137137

138+
backgroundMap = new GradientEquirectTexture();
139+
backgroundMap.topColor.set( params.bgGradientTop );
140+
backgroundMap.bottomColor.set( params.bgGradientBottom );
141+
backgroundMap.update();
142+
138143
ptRenderer = new PathTracingRenderer( renderer );
139144
ptRenderer.alpha = true;
140145
ptRenderer.material = new PhysicalPathTracingMaterial();
141146
ptRenderer.tiles.set( params.tiles, params.tiles );
142-
ptRenderer.material.setDefine( 'FEATURE_GRADIENT_BG', 1 );
143147
ptRenderer.material.setDefine( 'FEATURE_MIS', Number( params.multipleImportanceSampling ) );
144-
ptRenderer.material.bgGradientTop.set( params.bgGradientTop );
145-
ptRenderer.material.bgGradientBottom.set( params.bgGradientBottom );
148+
ptRenderer.material.backgroundMap = backgroundMap;
146149

147150
fsQuad = new FullScreenQuad( new MeshBasicMaterial( {
148151
map: ptRenderer.target.texture,
@@ -204,8 +207,6 @@ function animate() {
204207
floorPlane.material.roughness = params.floorRoughness;
205208
floorPlane.material.metalness = params.floorMetalness;
206209
floorPlane.material.opacity = params.floorOpacity;
207-
ptRenderer.material.bgGradientTop.set( params.bgGradientTop );
208-
ptRenderer.material.bgGradientBottom.set( params.bgGradientBottom );
209210

210211
if ( ptRenderer.samples < 1.0 || ! params.enable ) {
211212

@@ -371,26 +372,33 @@ function buildGui() {
371372
const backgroundFolder = gui.addFolder( 'background' );
372373
backgroundFolder.add( params, 'backgroundType', [ 'Environment', 'Gradient' ] ).onChange( v => {
373374

374-
ptRenderer.material.setDefine( 'FEATURE_GRADIENT_BG', Number( v === 'Gradient' ) );
375375
if ( v === 'Gradient' ) {
376376

377377
scene.background = new Color( 0x060606 );
378+
ptRenderer.material.backgroundMap = backgroundMap;
378379

379380
} else {
380381

381382
scene.background = scene.environment;
383+
ptRenderer.material.backgroundMap = null;
382384

383385
}
384386

385387
ptRenderer.reset();
386388

387389
} );
388-
backgroundFolder.addColor( params, 'bgGradientTop' ).onChange( () => {
390+
backgroundFolder.addColor( params, 'bgGradientTop' ).onChange( v => {
391+
392+
backgroundMap.topColor.set( v );
393+
backgroundMap.update();
389394

390395
ptRenderer.reset();
391396

392397
} );
393-
backgroundFolder.addColor( params, 'bgGradientBottom' ).onChange( () => {
398+
backgroundFolder.addColor( params, 'bgGradientBottom' ).onChange( v => {
399+
400+
backgroundMap.bottomColor.set( v );
401+
backgroundMap.update();
394402

395403
ptRenderer.reset();
396404

@@ -706,6 +714,10 @@ async function updateModel() {
706714
params.bgGradientTop = modelInfo.gradientTop || '#111111';
707715
params.bgGradientBottom = modelInfo.gradientBot || '#000000';
708716

717+
backgroundMap.topColor.set( params.bgGradientTop );
718+
backgroundMap.bottomColor.set( params.bgGradientBottom );
719+
backgroundMap.update();
720+
709721
buildGui();
710722

711723
loadingModel = false;

0 commit comments

Comments
 (0)