在three.js中旋转对象

开发资源

我的物体和照明的小问题。当我旋转我的物体时,光会随着我的物体一起移动。我希望光线是静态的。灯光是否因为我向渲染器添加了场景而移动?我不知道如何将我的对象添加到渲染器,所以我尝试将场景添加到渲染器。那是导致问题的原因吗?

            <!DOCTYPE html>
            <html>
                <head>
                    <meta charset=utf-8>
                    <title>THEE JS BOX APP</title>
                    <style>
                        body {
                            margin: 0;
                            width: 100%;
                            height: 100%;
                            font-size: 0;
                            overflow: hidden;
                            display: flex;
                        }

                    </style>
                </head>
                <body>
                    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
                    <script src="js/three.js"></script>
                    <script src="js/OrbitControls.js"></script>
                    <script src="js/OBJloader.js"></script>
                    <script>

                    $(document).ready(function() {


                        // CREATING AN EMPTY SCENE
                        var scene = new THREE.Scene();
                        // CAMERA
                        var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 9000 );
                        camera.position.z = 150;

                        // ORBIT CONTROL
                        var controls = new THREE.OrbitControls( camera );


                        // RENDERER
                        var renderer = new THREE.WebGLRenderer();
                        renderer.setClearColor("#000000");

                        //************** SETTING SIZE FOR RENDERER *******************//

                        renderer.setSize( window.innerWidth ,window.innerHeight );
                        //renderer.setSize( 550, 297);

                        //************** END-OF-SETTING SIZE FOR RENDERER *******************//
                        renderer.shadowMap.enabled = true;
                        renderer.shadowMap.type = THREE.PCFShadowMap;


                        // APPEND RENDERER TO DOM
                        document.body.appendChild( renderer.domElement );

                        // WINDOW RESIZE
                        window.addEventListener( 'resize', onWindowResize, false );

                        function onWindowResize(){

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

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

                        }

                        // instantiate a loader
                        var loader = new THREE.OBJLoader();

                        // load a resource
                        loader.load(
                            // resource URL
                            'img/logovoivode1.obj',
                            // called when resource is loaded
                            function ( object ) {

                                scene.add( object );

                            },
                            // called when loading is in progresses
                            function ( xhr ) {

                                console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );

                            },
                            // called when loading has errors
                            function ( error ) {

                                console.log( 'An error happened' );

                            }
                        );

                        // ***************************** LIGHTING **********************************//

                        var ambientlight = new THREE.AmbientLight( 0xa6a6a6, 0.25 );
                        scene.add( ambientlight );


                        var dirlight = new THREE.DirectionalLight( 0xfffff, 0.8, 500 );
                        dirlight.target = scene;
                        scene.add(dirlight);
                        scene.add(dirlight.target);

                        var pointLight = new THREE.PointLight( 0xffffff, 1, 100 );
                        pointLight.position.set( 0, 100, 50 );
                        scene.add( pointLight );

                        var sphereSize = 1;
                        var pointLightHelper = new THREE.PointLightHelper( pointLight, sphereSize );
                        scene.add( pointLightHelper );







                        // ************************ END-OF-LIGHTING *****************************//



                        // CREATING A BOX
                        //var geometry = new THREE.BoxGeometry(1, 1, 1);
                        //var material = new THREE.MeshBasicMaterial({ color: 0xffffff, wireframe:true});
                        //var cube = new THREE.Mesh( geometry, material);


                        // ADD CUBE TO THE SCENE
                        //scene.add(cube);
                        // ANIMATION LOOP

                        function animate() {
                            requestAnimationFrame( animate );
                            //scene.rotation.x += 0.01;
                            scene.rotation.y += 0.01;
                            renderer.render( scene, camera );
                        }
                        animate();

                    }); 

                    </script>
                </body>
            </html>
摩西·拉古齐尼

注意:您正在旋转场景(其中包含光点),而不是对象。您需要做的是旋转对象,您将获得预期的结果。

编辑:

 // instantiate a loader
var loader = new THREE.OBJLoader();
var myObj;

// load a resource
loader.load(
    // resource URL
    'img/logovoivode1.obj',
    // called when resource is loaded
    function ( object ) {
        myObj = object
        // code;

    },
    //code
);

// ***************************** LIGHTING**********************************//

// code

function animate() {
    requestAnimationFrame( animate );
    myObj.rotation.y += 0.01;
    renderer.render( scene, camera );
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Three.js,WebGL显示对象的顶点并旋转对象

来自分类Dev

three.js通过鼠标向下旋转对象并移动

来自分类Dev

Three.js:添加和删除旋转对象的子代

来自分类Dev

three.js旋转面向对象

来自分类Dev

围绕对象轴THREE.js旋转对象

来自分类Dev

three.js通过轴方向旋转对象

来自分类Dev

在Three.js的中心旋转mergeometry对象

来自分类Dev

在Three.js中旋转天空盒

来自分类Dev

Three.js-鼠标移动时沿(0,0,0)旋转对象

来自分类Dev

Three.js将对象添加到组中,但保持原样的全局位置/旋转/比例

来自分类Dev

three.js中旋转或惯用的方向

来自分类Dev

基于Three.js中新的枢轴为对象旋转动画

来自分类Dev

Three.JS通过移动设备围绕对象旋转相机

来自分类Dev

在three.js中绕圆旋转线

来自分类Dev

使用Three.js,WebGL显示对象的顶点并旋转对象

来自分类Dev

Three.js通过圆路径旋转对象

来自分类Dev

当对象旋转时Three.js旋转相机

来自分类Dev

Three.js:添加和删除旋转对象的子代

来自分类Dev

如何在three.js(r66)中旋转对象而不使用控制相机的轨迹球

来自分类Dev

Three.js旋转

来自分类Dev

从子对象克隆旋转并将其分配给THREE.JS中另一父对象的另一个子对象

来自分类Dev

Three.js-围绕特定轴旋转对象

来自分类Dev

如何在Three.js中使用鼠标旋转对象?

来自分类Dev

场景中的静态对象-Three.js

来自分类Dev

three.js:结合tween.js绕世界轴旋转对象

来自分类Dev

在three.js中旋转相机无法正常工作

来自分类Dev

Three.js 对象返回错误的位置/旋转/缩放值

来自分类Dev

在 Three.js 中根据法线旋转向量

来自分类Dev

如何按照 vanilla webgl 中的 THREE.js 解决方案中所述围绕枢轴点旋转对象?

Related 相关文章

热门标签

归档