three.js - FXAA выдает ошибку при обновлении с r65 на r68
Я только что переключился с r65 на r68 в файле three.js и получаю эту ошибку в консоли браузера при использовании шейдера постобработки FXAA:
THREE.WebGLProgram: gl.getProgramInfoLog () ВНИМАНИЕ: Вывод вершинного шейдера 'vUv' не читается фрагментным шейдером... three.js:25545
Я попробовал тот же код с R65, и ошибка не возникает. Кажется, шейдер работает нормально, но мне не нравится получать ошибки в консоли. Ниже приведен соответствующий код:
// COMPOSER
this.renderTargetScene = new THREE.WebGLRenderTarget( this.width, this.height );
this.renderTargetScene.minFilter = THREE.LinearFilter;
this.renderTargetScene.magFilter = THREE.LinearFilter;
this.renderTargetScene.format = THREE.RGBAFormat;
this.renderTargetScene.stencilBuffer = true;
this.sceneComposer = new THREE.EffectComposer( this.renderer, this.renderTargetScene );
this.sceneCubeUnderPass = new THREE.RenderPass( this.sceneCube, this.cameraCube );
this.sceneCubeUnderPass.renderToScreen = false;
this.scenePass = new THREE.RenderPass( this.scene, this.camera );
this.scenePass.renderToScreen = false;
this.scenePass.clear = false;
this.effectFXAA = new THREE.ShaderPass( THREE.FXAAShader );
this.effectFXAA.uniforms.resolution.value = new THREE.Vector2( 1 / window.innerWidth, 1 / window.innerHeight );
this.effectCopy = new THREE.ShaderPass( THREE.CopyShader );
this.effectCopy.renderToScreen = true;
this.sceneComposer.addPass( this.sceneCubeUnderPass );
this.sceneComposer.addPass( this.scenePass );
this.sceneComposer.addPass( this.effectFXAA );
this.sceneComposer.addPass( this.effectCopy );
onWindowResize: function() {
this.width = window.innerWidth;
this.height = window.innerHeight;
iss.windowHalfX = this.width / 2;
iss.windowHalfY = this.height / 2;
iss.camera.aspect = this.width / this.height;
iss.camera.updateProjectionMatrix();
iss.cameraCube.aspect = this.width / this.height;
iss.cameraCube.updateProjectionMatrix();
iss.renderer.setSize( this.width, this.height );
iss.effectFXAA.uniforms[ 'resolution' ].value.set(1 / ( this.width ), 1 / ( this.height ));
iss.sceneComposer.setSize( this.width, this.height );
},
render: function(){
var timer = -0.0002 * Date.now();
iss.cameraCube.rotation.copy( iss.camera.rotation );
iss.sceneComposer.render( 0.1 );
},
Любая помощь будет оценена.
1 ответ
Решение
Это просто предупреждение.
Вы можете исправить это, отредактировав examples/js/shaders/FXAAShader.js
и убрать все строки, которые ссылаются vUv
, так как это варьирование не используется.
three.js r.68