游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4010|回复: 5

Opengl 中的平移变换到底是怎么回事的呢???

[复制链接]

4

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2007-8-5 09:11:00 | 显示全部楼层 |阅读模式
举个例子:
当没任何平移变换时,我们是在原点(0,0,0)看的,但平移了之后,如这么平移glTranslatef(1,2,-8)后,就好象现实生活中,我从(0,0,0),跑到(1,2,-8)去观察事物了.
请教以下:我怎么是面朝  Z 轴的正方向呢???我觉得应该朝 -Z方向啊??
       也许你会说这是glTranslatef()这个函数是这么规定的.
         如果是这样或不是,请你告诉我用glTranslatef()和glRotatef() 这两个函数设置场景中模型的位置
           有什么诀窍???
   小弟将感激不敬!!!!!!!!!!!!!!!!!!!!

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-8-5 14:15:00 | 显示全部楼层

Re:Opengl 中的平移变换到底是怎么回事的呢???

视点的平移和世界坐标的平移是相反的。有一个相对的过程。

比如:“让键盘远离你”和“让你远离键盘”  虽然最后的效果一样,但是移动的方向却是相反的。

这里,你平移的视点,所以实际的位置是(-1,-2,8),这时候面向的是-z,这时能看见模型。而你认为是在(1,2,-8),应该看不到模型却看到了,所以认为面向z。

平移操作,永远不会改变相机的朝向。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-8-6 15:09:00 | 显示全部楼层

Re: Opengl 中的平移变换到底是怎么回事的呢???

dingguanghui: Opengl 中的平移变换到底是怎么回事的呢???
当没任何平移变换时,我们是在原点(0,0,0)看的,但平移了之后,如这么平移glTranslatef(1,2,-8)后,就好象现实生活中,我从(0,0,0),跑到(1,2,-8)去观察事物了.

这就不对了.
glTranslatef(1,2,-8),是物体移动了(1,2,-8),你没有动.

4

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2007-8-7 15:13:00 | 显示全部楼层

Re:Opengl 中的平移变换到底是怎么回事的呢???

glTranslatef( )都是使物体移动吗?
只有glLookAt( )才能改变相机的朝向是吧?

2

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2007-8-7 18:46:00 | 显示全部楼层

Re:Opengl 中的平移变换到底是怎么回事的呢???

不好意思,我答非所问了 [em5]

0

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2007-8-10 18:39:00 | 显示全部楼层

Re:Opengl 中的平移变换到底是怎么回事的呢???

所谓的诀窍……

一般情况下,先移动,后旋转。这样可以保证物体位于正确的位置,并拥有正确的朝向。

不过对于绕某个点作旋转运动的物体来说,可以先旋转后平移。

只能说,多试验几次,就知道怎么把物体摆放到正确的位置了,光看不练永远不可能真正理解。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 13:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表