three.js学习(4):Camera

相机的类型
1.CubeCamera(立方体相机)
创建6个摄像机,将他们所拍摄的场景渲染到WebGLRenderTargetCube上。
(1)构造函数:
CubeCamera(near:number, far:number, cubeResolution:number,options:object)
*near–近端剪切面的距离
*far–远端剪切面的距离
*cubeResolution–立方体边缘的长度设置
*options–传递给自动生成的WebGLRenderTargetCube的纹理参数,默认为
{ format: RGBFormat, magFilter: LinearFilter, minFilter: LinearFilter }
(2)属性:
*Object3D类的公用属性
*.renderTarget:生成的立方体纹理
(3)方法:
*Object3D类的公用方法
*.update(renderer:WebGLRenderer,scene:scene):null
renderer–当前的WebGL渲染器
scene–当前场景
*.clear(renderer:WebGLRenderer,color:Boolean,depth:Boolean,stencil:Boolean):null
清空渲染目标的颜色、深度、模板缓冲区。
2.OrthographicCamera(正交相机)
一个使用正交投影的相机。在这种投影模式下,无论物体距离相机距离远或者近,在最终渲染的图片中物体的大小都保持不变。 这对于渲染2D场景或者UI元素是非常有用的。
(1)构造函数:
OrthographicCamera(left:number,right:number,top:number,bottom:number,near:number,far:number)
left–摄像机视椎体的左侧面
right–摄像机视椎体的右侧面
top–摄像机视椎体的上侧面
bottom–摄像机视椎体的下侧面
near --摄像机视椎体近端面
far–摄像机视椎体远端面
(2)属性:
*Object3D类的公用属性
*.left: float
*.right: float
*.top: float
*.bottom: float
*.near: float
*.far: float
*.isOrthographicCamera: boolean
测试这个类是否为正交相机,默认为true。
*.view: object
由setViewOffset设置,默认为null。
*.zoom: number
获取相机的缩放倍数,默认为1。
(3)方法:
*Camera的共有方法
*.setViewOffset(fullwidth: float,fullheight:float,x:float,y:float,width:float,height:float):null
fullWidth — 多视图的全宽设置
fullHeight — 多视图的全高设置
x — 副摄像机的水平偏移
y — 副摄像机的垂直偏移
width — 副摄像机的宽度
height — 副摄像机的高度
设置视椎体的偏移量
*.clearViewOffset():null
清空视椎体的偏移量
*.updateProjectionMatrix():null
更新相机矩阵
*.toJSON():json
使用json格式返回摄像机数据。
3.PerspectiveCamera(透视相机)
创建使用perspective projection(透视投影)的相机。
遵循近大远小的规则。
(1)构造函数:
*PerspectiveCamera(fov:number,aspect:number,near:number,far:number)
fov–相机视椎体垂直视野角度
aspect–相机视椎体长宽比
near–相机视椎体近端面
far–相机视椎体远端面
(2)属性:
*.aspect: float
设置相机视椎体的长宽比,通常设为画布的宽/高。默认为1(正方形画布)。
*.far:float
设置相机的远端面,默认是2000。
*.filmGauge:float
胶片尺寸,默认为35(毫米)。
*.filmOffset:float
水平距中心偏移量(单位:毫米),默认为0。
*.focus:float
焦距,默认值是10。
*.fov:float
设置相机垂直视野角度(垂直方向上的广角),默认50。
*.isPerspectiveCamera:Boolean
判断相机是否为PerspectiveCamera,默认为true。
*.near:float
设置相机近端面,默认为0.1。
*.view:object
*.zoom:number
获取或设置相机的缩放倍数,默认为1。
(3)方法:
*.clearViewOffset():null
清空由.setViewOffset设置的偏移量。
*.getEffectiveFOV():float
返回当前垂直视野广角。
*.getFilmHeight():float
返回当前胶片的高。
*.getFilmWidth():float
返回胶片的宽。
*.getFocalLength():float
返回.fov相对于.filmGauge的焦距。
*.setFocalLength(focalLength:float):null
设置相对于当前.filmGauge的焦距,FOV。
*,setViewOffset(fullWidth: float, fullHeight:float,x:float,y:float,width:float,height:float):null、
fullWidth — 多视图的全宽设置
fullHeight — 多视图的全高设置
x — 副摄像机的水平偏移
y — 副摄像机的垂直偏移
width — 副摄像机的宽度
height — 副摄像机的高度
*.updateProjectionMatrix():null
更新相机投影矩阵。
*.toJSON():json
使用json格式返回相机数据。
4.StereoCamera(立体相机)
两个立体相机,用来创建3D Anaglyph(3D立体影像)效果。
(1)构造函数:
.StereoCamera()
(2)属性:
*.aspect:float
默认为1。
*.eyeSep:float
默认是0.064。
*.cameraL:PerspectiveCamera
左侧相机。
*.cameraR:PerspectiveCamera
右侧相机。
(3)方法:
*.update(camera:PerspectiveCamera):null
基于相机通过场景更新立体相机。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值