IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Treejs系列--7相机 -> 正文阅读

[游戏开发]Treejs系列--7相机

序言

摄像机在3D演示中扮演着重要的角色,Treejs提供了Camera对象及其子对象,可以非常方便的应用。

正交相机

使用正交投影来进行投影,无论物体距离相机距离远或者近,在最终渲染的图片中物体的大小都保持不变。渲染2D场景或者UI元素非常有用。

OrthographicCamera( left : Number, right : Number, top : Number, bottom : Number, near : Number, far : Number )
left: 摄像机视锥体左侧面。
right: 摄像机视锥体右侧面。
top: 摄像机视锥体上侧面。
bottom: 摄像机视锥体下侧面。
near: 摄像机视锥体近端面。
far: 摄像机视锥体远端面。

改变物体距离相机距离,物体大小始终如下
在这里插入图片描述

var camera = new THREE.OrthographicCamera( window.innerWidth / - 2, window.innerWidth / 2, window.innerHeight / 2, window.innerHeight / - 2, 0.1, 1000 );

camera.position.z = 1; //改变相机距离物体位置,物体保持不变
//camera.position.z = 999; 

透视相机

这一摄像机使用透视投影来进行投影,用来模拟人眼所看到的景象,它是3D场景的渲染中使用最普遍的投影模式。

PerspectiveCamera( fov : Number, aspect : Number, near : Number, far : Number )
fov: 摄像机视锥体垂直视野角度
aspect: 摄像机视锥体长宽比
near: 摄像机视锥体近端面
far: 摄像机视锥体远端面

改变相机距离物理距离为466
在这里插入图片描述

改变相机距离物理距离为66
在这里插入图片描述

var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

//改变相机距离物体位置,犹如人眼平常看到的景象,远小近大。
camera.position.z = 466; 
//camera.position.z = 66; 

立体相机

双透视摄像机常被用于创建3D立体影像或者视差效果。

StereoCamera(aspect : Float,eyeSep : Float,cameraL : PerspectiveCamera,cameraR : PerspectiveCamera)
aspect: 摄像机视锥体的长宽比,默认值是1。例如设置为场景的宽高比。
eyeSep: 模拟人的瞳孔间距,默认值是0.064
cameraL: 左摄像机
cameraR: 右摄像机

立方相机

创建6台相机,将它们的拍摄结果渲染。

//构造器
CubeCamera( near : Number, far : Number, cubeResolution : Number )
near: 近剪切面的距离
far: 远剪切面的距离
cubeResolution: 设置立方体边缘的长度
//创建6台相机
var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
scene.add( cubeCamera );

//材质中设置环境贴图为相机拍摄
var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget.texture } );
var car = new Mesh( carGeometry, chromeMaterial );
scene.add( car );

// 更新相机
car.setVisible( false );
cubeCamera.position.copy( car.position );
cubeCamera.update( renderer, scene );

//渲染场景
car.setVisible( true );
renderer.render( scene, camera );
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 16:02:57  更:2022-05-01 16:03:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/17 1:02:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码