计算机图形学基础(三) 观察1

Opengl中的标架

1.对象坐标系(建模坐标系)。
2.世界坐标系。
3眼坐标系(照相机坐标系)。
4裁剪坐标系。
5规范化的设备坐标系。
6窗口坐标系(屏幕坐标系)。
绘制流水线通常按照这个先后顺序出现。


一点说明

1.在大多数情况把照相机看作是固定的,其他标架则相对于照相机移动,一般读者可能更愿意采用不同的观点。

2.从模型坐标到世界坐标+从世界坐标到眼坐标,这两个变换通常合并为模-视变换,对应模-视变换矩阵,后面会遇到必须分开这两个变换的情形。


经典观察简介

透视投影
透视投影,在计算机图形系统中COP位于照相机标架的原点。

平行投影(观察点在无限远处)
平行投影(观察点在无限远处),在计算机图形系统中,照相机标架的原点通常位于投影平面。

在经典观察中有一个基本的概念叫主面,对象的表面往往由一些平面组成,每个平面都可以看成是一个主面。
长方体对象,有前面、后面、顶面等自然概念。此外,许多现实世界中的对象具有相互垂直的面,因此经常可以在这些对象中的表面找到三个彼此正交的方向。
经典投影图
经典投影图


计算机观察

我们应该能够生成任何一种经典投影图,因为建立在虚拟照相机的基础上,不过这两者有本质的区别:所有的经典投影图都依赖于对象、观察者和投影线之间的特定位置关系;
在计算机图形学中,我们强调对象定义和照相机参数设置这两者之间的独立性。因此,为了生成某种经典投影图,应用程序必须利用对象的信息来创建照相机,并且将照相机放在恰当的位置。

在之前没有显示地定义标架,采用默认的情形(三个标架重合)。之前在裁剪坐标系中直接指定顶点位置,或者通过通过仿射变换(基础二中的三维变换)改变位置和大小,并变换到裁剪坐标系中的裁剪立方体内部。
照相机固定在裁剪坐标系的原点并且指向z轴的负方向(如果对象位于裁减体内部,那么默认的照相机可以“看见”它后面的对象)。

为了使观察更加灵活,分解成两个基本操作,(1)模-视变换 –> 顶点位于照相机坐标中。(2)利用投影变换 –> 把指定的投影(正投影或者透视投影)应用于顶点,并且把位于视见体内部的对象变换到位于裁剪坐标系中的裁剪立方体内部。
通俗的说就是:先把照相机摆好,然后指定大小拍照片。
观察过程


定位照相机

照相机
照相机的初始方向是指向z轴负方向

定位照相机的三种方法
(1)通过一系列旋转平移来改变模-视变换矩阵,从而间接的指定照相机方位。(p145)
(2)通过。。。。。
照相机标架
VRP(view-reference point) 观察参考点(就是照相机放的地方)
VPN(view-plane normal) 观察平面法向量(投影平面方向)
VUP(view-up vector) 观察正向向量(确定照相机的方向是向上还是向下)

照相机
这图是网上找的,这里的VUV就是由VUP确定的,也就是上上图的v

一:在对象标架下描述照相机方位,二:通过指定投影变换来获得所需投影类型,第二个步骤经常被称为规范化变换,我们把它当作标架的变换来处理。。。。后面的内容以后再写。。。。

(3)Look-At函数
look at函数定位照相机

照相机位于点e,该点称为视点(eye point),是在对象标架下指定的,照相机的方向指向另一个点a,该点叫做参考点(at point)。
这两个点确定了VPN和VRP。

VRP=e;
VPN=a-e;

进行归一化
n

通过叉积及归一化操作生成uv。
uv

以上就是Look-At函数的思想,下面看代码:

mat4 LookAt( const vec4& eye, 
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值