游戏开发论坛

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

[DX9]纹理2的次幂尺寸限制的一个解决方案,不知是否可行?

[复制链接]

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
发表于 2012-4-4 15:55:00 | 显示全部楼层 |阅读模式
还是老问题,2D游戏的众多商业资源大多都是非2的次幂的,要想用DX9加载这些图像,就必须解决这个纹理尺寸被扩充成2的次幂的问题。

想到了一个简单的方法,就是可以把它们分割成一个个2的次幂的小图块进行渲染,
比如拿640×480的尺寸为例,可以分割成20行15列的小图块,每个图块的尺寸是32×32,

如何?效率上没啥影响吧? [em24]

4

主题

1111

帖子

1498

积分

金牌会员

Rank: 6Rank: 6

积分
1498
发表于 2012-4-4 21:28:00 | 显示全部楼层

Re:[DX9]纹理2的次幂尺寸限制的一个解决方案,不知是否可

无语了

9

主题

86

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
发表于 2012-4-4 22:05:00 | 显示全部楼层

Re:[DX9]纹理2的次幂尺寸限制的一个解决方案,不知是否可

那你还不如凑大的点的数,不是吗?绘一次肯定比绘N次更加效率吧(在大多数情况下)
凑大数的时候,那部分不足的设Alpha为透明
当然,一般商业应用的话,资源本身就是2的次幂.

2

主题

23

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2012-4-5 08:59:00 | 显示全部楼层

Re:[DX9]纹理2的次幂尺寸限制的一个解决方案,不知是否可

影响大去了,只有看到把小纹理组合成大纹理的减少渲染批次的。。。。

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2012-4-5 10:13:00 | 显示全部楼层

Re:[DX9]纹理2的次幂尺寸限制的一个解决方案,不知是否可

你不如创建一个超过一屏的纹理,然后在内存中模拟一个2D绘图区,然后每帧更新这个纹理。

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
 楼主| 发表于 2012-4-5 13:21:00 | 显示全部楼层

Re: Re:[DX9]纹理2的次幂尺寸限制的一个解决方案,不知是

hyzboy: Re:[DX9]纹理2的次幂尺寸限制的一个解决方案,不知是否可行?

你不如创建一个超过一屏的纹理,然后在内存中模拟一个2D绘图区,然后每帧更新这个纹理。



是不是创建一张屏幕大小的纹理,然后渲染的时候,动态的把各个图像LockRect到该纹理上??

3

主题

70

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2012-4-5 20:46:00 | 显示全部楼层

Re:[DX9]纹理2的次幂尺寸限制的一个解决方案,不知是否可

我就纳闷了,你天天经考虑硬件问题累不累啊,DXSDK就是让你摆脱和硬件打交道的,你竟然无视。
关于贴图2次幂的问题,你用D3DXCreateTextureFromFileEx不就得了。
MSDN有详细介绍:http://msdn.microsoft.com/en-us/library/bb172802(VS.85).aspx
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 18:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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