在DirectX中加载一部分纹理?

时间:2010-05-01 14:11:50

标签: directx loading textures hlsl

如果我有一个纹理文件,我怎么能使用定义的rect(顶部,左边,底部,右边)只加载它的一部分?

技术上是否可能只读取我要加载的部分,同时保持纹理的其余部分不受影响?

2 个答案:

答案 0 :(得分:1)

查看D3DXCreateTextureFromFileEx:http://msdn.microsoft.com/en-us/library/bb172802%28v=VS.85%29.aspx

否则,将您需要的部分数据加载到内存中,创建一个空纹理并锁定它并复制数据。

答案 1 :(得分:1)

你究竟想要实现什么目标。将文件的一小部分加载到包含所有文件的单个纹理中非常简单。但是,您可能需要编写自己的图像解析器。

如果要将部分图像加载到与原始图像大小相同的纹理中(即只更新您所在的区域),那么这也是相对简单的。 LockRcts可以使用您想要更新的区域。您仍然需要编写自己的图像解析器。

在这样的情况下,我更喜欢使用我自己的纹理格式,这种格式已经是我以后的格式......