美文网首页我爱编程
Three.js入门(五)场景对浏览器的自适应

Three.js入门(五)场景对浏览器的自适应

作者: yuriy0_0 | 来源:发表于2018-06-11 21:52 被阅读0次
屏幕快照 2018-06-11 下午9.51.14.png
var stats = initStats();

            scene  = new THREE.Scene();
            camera = new THREE.PerspectiveCamera(45,window.innerHeight/window.innerWidth,0.1,1000);

            renderer = new THREE.WebGLRenderer();
            renderer.setClearColor(0xEEEEEE);
            renderer.setSize(window.innerWidth,window.innerHeight);
            renderer.shadowMap.enabled=true;

            var axes = new THREE.AxesHelper(20);
            scene.add(axes);

            var planeGeometry = new THREE.PlaneGeometry(60,20,1,1);
            var planeMeterial = new THREE.MeshLambertMaterial({color:0xcccccc});

            var plane = new THREE.Mesh(planeGeometry,planeMeterial);

            plane.rotation.x=-0.5*Math.PI;
            plane.position.x=15;
            plane.position.y=0;
            plane.position.z=0;

            scene.add(plane);

            var cubeGeometry = new THREE.BoxGeometry(4,4,4);
            var cubeMeterial = new THREE.MeshLambertMaterial({color:0xff000});
            var cube = new THREE.Mesh(cubeGeometry,cubeMeterial);

            cube.position.x=-4;
            cube.position.y=3;
            cube.position.z=0;

            scene.add(cube);

            var sphereGeometry = new THREE.SphereGeometry(4,20,20);
            var sphereMeterial = new THREE.MeshLambertMaterial({color:0x7777ff});
            var sphere = new THREE.Mesh(sphereGeometry,sphereMeterial);

            sphere.position.x=20;
            sphere.position.y=4;
            sphere.position.z=2;

            scene.add(sphere);

            camera.position.x=-60;
            camera.position.y=80;
            camera.position.z=60;

            camera.lookAt(scene.position);

            var spotLight = new THREE.SpotLight(0xffffff);
            spotLight.position.set(-40,60,-10);
            scene.add(spotLight);

            plane.receiveShadow = true;
            cube.castShadow=true;
            sphere.castShadow=true;

            spotLight.castShadow=true;



            document.getElementById("WebGL-output").appendChild(renderer.domElement);

            var step=0;
            function renderScene(){
                cube.rotation.x+=controls.rotationSpeed;
                cube.rotation.y+=controls.rotationSpeed;
                cube.rotation.z+=controls.rotationSpeed;

                step+=controls.bouncingSpeed;
                sphere.position.x=20+(10*Math.cos(step));
                sphere.position.y=2+(10*Math.abs(Math.sin(step)));

                stats.update();
                requestAnimationFrame(renderScene);
                renderer.render(scene,camera);
            }

            renderScene();

        };
        window.onload=init();
        window.addEventListener('resize',onResize,false);

        function onResize(){
                camera.aspect = window.innerWidth/window.innerHeight;
                camera.updateProjectionMatrix();
                renderer.setSize(window.innerWidth,window.innerHeight);
        }

相关文章

  • Three.js入门(五)场景对浏览器的自适应

  • 使用three.js的基本组件

    创建一个简单的入门案例 three.js的三大场景:场景(scene)、相机(camera)和渲染器(render...

  • CSS Footer固定底部处理

    Footer应用场景 自适应内容高度展示在页面最底部 固定于浏览器窗口底部 Footer 自适应内容高度展示在页面...

  • three 简单模板

    Three.js的核心五步就是: 1.设置three.js渲染器2.设置摄像机camera3.设置场景scene4...

  • threeJs基础文档

    three.js基础结构 目录 一个three.js项目至少需要的东西有—— [ ] scene:场景 [ ] c...

  • WebGL入门demo

    WebGL入门demo three.js入门 开场白 哇哦,绘制气球耶,在网页上?对啊!厉害了!3D效果图也能在网...

  • WebGL & Three.js 入门

    1、简介 WebGL 是在浏览器中实现三维效果的一套规范,而 Three.js 可以看成是浏览器对 WebGL 规...

  • 03-Three.js 场景对浏览器的自适应

    透视投影相机PerspectiveCamera自适应渲染 正投影相机OrthographicCamera自适应渲染

  • Three.js的突破

    Three.js只是炫,没有想象中的那么难 什么是webgl,什么是three.js webgl是大部分浏览器直接...

  • 基本概念

    three.js基本概念## 一个典型的Three.js程序至少要包括渲染器(Renderer)、场景(Scene...

网友评论

    本文标题:Three.js入门(五)场景对浏览器的自适应

    本文链接:https://www.haomeiwen.com/subject/sllkeftx.html