gluLookAt 函数
来源:互联网 发布:js true false 编辑:程序博客网 时间:2024/06/06 03:49
gluLookAt(
摄像机x,摄像机y,摄像机z,
目标点x,目标点y,目标点z,
摄像机顶朝向x,摄像机顶朝向y,摄像机顶朝向z
)
osg中camera->setViewMatrixAsLopengl 的函数相当于opengl中的glulookat
openGL变换小节:
视图:指定观察者或摄像机的位置
模型:在场景中移动对象
模型视图:描述视图变换盒模型变换的对偶性
投影:对视见空间进行修剪和改变大小
视见区: 对到窗口的最终输出进行缩放
眼坐标:来自观察者的观察点,与可能发生的任何变换无关,可以把它们视为“绝对”屏幕坐标。因此并不是真正的坐标,而是代表一个虚拟的固定坐标系,用作参考的公共框架。大部分变换都是根据它们相对于眼坐标系的效果来描述的。
视图变换的过程如下:视图(eye)变换或者模型变换,投影变换(正射投影和透视投影),视见区变换。
利用实用库函数gluLookAt()设置视觉坐标系。在实际的编程应用中,用户在完成场景的建模后,往往需要选择一个合适的视角或者不停地变换视角,以对场景作观察。实用库函数gluLookAt()就提供了这样的一个功能。
void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,
该函数定义一个视图矩阵,并与当前矩阵相乘。
eyex, eyey,eyez 指定视点的位置
centerx,centery,centerz 指定参考点的位置
upx,upy,upz 指定视点向上的方向
yqchang 发表于 2007-7-2 22:26:00 阅读全文(1267) |回复(2) | 引用通告(32) | 编辑
Re:opengl中glulookat函数的意思
还是最后一句:
由于y轴和x轴是垂直的,所以也要求向量(C-U)和U互相垂直。这点在设置该函数参数时是必须注意的。
应用中不垂直也是没问题的,所以有找了个可能更合理的解释
void gluLookAt(
GLdouble eyex,
GLdouble eyey,
GLdouble eyez,
GLdouble centerx,
GLdouble centery,
GLdouble centerz,
GLdouble upx,
GLdouble upy,
GLdouble upz
);
eye=(eyex, eyey, eyez)是视点(原点)的位置
center = (centerx, centery, centerz)是视口中心点的位置
center - eye是z轴负方向
z = (eye - center) / |eye - center|
up = (upx, upy, upz) - eye表示上方
x轴正方向x = up × z / |up × z|
y轴正方向(就是正上方)y = z × x
由于y轴和x轴是垂直的,所以也要求向量(C-U)和U互相垂直。这点在设置该函数参数时是必须注意的。
应用中不垂直也是没问题的,所以有找了个可能更合理的解释
void gluLookAt(
GLdouble eyex,
GLdouble eyey,
GLdouble eyez,
GLdouble centerx,
GLdouble centery,
GLdouble centerz,
GLdouble upx,
GLdouble upy,
GLdouble upz
);
eye=(eyex, eyey, eyez)是视点(原点)的位置
center = (centerx, centery, centerz)是视口中心点的位置
center - eye是z轴负方向
z = (eye - center) / |eye - center|
up = (upx, upy, upz) - eye表示上方
x轴正方向x = up × z / |up × z|
y轴正方向(就是正上方)y = z × x
火花的明天(游客)发表评论于2007-12-16 0:54:54 个人主页 |引用 | 返回 |删除 | 回复
视点变换可以通过gluLookAt()函数完成,那三组参数分别指定了相机的位置、瞄准方向的参考点和相机向上方向。
通常视点变换操作在模型变换操作之前发出,以便模型变换先对物体发生作用。这样,场景中物体的顶点经过模型转换后一定到所希望的位置,然后再对场景进行视点定位等操作。模型变换和视点变换共同构成模型视景矩阵。
gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
1、改变前三个参数的值可以模拟人在实际环境中的移动;
2、改变中间三个参数的值,可以模拟人眼的转动,即所观察场景的变化。
3、后三个参数的值比较特殊,它所制定的不是一个点,而是一个方向,即决定将哪一个坐标轴作为向上的方向,如果向上方向与观察点到中心点的方向一致,结果将是不确定的。
0 0
- gluLookAt() 函数
- gluLookAt 函数
- gluLookAt()函数
- gluLookAt函数
- OpenGL之gluLookAt函数
- OpenGL函数思考-gluLookAt
- openGL中的gluLookAt函数
- Opengl---gluLookAt函数详解
- gluLookAt 函数详解
- OpenGL: gluLookAt函数详解
- OpenGL函数思考-gluLookAt
- OpenGL之gluLookAt()函数
- Opengl---gluLookAt函数详解
- Opengl---gluLookAt函数详解
- gluLookAt 函数详解
- OpenGL es gluLookAt 函数
- OpenGL函数思考-gluLookAt
- gluLookAt 函数详解
- C#如何运行外部程序(打开可执行程序):ShellExcute和Process
- 读SHAPE文件的属性数据
- encodeURI解决乱码问题bug
- c#[Serializable]关键字
- Windows下获取Android系统源码
- gluLookAt 函数
- 详谈Javascript中的String对象
- Java集合类
- 模板
- 正则表达式
- 深入浅出mfc 系列 第14章MFC 多线程程序设计
- 请教IFeatrue读取信息问题
- 封装代码和UI利器—Fragment(二)
- Activity 生命周期