游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1709|回复: 4

用D3D画tile的问题。

[复制链接]

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2006-2-12 19:34:00 | 显示全部楼层 |阅读模式
4个顶点画一个triangle strip。如此拼接出地图表面来。

渲染的时候如果加了线性过滤,就碰到一个比较讨厌的问题,这个texture区域边缘的点的颜色总是会和区域外面的点的颜色混合。于是拼接的时候肯定就会一堆网格了。

想过一些解决办法,但不知道怎样做最合理,请教一下:

1、不用filter。铁定不会出问题,但是如果缩放tile的尺寸自然会“马赛克”了……当然控制好尺寸也不是什么大问题。

2、tile图片设计的时候注意,tile之间已经尽量拼好,这个办法貌似不错,就是对美工的要求比较高。

3、渲染之前事先用DDraw把图片拼好,然后整个渲染。没干过,不知道好不好。

[em5]

5

主题

100

帖子

133

积分

注册会员

Rank: 2

积分
133
发表于 2006-2-14 02:29:00 | 显示全部楼层

Re:用D3D画tile的问题。

不知道用用dds格式mip来解决行不

10

主题

88

帖子

88

积分

注册会员

Rank: 2

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

Re:用D3D画tile的问题。

mipmap还没搞明白哈。
我只是想了解下大家普遍采用何种方式呢?

6

主题

42

帖子

42

积分

注册会员

Rank: 2

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

Re:用D3D画tile的问题。

      对于地表,建议采用预渲染机制,即类似你的第三种方法。这样不仅解决了“马赛克”问题,在性能上也比单独渲染tile好。

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-2-14 10:28:00 | 显示全部楼层

Re:用D3D画tile的问题。

有个参数叫clamp...全名我忘了,自己去查查

默认情况下纹理集会临近合并,既uvw超过1.0就变成1-newuvw的新坐标,所以会出现接边问题。clamp_xxxx参数是用来控制纹理越界用的,这个参数用来控制超过1.0以后的处理机制。全称我忘了,你自己去查查资料

另一种解决方法是升一个像素,因为拼接纹理时,前一个纹理的尾坐标刚好占据新的纹理的起始坐标,新的纹理坐标的启示值仍然是上一个坐标的尾值,所以会出现越界问题。原来的坐标为64*64,新的size应该为65*65。这样就ok了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 10:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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