游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 流川枫

某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就??

[复制链接]

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2009-10-25 18:56:00 | 显示全部楼层

Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就

PIX调试

对象: 90x90纹理 创建方式:X8R8G8B8  函数:D3DXCreateTextureFromFileEx()函数 状态:无MipMap
1:Width = D3DX_DEFAULT; Height = D3DX_DEFAULT  占用空间大小 = 65536 = 128 x 128 x 4
2: Width = D3DX_DEFAULT_NONPOW2; Height = D3DX_DEFAULT_NONPOW2 占用空间大小  = 32400 = 90 x 90 x 4

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

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

Re: Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持

zhyinty: Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就??Σ挥?次?纾 驹??】

PIX调试

对象: 90x90纹理 创建方式:X8R8G8B8  函数:D3DXCreateTextureFromFileEx()函数 状态:无Mi...

答案已?很明?了,我是?Φ摹

3

主题

30

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2009-10-26 19:29:00 | 显示全部楼层

Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就

对于楼主坚持用事实说话的钻研精神,绝不人云亦云的求是精神,我是非常赞赏的!
虽然我是一D3D菜鸟,不过自认为C/C++基础还行,所以对于“非2的N次幂的纹理实际占用多少存储空间”的问题提个个人的看法以验证:先建两张超大的图片做纹理,如:一张4096*4096的(图片一),另一张4095*4097的(图片二),图片内容不重要,图省事的话,用PS创建两张空白的图片也成,然后加载几十或几百个图片一的纹理,运行你的程序,顺便打开显卡资源监测工具(不知道具体名称,但肯定有这样的工具);再修改一下代码,加载同样数量的图片二的纹理,再看看占用的显存,二者对比一下就清楚了。

0

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2009-10-27 01:22:00 | 显示全部楼层

Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就

实际的nop纹理内存分配是由driver来做的,对dx是透明的,用pix来测试没有意义
早期的硬件底层通常都要对nop纹理要进行padding,用空白数据填充为2的n次方纹理
现代的gpu已经改进了内部实现,不再需要padding
每个硬件厂商的对nop纹理的实现是不一样的,所以这些资料不会出现在dx文档里,由于是驱动的内部实现细节,也很少出现在正式文档中,只是nv或者ati早一些的技术文档偶尔会提到
关于nop纹理的性能,可以去看shaderx3 7.1的nop部分

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-27 01:57:00 | 显示全部楼层

Re: Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持

fanatic: Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就??Σ挥?次?纾 驹??】

实际的nop纹理内存分配是由driver来做的,对dx是透明的,用pix来测试没有意义
早期的硬件底层通常都要对no...

不要在意??!

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2009-10-27 09:09:00 | 显示全部楼层

Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就

又开始钻牛角尖了.楼主先不要讨论需不需要2次幂,你先想一想,为什么以前显卡需要2次幂?这个不仅仅影响到大小,纹理采样,mipmap的生成,显存的分配都有关系的啊

3

主题

30

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2009-10-27 10:22:00 | 显示全部楼层

Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就

赞同44楼fanatic朋友的看法,对非2的N次幂的纹理的处理细节,N卡和A卡的处理方式是会有差异的,即使是同一家的产品,也会因为具体型号的产品面市时间不同而略有不同,所以只要微软老大没发话说“在DX 11中,非2的N次幂的纹理一定要绝对完善地支持,而不是‘有条件地’,存储和处理等其它处理细节要如何如何,否则产品中不能说支持DX 11。”,这个问题就没有一定的答案。
  不过,虽然今天显存和内存跌成了白菜价,但还有很多用着集成显卡的用户,他们的显存都是从系统内存中挖一小块来用的,所以弄清楚这个问题对于降低硬件的要求,以及减少美工的工作量还是有一定的意义的,尤其是后者,也许会欢呼雀跃的吧,呵呵

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

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

Re: Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持

游戏阿家: Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就??Σ挥?次?纾 驹??】

又开始钻牛角尖了.楼主先不要讨论需不需要2次幂,你先想一想,为什么以前显卡需要2次幂?这个不仅仅影响到大小,纹理采样,mipmap的生成,显存的分配都有关系的啊

其??不管???分配多少大小,都?o所?。
我其??真正主??的?有一??“D3DXSPRITE不要求?理??次?纭薄
?有最後只?一句:不要在意??小事!

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2009-10-27 21:20:00 | 显示全部楼层

Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就

D3DXSPRITE是什么东西?

86

主题

2251

帖子

2384

积分

金牌会员

Rank: 6Rank: 6

积分
2384
QQ
发表于 2009-10-28 13:16:00 | 显示全部楼层

Re:某人???3DXSPRITE要求?理??次?纾?@是?解!只要硬件支持,就

我的之前说的,
1 没说驱动层面的NPOT支持,多占储存空间。
2 没说什么是把贴图拉伸成2次幂大小了。
3 没研究过D3DXSPRITE,如果驱动层面都不支持NPOT,那么如果还要支持NP图片,靠消耗储存空间建立POW2贴图是最靠谱的方法。

另外,有排料算法这种东西,没必要用手工做POW2图。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-18 09:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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