使用Direct3D的2D图形

时间:2010-12-28 08:28:51

标签: directx 2d direct3d

我正在尝试使用Direct3D来渲染2D图形,因为自DirectDraw弃用以来每个人都推荐使用它。我真的没有任何3D关注,只是希望能够做一些事情,比如画线,圆圈和blit图像。因此我的问题是

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

1 个答案:

答案 0 :(得分:3)

  1. 创建2个形成四边形的三角形。适当设置UV值。 UV值设置在0到1的范围内。因此对于1024x1024(或实际上任何分辨率纹理,这就是为什么这样做)图像左上角是0,0,右下角是1,1。 ID3DXSprite会在这里为您提供帮助。
  2. 最好在一个纹理中放置多个“框架”,以避免经常更改纹理(这很昂贵)。
  3. 您可以使用D3DPT_LINELIST / STRIP ...如果没有使用2个三角形(请参阅ID3DXLine)。