游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2044|回复: 6

关于视平面投影的问题

[复制链接]

9

主题

58

帖子

64

积分

注册会员

Rank: 2

积分
64
发表于 2006-8-11 20:00:00 | 显示全部楼层 |阅读模式
3d game guru上用的是水平、垂直视角都相同的视景体,所以实际的视平面为正方形
对于要获得宽高比不为1的视平面,书中是直接对y轴进行缩放(不知道这样对图象是不是会有一定的变形),不过投影公式中y轴的缩放因子是直接乘以宽高比的,这样岂不是y轴被拉长了??不解.......
还有里面的相机数据结构使用了归一的视平面大小,但是却使用不为1的视距

总之,大概个人原因,觉得这本书前后有点出入,有的问题含糊其词
大家能不能推荐几本其他的3d图形学书籍
谢谢

9

主题

58

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2006-8-12 13:50:00 | 显示全部楼层

Re:关于视平面投影的问题

up一下~

9

主题

58

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2006-8-13 21:30:00 | 显示全部楼层

Re:关于视平面投影的问题

up~

9

主题

58

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2006-8-15 00:02:00 | 显示全部楼层

Re:关于视平面投影的问题

???????

29

主题

157

帖子

163

积分

注册会员

Rank: 2

积分
163
发表于 2006-8-15 00:57:00 | 显示全部楼层

Re:关于视平面投影的问题

图像不会变形, 要使图像变形, 那是对模型矩阵进行了缩放, 对视景体的修改只是改变了投影矩阵而已, 如果用照相机类比的方式来解释的话, 就是改变了照相机的焦距和镜头类型(如广角镜头), 所以模型的比例是不会变形的.

至于视距不为1的问题, 呵呵, 只有向量为了统一计算才使用归一化, 视距是标量(表示能看到的范围的距离,不代表方向)怎么能归一化呢?

如果是学习OpenGL, 那么使用red book(即OpenGL权威编程指南)
如果对某些图形学的只是有疑问, 请参阅<<计算机图形学>> 虽然里面的算法在一般应用中基本上不用(因为都集成到显卡里面去了), 但是可以起到解惑的作用.

9

主题

58

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2006-8-15 12:54:00 | 显示全部楼层

Re:关于视平面投影的问题

这是andre的回复
that is there is no way to project a 1:1 image where FOV h = v onto a
non-square surface, so one axis has to distort OR you have to slightly
change the FOV on the axis that you are less interested in, usually the Y

他的意思好像是的确会变形,除非调整fov

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-9-17 11:34:00 | 显示全部楼层

Re: 关于视平面投影的问题

不过投影公式中y轴的缩放因子是直接乘以宽高比的,这样岂不是y轴被拉长了?
---------
不会。自己推导一下,就会明白。方形投影要求x,y向的FOV相等。如果视平面宽高比变成不为1 ,要想获得比例不失真的图像,那么x,y向的FOV肯定不能相等,如果相等,图像肯定会发生变形。一般可固定x向的FOV,调整y向FOV,使得tan(fovx/2)/tan(fovy/2) = W/H即可。

去我的blog看看吧,里面有推导。
http://www.cppblog.com/SoRoMan/archive/2006/09/17/12566.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 11:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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