【问题标题】:2D graphics with Direct3D带有 Direct3D 的 2D 图形
【发布时间】:2010-12-28 08:28:51
【问题描述】:

我正在尝试使用 Direct3D 来渲染 2D 图形,这是自从 DirectDraw 被弃用以来大家所推荐的。我真的不关心任何 3D 特性,只是希望能够在彼此上绘制线条、圆圈和 blit 图像之类的事情。我的问题是这样的

  1. 我需要从文件中加载大量图像,并将它们相互绘制。纹理是要走的路吗?
  2. 非常愚蠢的问题,但我似乎找不到任何东西:如何将一个表面渲染到另一个表面上?
  3. 您应该将所有内容渲染到单个纹理上,然后将其作为精灵绘制到屏幕上,还是只绘制多个纹理?
  4. 如何在纹理/表面/精灵上绘制线条等?我认为有比获取设备上下文并使用 GDI 进行绘制更好的方法吗?

【问题讨论】:

    标签: directx 2d direct3d


    【解决方案1】:
    1. 是的
    2. 创建 2 个三角形,形成一个四边形。适当设置 UV 值。 UV 值设置在 0 到 1 的范围内。因此,对于 1024x1024(或者实际上是任何分辨率的纹理,这就是这样做的原因)图像,左上角是 0,0,右下角是 1,1。 ID3DXSprite 会在这里为您提供帮助。
    3. 最好将多个“帧”放在一个纹理中,以避免过于频繁地更改纹理(这很昂贵)。
    4. 您可以使用 D3DPT_LINELIST/STRIP ... 使用 2 个三角形失败(请参阅 ID3DXLine)。

    【讨论】:

      猜你喜欢
      • 2017-08-29
      • 2021-04-12
      • 1970-01-01
      • 2011-11-12
      • 2011-09-28
      • 2020-02-24
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多