代码之家  ›  专栏  ›  技术社区  ›  meds

在DirectX中只加载纹理的一部分?

  •  0
  • meds  · 技术社区  · 14 年前

    如果我有一个纹理文件,我如何才能使用一个定义的rect(上,左,下,右)只加载它的一部分?

    在技术上,它是否可能只读取我想要加载的部分,而不影响其余的纹理?

    2 回复  |  直到 12 年前
        1
  •  1
  •   Goz    14 年前

    你到底想达到什么目的?只将文件的一小部分加载到包含所有内容的单个纹理中是非常简单的。不过,您可能需要编写自己的图像分析器。

    如果要将部分图像加载到与原始图像大小相同的纹理中(即只更新后面的区域),那么这也相对简单。您可以使用要更新的区域rect来锁定rct。不过,您仍然需要编写自己的图像分析器。

    就个人而言,在这种情况下,我更喜欢使用我自己的纹理格式,它已经是我追求的格式了…

        2
  •  1
  •   foxwoods    14 年前

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

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