D3DXCreateTexture与 LPDIRECT3DDEVICE8::CreateTexture 的区别

本文对比了使用D3DXCreateTexture与LPDIRECT3DDEVICE8::CreateTexture创建非2次方图片纹理的区别。前者会自动调整纹理尺寸到最接近的2次方数,后者则保持原始尺寸。此外还讨论了纹理填充时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

以前没有特别注意,今天做了一个非2次方的图片的压缩,发现D3DXCreateTexture与LPDIRECT3DDEVICE8::CreateTexture在创建纹理的时候竟然有这样的区别

如:要创建一个200×200的纹理

用D3DXCreateTexture创建出来的纹理,再用GetLevelDesc来查询纹理信息,会发现,他已经优化过了尺寸信息,为256×256,Pitch也是256

如果用LPDIRECT3DDEVICE8::CreateTexture创建纹理的时候,用GetLevelDesc查询纹理信息,会发现纹理信息是200×200,Pitch也是200

暂时还不清楚,这个是否跟显卡也有关系……

纹理的填充问题:

如果我们用D3DXCreateTexture来创建一个200×200的纹理,填充时要一行一行的来写象素

就如我们创建了一个256×256的图片,而我们只是对左上角的200×200感兴趣而已

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值