【问题标题】:(2d Texture Array) vs (Texture Atlas) vs (Multiple Binds / Draws)(2d Texture Array) vs (Texture Atlas) vs (Multiple Binds / Draws)
【发布时间】:2020-07-30 06:42:46
【问题描述】:

我的问题与处理多个纹理的最佳方法有关。首先是一些上下文:

我在非游戏应用程序中使用 DirectX-11; gui 专门使用 DirectX。我正在使 gui 可换肤,因此用户可以根据自己的喜好自定义 gui。

我以这样一种方式编写代码,即 gui 布局和每个 gui 元素的大小可以根据配置文件而改变。 gui 目前仅通过 DrawIndexedInstanced 使用 DirectX 基元,但我想支持用户提供的纹理。这些纹理的大小可以变化。可以有多达两打这些不同的纹理。

我可以通过以下方式解决这个问题:

  1. 动态组合纹理图集,或者...
  2. 将所有纹理强制放入二维纹理数组(根据需要通过填充使所有纹理大小相同),或者...
  3. 拆分 DrawIndexedInstanced 调用,以便每个不同的纹理都有一个绘制调用(即多个绑定/绘制)。

我整个下午都在寻找共识。我没找到。一分钱你的想法?

【问题讨论】:

    标签: directx directx-11


    【解决方案1】:

    运行最快的方法是纹理图集。这就是 2d 游戏使用精灵图的原因。多次绑定/绘制是最慢的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多