Постобработка не работает должным образом с npm - PullRequest
0 голосов
/ 26 марта 2019

Я работаю с npm и three.js.Я уже установил «постпроцессорную обработку npm 3».

Я попытался разрешить постобработку, но мне это не удалось.Несмотря на то, что я пытался скопировать файл примеров по файлам, но проблема все еще существует.

Проблема в том, что если я добавлю эффект после renderScene в композитор (который должен быть в правильном порядке), то экран будет чернымэкран.но если я изменяю порядок, я имею в виду, если я добавлю renderScene после эффекта, тогда я смогу увидеть эффект, но он не будет применен к объектам внутри рендера.

Более того, эффект цветения вообще не работает.

var clock = new THREE.Clock();
var container = document.getElementById( 'container' );
stats = new Stats();
//container.appendChild( stats.dom );
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.toneMapping = THREE.ReinhardToneMapping;
document.body.appendChild(renderer.domElement);

//container.appendChild( renderer.domElement );
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 100 );
camera.position.set( - 5, 2.5, - 3.5 );
scene.add( camera );
controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.maxPolarAngle = Math.PI * 0.5;
controls.minDistance = 1;
controls.maxDistance = 10;
scene.add( new THREE.AmbientLight( 0x404040 ) );
pointLight = new THREE.PointLight( 0xffffff, 1 );
camera.add( pointLight );
var renderScene = new THREE.RenderPass( scene, camera );
var bloomPass = new THREE.UnrealBloomPass( new THREE.Vector2( window.innerWidth, window.innerHeight ), 1.5, 0.4, 0.85 );
bloomPass.renderToScreen = true;
bloomPass.threshold = params.bloomThreshold;
bloomPass.strength = params.bloomStrength;
bloomPass.radius = params.bloomRadius;
composer = new THREE.EffectComposer( renderer );
composer.setSize( window.innerWidth, window.innerHeight );

const effectPass = new EffectPass(camera,new NoiseEffect(),new VignetteEffect(),new DotScreenEffect());



effectPass.renderToScreen = true;
composer.addPass( effectPass );
//composer.addPass( bloomPass );
composer.addPass( renderScene );
...