游戏开发论坛

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

【求助】坐标转换问题

[复制链接]

15

主题

231

帖子

243

积分

中级会员

Rank: 3Rank: 3

积分
243
发表于 2010-11-3 13:31:00 | 显示全部楼层 |阅读模式
请问各位,如何将世界坐标怎么转换成相机坐标,屏幕坐标?

30

主题

89

帖子

91

积分

注册会员

Rank: 2

积分
91
发表于 2010-11-3 15:12:00 | 显示全部楼层

Re:【求助】坐标转换问题

世界坐标到相机坐标,是根据摄像机的位置,角度,观察方向决定的.
把摄像机位置移动到原点,这个过程,物体坐标也要根着变化,应为要保持我们所看到的东西和以前一样.

假设摄像机原位置为(camX,camY,camZ).原点(0,0,0);
则物体位置为objX-camX,objX-camY,objZ-camZ);这就完成了世界坐标到相机坐标的变化.

相机坐标到屏幕坐标,是把三维点转换为二维的过程.是个透视的过程.
关键的数据是摄像机到视平面的距离d.
如果有这个值了,就可以运用相似三角形等比的原理,求出,投影在视平面上的点.

它的式子较多,可查阅资料.

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-11-7 13:45:00 | 显示全部楼层

Re:【求助】坐标转换问题

网上有公式可查

另外,用D3D的话,有函数帮你转换。

30

主题

89

帖子

91

积分

注册会员

Rank: 2

积分
91
发表于 2010-11-10 23:07:00 | 显示全部楼层

Re:【求助】坐标转换问题

世界坐标到相机坐标的变化.我忽略了摄像机朝向的问题.物体坐标(objX,objY,objZ).
我只说了第1步平移,

第2步是旋转:
假设,摄像机方向(ang_x,ang_y,ang_z),则需要分别乘以绕X,Y,Z的旋转公式.

上面两步的目的,就是把摄像机移到原点.物体也跟着过来.

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-11-11 20:47:00 | 显示全部楼层

Re: 【求助】坐标转换问题

相机坐标=世界坐标*ModelViewMatrix;
屏幕坐标=世界坐标*ModelViewMatrix*ProjectionMatrix;

2

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2010-11-13 15:41:00 | 显示全部楼层

Re:【求助】坐标转换问题

相机坐标是视空间的坐标系,屏幕坐标是投影后的空间的坐标系。
公式如楼上所说。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-30 11:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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