THREE实战2_正交投影相机与透视相机
正交投影相机
特点:看见物体的远近高低比例都是相同
就像maya中的三视图。
看一下鄙人以前做的一个简单模型伞。
- 侧视图
- 俯视图
正交投影构造函数OrthographicCamera
OrthographicCamera( left, right, top, bottom, near, far );
参数 | 含义 |
---|---|
left | 左平面距离相机中心的垂直距离 |
right | 右平面距离相机中心的垂直距离 |
top | 顶平面距离相机中心的垂直距离 |
bottom | 低平面距离相机中心的垂直位置 |
near | 近平面距离相机中心的垂直位置 |
far | 远平面距离相机中心的垂直距离 |
maya的顶视图相机,相机中心就是它的焦点位置。
透视相机
- 透视图
透视相机就像我们的人眼
透视投影相机的构造函数PerspectiveCamera
PerspectiveCamera(fov,aspect,near,far);
参数 | 含义 |
---|---|
fov | 视角 |
aspect | 纵横比 |
near | 近平面 |
far | 原平面 |
maya的透视相机
THREE实战
前期的工作重构代码:
<script>//场景的物体var cube=null,mesh=null,scene=null;function initObject() {var geometry = new THREE.CubeGeometry(300,300,300,);//正方体//白色反射所有光线,利于检测灯光var material = new THREE.MeshLambertMaterial( { color:0xFFFFFF} );//白色mesh = new THREE.Mesh( geometry,material);mesh.position = new THREE.Vector3(0,0,0);scene.add(mesh);}//灯光function initLight() {light_direction=new THREE.DirectionalLight(0x0000FF,1);//方向光蓝色light_direction.position.set(10,20,6);}//函数入口function threeStart() {initThree();initCamera();initScene();initLight();initObject();animation();}// 循环渲染function animation(){renderer.render(scene, camera);requestAnimationFrame(animation);//递归调用}</script>
<body onload="threeStart();">
<div id="canvas-frame"></div>
</body>
case1:正交投影相机的使用
相机中心视为原点,left与bottom为负值
//正交投影相机function initCamera() {var camera;camera=new THREE.OrthographicCamera(-width/2,width/2,height/2,-height/2,1,1000);camera.position.x = 0;camera.position.y = 0;camera.position.z = 700;camera.up.x = 0;//相机朝向位置camera.up.y = 1;camera.up.z = 0;camera.lookAt(new THREE.Vector3(0,0,0));}
调整左侧距离left=-width时
case2:透视相机的使用
//透视相机45视角,屏幕纵横比,1-1000的距离区间function initCamera() {var camera;camera = new THREE.PerspectiveCamera(45, width/height, 1, 1000);camera.position.x = 0;camera.position.y = 0;camera.up.x = 0;//相机朝向位置camera.up.y = 1;camera.up.z = 0;camera.lookAt(new THREE.Vector3(0,0,0));}
调整视角120度,视角0-180度之间看到的物体会越来越小
THREE实战2_正交投影相机与透视相机相关推荐
- 针孔相机(透视相机模型)
大多数运动结构(线性和非线性)技术都是从假设透视投影模型开始的,如图 3所示,该模型可以追溯到 Durer 和文艺复兴时期的画家.替代投影模型包括副透视或正交案例.在这里,三个 3D 特征点投影到图像 ...
- 【threejs】透视相机,实现相机根据模型大小自适应,将模型放置在视角内
透视相机,实现相机根据模型大小自适应,将模型放置在视角内 const box3_2 = new THREE.Box3().setFromObject(object); //新建一个Box3包裹盒把模型 ...
- 线阵相机和面阵相机的区别及应用
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 随着全球工业4.0概念的兴起和智能制造的发展,机器视觉技术正快速应 ...
- 首个可用于深度学习的ToF相关数据集!基于置信度的立体相机以及ToF相机深度图融合框架...
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者 | cocoon 编辑 | 3D视觉开发者社区 目录 ✦ contents 1. 概述 2. 方 ...
- 视觉SLAM——针孔相机模型 相机标定原理 双目相机模型 深度相机对比
前言 本博客为主要学习<视觉SLAM十四讲>第5讲.<机器人学的状态估计>第6章6.4.1透视相机.<多视图几何>第5章摄像头模型等SLAM内容的总结与整理. 主要 ...
- 机器视觉:工业线阵相机与面阵相机特点分析
工业线阵相机与面阵相机特点分析 线阵相机与面阵相机的基本区别 1.类型区分 2.应用对比 3.优点对比: 4.缺点对比: 线阵相机与面阵相机的选型 线阵摄像机(线阵工业相机)的选型 线阵镜头的选型 线 ...
- Android官方开发文档Training系列课程中文版:调用相机之控制相机
原文地址:http://android.xsoftlab.net/training/camera/cameradirect.html 在这节课,我们会讨论如何使用Android框架API来直接控制相机 ...
- unity, 相机空间 与 相机gameObject的局部空间
在unity里 相机空间 与 相机gameObject的局部空间 不重合. Camera.worldToCameraMatrix的文档中有这样一句话: Note that camera space m ...
- 相机内参_相机标定(张正友标定算法)解读与实战一
" 世界坐标系.相机坐标系 .归一化平面坐标系. 像平面坐标系. 像素坐标系." 关于相机模型的文章太多了,要搞清楚,首先要弄清楚这5个坐标系,以及他们之间的转换关系.我这里开始由 ...
- Baumer工业相机堡盟工业相机如何通过BGAPISDK显示彩色相机和黑白相机的图像(C#)
Baumer工业相机堡盟工业相机如何通过BGAPISDK里显示彩色相机和黑白相机的图像(C#) Baumer工业相机 Baumer工业相机的彩色和黑白成像的技术背景 Baumer工业相机通过BGAPI ...
最新文章
- 北大网络教育计算机作业,北大网络教育(计算机专业)网络基础作业答案.doc
- 杨老师课堂_Java核心技术下之控制台模拟记事本案例...
- LeetCode实战:对称二叉树
- Mysql中的utf-8竟然是假的!
- Chrome用户请尽快更新:谷歌发现两个严重的零日漏洞
- Java 11新特性解读
- Linux下的tr编辑器命令详解
- AOJ 6.Hero In Maze
- 终于等到你!阿里正式向 Apache Flink 贡献 Blink 源码
- 全盘镜像只还原c盘有影响么_如何正确的清理C盘
- C#格式化小数位的方法
- 适用于中小型公司代理服务器的IPTABLES脚本
- 基于matlab的声波分析研究,基于MATLAB的声音信号分析与处理(共13页)
- 计算机网络工程专业大学排名,2020网络工程专业大学排名
- 【IOS篇】Cocos2d-x 集成Chartboost广告
- 华硕主板怎么进入bios
- 如何写期望薪资、离职原因、求职意向?
- 苹果5s参数_这次,苹果自己革了自己的命---iPhone12发布会全纪实
- 概率编程——未来也可以这样预测
- gif图片的体积怎么缩小?如何压缩动图大小?