three常用的三种照相机

lxf2023-05-07 00:40:08

序言

前边解读事例的时候我们就马上创建了一个照相机,镜头的类型特性都没有详细介绍,这节让我们来推荐下three里的照相机目标。

照相机

Camera照相机是three中的关键部件,根据照相机大家才能把3D渲染物体呈现出来,同时提供了特殊的角度与范畴。three中常用的照相机种类有三种,下面我们就先后来说。

PerspectiveCamera

PerspectiveCamera: 透视投影照相机,远小近大,仿真模拟人的视角,因此我们一般将相机设置为这种类别。three里很多取名全是根据自己的应用的算法和质量命名,照相机也是如此,到底什么是透视投影呢? 透视投影的基本原理便是前面提到的远小近将军避开观测者物体变小,趋于观测者物体变大,以此仿真模拟物件间的距离感。作品上一般也应用此方法来提高现实感,而现实生活中大家眼睛看到的也是如此实际效果。three中透视投影照相机对象

   PerspectiveCamera( fov, aspect, near, far)
   // fov -- 垂直角度比
   // aspect -- 照相机角度锥的宽高比
   // near -- 角度锥近端口
   // far -- 远端口

以上主要参数都和角度锥相关,这一角度锥就有些像舞台聚光灯原象了,看了下面设计效果图很好理解: three常用的三种照相机

//建立照相机 宽高比一般为可视距离
const width = window.innerWidth; 
const height = window.innerHeight;
const camera = new THREE.PerspectiveCamera(30, width / height, 1, 800);

OrthographicCamera

OrthographicCamera: 正交投影照相机,呈现出来物体尺寸跟间距不相干,跟视角有关,一般用于2D手机游戏等场景。该照相机用的都是平行投影的形式,平行投影如同数学课里的正面图,它会把物件线条开展平行投影。

three常用的三种照相机

相对应的对象:

   OrthographicCamera( left, right, top, bottom, near, far)
    // left -- 照相机角度左边
    // right -- 右边
    // top -- 上方
    // bottom -- 下方
    // near -- 近侧 默认设置0.1
    // far -- 远侧 默认设置1000

主要参数均为方向,等同于从长方体的六个面去位置与方向。

const width = window.innerWidth;
const height = window.innerHeight;
const a = width / height;
const b = 100;
//创建对象
const camera = new THREE.OrthographicCamera(a * -b, a * b, b, -b, 1);
camera.position.set(100, 150, 100); //设定部位
scene.add(camera);

CubeCamera

CubeCamera: 正方体照相机,它可以在某一个部位拍六张相片,随后组成一个正方体纹路,大家完成天空盒等作用时需要使用它。该照相机对象如下所示:

   THREE.CubeCamera( near, far, renderTarget)
   //near far跟前边一样
   //renderTarget 3D渲染目标用户 

renderTarget需要由WebGLCubeRenderTarget建立出去。

const cubeRenderTarget = new THREE.WebGLCubeRenderTarget(128);
const cubeCamera = new THREE.CubeCamera(1, 1000, cubeRenderTarget);
scene.add(cubeCamera);

汇总

以上就是关于three常用的三种照相机,每一个照相机都传承于Camera,每一种照相机都有各自的应用场景,其实我们应该清晰。

本站是一个以CSS、JavaScript、Vue、HTML为中心的前端开发技术网址。我们的使命是为众多前端工程师者提供全方位、全方位、好用的前端工程师专业知识和技术服务。 在网站上,大家可以学到最新前端开发技术,掌握前端工程师最新发布的趋势和良好实践。大家提供大量实例教程和实例,让大家可以快速上手前端工程师的关键技术和程序。 本站还提供了一系列好用的工具软件,帮助你更高效地开展前端工程师工作中。公司提供的一种手段和软件都要经过精心策划和改进,能够帮助你节约时间精力,提高研发效率。 此外,本站还拥有一个有活力的小区,你可以在社区里与其它前端工程师者沟通交流技术性、交流经验、处理问题。我们坚信,街道的能量能够帮助你能够更好地进步与成长。 在网站上,大家可以寻找你需要的一切前端工程师网络资源,使您成为一名更加出色的网页开发者。欢迎你添加我们的大家庭,一起探索前端工程师的无限潜能!