游戏开发论坛

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

D3DVALUE是float,貌似出来一些问题……

[复制链接]

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2006-2-15 22:49:00 | 显示全部楼层 |阅读模式
[em4]
我主要是画2D图形。

D3DVERTEXT D3DVECTOR D3DMAXTRIX貌似都用float,但随之而来出现点问题:

坐标貌似不是很精确,例如我画一个矩形,在位置a和位置b看起来貌似不一样。
我觉着应该是float运算造成的,开了linear filter效果之后,这个问题虽然变得不明显了,但是这样的话纹理也模糊了,不开filter,有些效果看起来很不爽——例如地图小距离卷动的时候,看起来晃(像素点的相对位置发生变化了),在屏幕上画个窗口,结果慢速拖动窗口的时候,里面的内容也感觉晃来晃去的。。。

实在是很无语,求解决方案。 [em4]

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-2-15 22:57:00 | 显示全部楼层

Re:D3DVALUE是float,貌似出来一些问题……

垂直同步。

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
 楼主| 发表于 2006-2-15 23:06:00 | 显示全部楼层

Re:D3DVALUE是float,貌似出来一些问题……

貌似没关系吧……

6

主题

42

帖子

42

积分

注册会员

Rank: 2

积分
42
QQ
发表于 2006-2-17 10:31:00 | 显示全部楼层

Re:D3DVALUE是float,貌似出来一些问题……

      针对2D的话,我们也遇到过这个问题,如果用float相关的结构来表示整型数值,有时候浮点误差确实会造成抖动。我们临时采用一些方法,在2D应用层写入和读取这些基础结构时都使用整型先转换一次。
      貌似解决问题了……
      

35

主题

161

帖子

161

积分

注册会员

Rank: 2

积分
161
发表于 2006-2-17 12:38:00 | 显示全部楼层

Re:D3DVALUE是float,貌似出来一些问题……

2d的话,坐标采用整数就可以了。
虽然矩阵用浮点,但平移变换只涉及到加法,只要输入是无小数部分的浮点,得到的值是不会有误差的
旋转会产生一些误差,但和你的问题无关。缩放当然也无所谓了。
总之,对于2d对象,用整数坐标就没问题了。

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
 楼主| 发表于 2006-2-17 14:22:00 | 显示全部楼层

Re:D3DVALUE是float,貌似出来一些问题……

呃,可能我的表述不对。(我说的不是累计误差)
以前我确实用float算坐标,累计起来误差可能造成tile之间的缝隙,后来我用整数计算代替之后,缝隙问题解决了。
但是,最近发现虽然消除了缝隙,但是还是感觉抖动,貌似是这个矩形的x1,y1,x2,y2坐标都对,但是看起来就和原图不同。

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
 楼主| 发表于 2006-2-17 14:29:00 | 显示全部楼层

Re:D3DVALUE是float,貌似出来一些问题……

……貌似知道怎么回事了,我做UV坐标计算的时候还是float,虽然矩形坐标对了,UV坐标貌似又差了,晕。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 11:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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