游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2618|回复: 7

地形漫游,是应该让地形静止,相机动,还是相机静止,地形动?

[复制链接]

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
发表于 2013-1-27 15:22:04 | 显示全部楼层 |阅读模式
本帖最后由 微无渊 于 2013-1-27 15:33 编辑

目前的情形是这样:
地形被分成一个个tile块,每个块都有一个绝对的世界空间坐标,这个坐标最大能有好几十万.
然后通过改变相机的位置,旋转角度,来漫游地形.
但是,出现的问题是,当相机坐标有几十万的数值时,旋转视角,画面就会有很大跳跃感,而如果让相机指向世界空间原点附近(这样的话,坐标最大值也就几千),画面就很平滑了。.
(我也试过,同一个画面下,只改世界空间和相机空间的坐标,结果是一样的,坐标越大,跳动感越强)

所以,我怀疑是因为float类型对于几十万的数值,会产生很大的误差,才会有跳动感.
所以,我想到了,如果让相机静止,地形动,那么由于相机总是在原点附近,最大坐标不会很大,就不会产生float计算误差,
移动的时候,不要设置相机,只去更新每个地形tile的世界空间位置就行了,

求教?

31

主题

257

帖子

1752

积分

金牌会员

申城谍影

Rank: 6Rank: 6

积分
1752
QQ
发表于 2013-1-28 12:25:32 | 显示全部楼层
有没可能,地形没做LOD,坐标大时,视线内3角形太多,显卡导致的顿卡。。。。。。。

34

主题

844

帖子

1755

积分

金牌会员

Rank: 6Rank: 6

积分
1755
发表于 2013-1-28 16:38:45 | 显示全部楼层
CPU认为,摄像机动跟物体动是一样的。
人脑认为,摄像机动会更好理解一些。

float不行,那就用double好了。

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2013-1-28 18:07:57 | 显示全部楼层
几十万?你最小的单位有多少?

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
 楼主| 发表于 2013-1-29 10:17:30 | 显示全部楼层
游戏阿家 发表于 2013-1-28 18:07
几十万?你最小的单位有多少?

整个地图由255*255个tile组成,tile即地形网格
每个tile是1200×1200的尺寸

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
 楼主| 发表于 2013-1-29 10:19:13 | 显示全部楼层
本帖最后由 微无渊 于 2013-1-29 10:43 编辑
snghun 发表于 2013-1-28 16:38
CPU认为,摄像机动跟物体动是一样的。
人脑认为,摄像机动会更好理解一些。


我也想用double,可是d3d很多类型都是float类型,

另外补充一点,我的相机是dxut直接抄过来的,没改过,这个不会有什么问题,而且也用单独的项目做了测试,一个盒子和一个地形,把相机位置调到20W的位置,然后把世界空间也设到20W,结果20W的就有跳动感,而若是原点坐标就非常平滑。

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
 楼主| 发表于 2013-1-29 11:08:15 | 显示全部楼层
本帖最后由 微无渊 于 2013-1-29 15:25 编辑

还是相机问题.而不是误差.

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
 楼主| 发表于 2013-1-29 15:27:52 | 显示全部楼层
经测试,dxut和龙书里提供的相机类,当数值有几十万时都存在问题,(2000,2W都正常,到了20W,就不对了)
可能是数据溢出..
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-27 02:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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