Three.js 中的 FilmPass 不起作用

理学士

所以我目前只是尝试在three.js中对FilmPass效果进行原型设计,无论我尝试什么,我都会收到相同的错误消息。我访问了大量不同的网站,但我不断提出问题。

这是我正在使用的代码:

<script src="three.min.js"></script>

    <script src="CopyShader.js"></script>
    <script src="DotScreenShader.js"></script>
    <script src="RGBShiftShader.js"></script>
    <script src="FilmShader.js"></script>
    <script src="FilmPass.js"></script>

    <script src="EffectComposer.js"></script>
    <script src="RenderPass.js"></script>
    <script src="MaskPass.js"></script>
    <script src="ShaderPass.js"></script>


    <script>

        var camera, scene, renderer, composer;
        var object, light;

        init();
        animate();

        function init() {

            renderer = new THREE.WebGLRenderer();
            renderer.setPixelRatio( window.devicePixelRatio );
            renderer.setSize( window.innerWidth, window.innerHeight );
            document.body.appendChild( renderer.domElement );

            var composer = new THREE.EffectComposer(renderer);

            //

            camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000 );
            camera.position.z = 400;

            scene = new THREE.Scene();
            scene.fog = new THREE.Fog( 0x000000, 1, 1000 );

            object = new THREE.Object3D();
            scene.add( object );

            var geometry = new THREE.SphereGeometry( 1, 4, 4 );
            var material = new THREE.MeshPhongMaterial( { color: 0xffffff, shading: THREE.FlatShading } );

            for ( var i = 0; i < 100; i ++ ) {

                var mesh = new THREE.Mesh( geometry, material );
                mesh.position.set( Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5 ).normalize();
                mesh.position.multiplyScalar( Math.random() * 400 );
                mesh.rotation.set( Math.random() * 2, Math.random() * 2, Math.random() * 2 );
                mesh.scale.x = mesh.scale.y = mesh.scale.z = Math.random() * 50;
                object.add( mesh );

            }

            scene.add( new THREE.AmbientLight( 0x222222 ) );

            light = new THREE.DirectionalLight( 0xffffff );
            light.position.set( 1, 1, 1 );
            scene.add( light );

            // postprocessing

            composer = new THREE.EffectComposer( renderer );
            // composer.addPass( new THREE.RenderPass( scene, camera ) );
            //
            // var effect = new THREE.ShaderPass( THREE.DotScreenShader );
            // effect.uniforms[ 'scale' ].value = 4;
            // composer.addPass( effect );
            //
            // var effect = new THREE.ShaderPass( THREE.RGBShiftShader );
            // effect.uniforms[ 'amount' ].value = 0.0015;
            // effect.renderToScreen = true;
            // composer.addPass( effect );



            var renderPass = new THREE.RenderPass(scene, camera);
            composer.addPass(renderPass);

            var effectFilm = new THREE.FilmPass();
            effectFilm.renderToScreen = true;
            composer.addPass(effectFilm);


            var clock = new THREE.Clock()

            function render() {
                var delta = clock.getDelta();
                composer.render(delta); //parameter must be set with render
                requestAnimationFrame(render);
            }
            render();
            //

            window.addEventListener( 'resize', onWindowResize, false );

        }

        function onWindowResize() {

            camera.aspect = window.innerWidth / window.innerHeight;
            camera.updateProjectionMatrix();

            renderer.setSize( window.innerWidth, window.innerHeight );
            composer.setSize( window.innerWidth, window.innerHeight );

        }

        function animate() {

            requestAnimationFrame( animate );

            object.rotation.x += 0.005;
            object.rotation.y += 0.01;

        //  composer.render();

        }

    </script>

</body>

以下是我收到的错误消息:

在此处输入图片说明

乔·弗兰巴赫

违规行 38 包含THREE.Pass.prototype尚未定义的引用THREE.Pass在 中定义EffectComposer.js,因此您需要将其放在脚本中的更高位置。

<script src="EffectComposer.js"></script> <!-- ADD HERE -->
<script src="CopyShader.js"></script>
<script src="DotScreenShader.js"></script>
<script src="RGBShiftShader.js"></script>
<script src="FilmShader.js"></script>
<script src="FilmPass.js"></script>

<!-- <script src="EffectComposer.js"></script> REMOVE HERE -->
<script src="RenderPass.js"></script>
<script src="MaskPass.js"></script>
<script src="ShaderPass.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

顶点位移在Three.js中不起作用

来自分类Dev

OnDocumentMouseMove Three.js 不起作用

来自分类Dev

Three.js轨迹球控件拖动事件在UIkit模态中不起作用

来自分类Dev

THREE.ArrayCamera图层不起作用three.js

来自分类Dev

使用ShaderMaterial为自定义几何图形加载纹理在Three.js中不起作用

来自分类Dev

THREE.js轨道控件不起作用

来自分类Dev

Three.js renderer.autoClear属性不起作用?

来自分类Dev

Three.js示例代码,来自StackOverflow,不起作用

来自分类Dev

Three.js导入Collada动画不起作用

来自分类Dev

Three.js Shader材质照明不起作用

来自分类Dev

Three.js TimeLineLite动画不起作用

来自分类Dev

Three.js OBJLoader解析方法不起作用

来自分类Dev

three.js SpotLight急性光束不起作用

来自分类Dev

Javascript Three.JS阴影贴图不起作用

来自分类Dev

Three.js .obj阴影不起作用

来自分类Dev

THREE.js旋转副本不起作用

来自分类Dev

Three.js的输入标签不起作用

来自分类Dev

日期代码在JS中不起作用

来自分类Dev

JS中的网址操作不起作用

来自分类Dev

.then()在node.js中不起作用

来自分类Dev

grunt js在Windows中不起作用

来自分类Dev

Kinetic JS在Firefox中不起作用

来自分类Dev

JS中的网址操作不起作用

来自分类Dev

js if在setInterval()中不起作用

来自分类Dev

在Angular JS中不起作用吗?

来自分类Dev

js中的appendTo()函数不起作用

来自分类Dev

Promise 在 Node JS 中不起作用

来自分类Dev

MongoDB查询在Node.js中不起作用 为什么此代码不起作用?

来自分类Dev

Fabric JS在Angular JS中不起作用