0

私はしばらく Three.js をいじっていましたが、どのような種類のライトも動作させることができないようです。シーンは 0xFFFFFF アンビエント ライティングで正常にレンダリングされますが、ライトを追加しても効果はありません。コードを例から直接コピーしました。ライトはシーンの子にリストされていますが、表示されません...

        var camera;
        var scene;
        var renderer;

        $(document).ready(function() {
            camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000);
            camera.position.z = 600;

            scene = new THREE.Scene();
            scene.add(new THREE.PointLight(0xFF0000, 3.0, 1000));

            renderer = new THREE.WebGLRenderer();
            //renderer = new THREE.CanvasRenderer();
            renderer.domElement.id = "canvas";
            renderer.setSize(window.innerWidth, window.innerHeight);

            $(window).resize(function() {
                renderer.setSize(window.innerWidth, window.innerHeight);
            });
            $("#container").get(0).appendChild(renderer.domElement);

            function Animate() {
                requestAnimationFrame(Animate);
                renderer.render(scene, camera);
            }

            Animate();
        });
4

1 に答える 1

2

あなたのコードはあまり機能しませんが、確認すべきことの 1 つは、マテリアルがライトをサポートしていることです。つまり、MeshLambertMaterialまたはを使用する必要がありますMeshPhongMaterialShaderMaterialまた、カスタム を使用している場合、魔法のようにシーンの照明が得られないことにも注意してください。

于 2012-12-01T15:43:55.873 に答える