VTK学习-vtkCamera

写在前面:

这篇博客主要记录书中有关于vtkCamera的相关内容整理。同样也比较基础,只是希望梳理一下,慢慢学习。

vtkCamera基本概念:

相机的概念就就当于观看舞台上演员演出的眼睛。观众可以位于不同的地方、不同角度观看表演,从而得到不同的观感。那么相机也是,VTK中利用vtkCmaera来表示相机,负责将三维场景投影到二维平面,最常用的就是电脑屏幕。相机投影相关的要素可如下图表示:


图1.相机vtkCamera投影示意图

那么相机相关的要素主要有:

  1. 相机位置。通过vtkCamera::SetPosition()函数设置相机的位置。传入为一个三维坐标位置。
  2. 相机焦点。通过vtkCamera::SetFocusPoint()函数设置焦点位置。默认位置在世界坐标系的原点。
  3. 朝上方向。通过vtkCamera::SetViewUp()函数设置相机朝上方向。传入一个三维(x,y,z)向量。也就表示从(0,0,0)到(x,y,z)的向量。默认为(0,1,0)。前三个确定了相机的实际方向。视图也通过这三个参数确定。
  4. 投影方向。相机位置到相机焦点的向量方向即为投影方向。可以通过vtkCamera::GetDirectionOfPrijection()函数获得该向量。
  5. 投影方法。投影方法有两种:一、正交投影,Orthographic Projection,也叫平行投影,Parallel Projection,进入相机的光线与投影方向平行。二、透视投影,Perspective Projection,进入相机的光纤相交于一点。这种投影方式会产生近大远小的视觉习惯。。可以通过vtkCamera::SetParallelProjection(int flag)函数来设定相机采用那几种投影方法。
  6. 视角。View Angle。默认视角大小为30°。可以通过vtkCamera::SetViewAngle()来设置。
  7. 前后裁剪平面。裁剪平面与投影方向相交,一般与投影方向垂直。注意,只有在前后裁剪平面之间的Actor才可见(本科好像在应用光学中学过这个)。可以通过vtkCamera::SetClippingRange(double dNear, double dFar)函数设置,前一个参数是离相机近的,后一个参数是离相机远的平面。默认参数范围是(0.1,1000)。

更多详细函数可以参考VTK官方文档:vtkCamera Class Reference

vtkCamera常用函数:

常用的相机属性设定方法在前面说的比较详细了。这里说一下创建和添加Camera的方法。
在使用vtkCamera之前需要包含相关头文件:

#include <vtkCamera.h>

利用vtkSmartPointer创建vtkCamera:

vtkSmartPointer<vtkCamera>myCamera=vtkSmartPointer<vtkCamera>::New();

将相机设置到渲染场景中:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值