关于OSG中各种变换的理解

最近学习OSG到第7章观察我们的世界,与之前学习的OpenGL有一些区别,当然学OpenGL时就一直不太懂各种坐标系以及变换。看了很久,现将内容整理如下。内容来自《OpenGL编程指南》+《OpenSceneGraph三维渲染引擎设计与实践》

一、视图基础知识

计算机图形学的要点就是创建三维物体的二维图像,因为要在屏幕上显示,所以必须是二维的。我理解就是要让屏幕里的东西看起来是三维的。

但无须太早考虑如何在平面的二维屏幕上显示最终图像,要尽量在三维空间里想象物体的形状。

三维世界与屏幕像素的变换可以与照相机拍照过程类比:

(1)设置相机位置:视点变换,即观察者是从什么方向以及位置来观察物体的。

在OpenGL中是通过gluLookAt()函数来确定视图变换,这个函数的参数表示照相机的位置,朝向,以及那个方向是up方向

gluLookAt(eyex,eyey,eyez,centerx,centery,centerz,upx,upy,upz)

eye:代表了相机的位置

center代表了视线方向上任意一点,由此和eye的坐标确定了相机瞄准的哪个位置。

up:表示哪个方向是朝上的,也就是相机是正着拿还是反着拿。


在OSG中,我们使用osg::Camera节点来实现,视点变换矩阵又称为观察矩阵。Camera类保存大量的相机设置参数,如视口、投影矩阵、和背景颜色等。


(2)调整物体位置:模型变换,即选定模型位置,对场景进行安排。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值