游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5759|回复: 17

?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D像模

[复制链接]

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
发表于 2009-10-5 22:14:00 | 显示全部楼层 |阅读模式
?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D像模糊化

D3DXSPRITE要求?理是2的N次?纾??t???永??D像??的N次?纭
所以我不用它,而是三角形自己拼2D?D形。

但是我??景?我?置的是正交投影,?D像也???是原始大小,但是?D像模糊化了。
??模糊化?K?]有像D3DXSPRITE拉伸?D像那?涌植溃??谴_??模糊了很多很多。

我把640*480的?D片?Q成512*512的?D片後,??不??:?耍?芮逦??驮??D片一?恿恕

不是?已?告?e2N?r代了???槭颤N?要怎?解?Q?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2009-10-6 19:44:00 | 显示全部楼层

Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D

1.贴图必须是2次幂的,你三角形显示坐标是多少无所谓。

2.离全民告别2次幂时代还早着呢!不要忘了Intel有最大的显卡市场份额。

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-6 19:55:00 | 显示全部楼层

Re: Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t

hyzboy: Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D像模糊化

1.贴图必须是2次幂的,你三角形显示坐标是多少无所谓。

2.离全民告别2次幂时代还早着呢!不要忘了Intel有最大的显卡市场份额。

我??DX?榧y理??建的MIP,如果比如是256*576的?理,那?MIP 0??e的尺寸???56*1024。
?是否意味著?槊???D片分配1024*1024大小的存?ζ鞑皇羌?莩薜氖虑椋
如果我2D??槊??640*480的?D都分配1024*1024????觞N?樱匡@存

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2009-10-6 20:07:00 | 显示全部楼层

Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D

你可以自己创建贴图,即使用D3D函数,但不使用D3DX函数。

现在仍有很多不支持非2次幂尺寸贴图的显卡,比如intel系列,ati 9系列,n我用的少就不知道了。

一般的作法是先检测硬件,如果支持非2次幂贴图,就按尺寸创建。当然要注意有些显卡必须用4的倍数,或是不能用质数的尺寸。

如果不支持非2次幂贴图,把图片尺寸拆成2次幂,创建成多张支持2次幂的贴图来显示。
或者创建大一点的图片。640x480扩大应该是1024x512吧!

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-7 15:24:00 | 显示全部楼层

Re: Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t

hyzboy: Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D像模糊化

你可以自己创建贴图,即使用D3D函数,但不使用D3DX函数。

现在仍有很多不支持非2次幂尺寸贴图的显卡,比...

测试支持非2次幂尺寸贴图的标志是什么?
“你可以自己创建贴图,即使用D3D函数,但不使用D3DX函数。”具体什么函数?
“640x480扩大应该是1024x512吧!”如果每张图我都创建2次幂的尺寸,那样会不会太浪费存储器?比如有20张行走图是128*192的图,那每张都要创建128*256的图

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-10-7 16:01:00 | 显示全部楼层

Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D

dx9下要做半个像素的偏移,让texel对齐屏幕坐标中心
对2D图形,不做缩放的话,不需要mipmap

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2009-10-7 16:09:00 | 显示全部楼层

Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D

行走这种序列,有两种办法:

1.只创建一张贴图,每一帧改变贴图内容
2.将所有帧放在一张大贴图上,每次改变贴图坐标显示。

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-7 17:52:00 | 显示全部楼层

Re: Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t

clayman: Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D像模糊化

dx9下要做半个像素的偏移,让texel对齐屏幕坐标中心
对2D图形,不做缩放的话,不需要mipmap

        D3DXCreateTextureFromFileEx(lpDevice,
                "E:\\软件家园\\工具软件\\RPG Maker XP\\RGSS\\Standard\\Graphics\\Tilesets\\skin.bmp",
                D3DX_DEFAULT,
                D3DX_DEFAULT,
                D3DX_FROM_FILE,
                0,
                D3DFMT_UNKNOWN,
                D3DPOOL_MANAGED,
                D3DX_DEFAULT,
                D3DX_DEFAULT,
                D3DCOLOR_ARGB(0,153,255,255),
                NULL,
                NULL,
                &Texture);
        D3DSURFACE_DESC sd;
        Texture->GetLevelDesc(0,&sd);
        OutDebug(sd.Width);
        OutDebug(sd.Height);

?D像是640*480的,MIP 0的尺寸是1024*512。
????聿焕速M咯。

“dx9下要做半个像素的偏移,让texel对齐屏幕坐标中心”不明白你的意思,能不能?出代?。

既然MIP?????建2次?绲某叽纾??怯??:??D屈N不如自己??建一??2次?绲某叽纾?会岚鸭y理COPY上去,怎????

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-7 21:31:00 | 显示全部楼层

Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D

我??才?y?了一下 SPRITE 和 三角形拼 做32*32的?D?K? 20 * 15??,?K且循?做N次。
如果每次循?的三角形拼的Z都相同的?,4次循?FPS就低於60,而SPRITE高於60FPS。
如果每次循?的三角形拼的Z都不相同的?(?Z??),三角形拼效率比SPRITE高一丁?,?K且循?6次FPS也有60。(我是使用?理座?俗??Q?拇?D中?定32*32的?^域的,效率???比VB高吧?)

不知道到底用SPRITE 好?是三角形拼?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2009-10-7 23:45:00 | 显示全部楼层

Re:?槭颤N我用三角形自己拼2D?D形,?s?要求2的N次?纾糠?t?D

可能你画三角形的方式有问题

D3DXSPRITE本质上也是调底层的三角形方式画的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-20 04:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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