three.js PerspectiveCamera(透视投影相机附带demo) - 02

一、什么是PerspectiveCamera 透视投影相机?

这一投影模式被用来模拟人眼所看到的景象,它是3D场景的渲染中使用得最普遍的投影模式。

1.属性介绍

属性描述
fov摄像机视锥体垂直视野角度,默认值是50
aspect摄像机视锥体长宽比 ,通常是使用画布的宽/画布的高。默认值是1(正方形画布)
near摄像机视锥体近端面,默认值是0.1
far摄像机视锥体远端面 2000

2.代码示例

var camera = new THREE.PerspectiveCamera(45,window.innerWidth/window.innerHeight,1 ,500);

二、demo

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>透视投影相机PerspectiveCamera</title>
    <style>
        body {
            margin: 0;
            overflow: hidden;/* 隐藏body窗口区域滚动条 */
        }
    </style>
    <!--引入three.js三维引擎-->
    <script src="../../../../lib/three.js"></script>
    <script src="../../../../lib/OrbitControls.js"></script>
</head>
<body>
    <script>
        var scene = new THREE.Scene();
        var geometry = new THREE.BoxGeometry(50,50,50);
        var materail = new THREE.MeshLambertMaterial({color:0x0000ff})
        var mesh = new THREE.Mesh(geometry,materail);
        mesh.position.set(0,0,-10);
        scene.add(mesh)

        //设置点光源
        var pointlight = new THREE.PointLight(0xffffff);
        pointlight.position.set(100,200,300);
        scene.add(pointlight);

        //设置环境光
        var ambientlight= new THREE.AmbientLight(0xffffff);
        scene.add(ambientlight);

        //设置相机
        var camera = new THREE.PerspectiveCamera(45,window.innerWidth/window.innerHeight,1 ,500);
        camera.position.set(20,100,100);
        camera.lookAt(scene.position);

        //设置渲染器
        var renderer = new THREE.WebGLRenderer({
        })
        renderer.setSize(window.innerWidth,window.innerHeight);
        renderer.setPixelRatio(window.devicePixelRatio);
        renderer.setClearColor(0x0000ff,0.5);

        var controlStore = new THREE.OrbitControls(camera,renderer.domElement)
        controlStore.dampingFactor = 0.5;
        document.body.appendChild(renderer.domElement)
        function animate (){
            renderer.render(scene,camera)
            requestAnimationFrame(animate)
        }

        animate();

    </script>
</body>
</html>

三、demo效果

在这里插入图片描述

上一篇 : three.js 入门场景搭建 - 01 及 threejs下载

下一篇 :three.js OrthographicCamera(正交相机附带demo) - 03

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与诸君共勉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值