C++ DirectX 绘制一个 .PNG 精灵作为 window 背景
C++ DirectX Draw a .PNG sprite as window background
我想知道是否可以在我的 DirectX 中绘制 .PNG 精灵作为背景 window 我目前的设置如下:
d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(255, 0, 40, 100), 1.0f, 0);
它使背景变成蓝色,但是否可以替换那条线,以便在那里绘制精灵?
或者我应该只在背景上绘制 sprite 吗?
要覆盖背景,只需渲染一个全屏精灵。在这种情况下,您不需要 Clear
渲染目标的颜色部分,因为您将绘制每个像素。您仍然会使用 Clear
和 D3DCLEAR_STENCIL
and/or D3DCLEAR_ZBUFFER
,并且您应该在不写入或读取 z 缓冲区(如果有)的情况下绘制精灵。
当然,理想情况下,您将使用 Direct3D 11 而不是旧版 Direct3D 9 API 或任何版本的 D3DX。参见 MSDN. SpriteBatch
in the DirectX Tool Kit can easily draw a full-screen image in the background for Direct3D 11 as per this tutorial。
我想知道是否可以在我的 DirectX 中绘制 .PNG 精灵作为背景 window 我目前的设置如下:
d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(255, 0, 40, 100), 1.0f, 0);
它使背景变成蓝色,但是否可以替换那条线,以便在那里绘制精灵?
或者我应该只在背景上绘制 sprite 吗?
要覆盖背景,只需渲染一个全屏精灵。在这种情况下,您不需要 Clear
渲染目标的颜色部分,因为您将绘制每个像素。您仍然会使用 Clear
和 D3DCLEAR_STENCIL
and/or D3DCLEAR_ZBUFFER
,并且您应该在不写入或读取 z 缓冲区(如果有)的情况下绘制精灵。
当然,理想情况下,您将使用 Direct3D 11 而不是旧版 Direct3D 9 API 或任何版本的 D3DX。参见 MSDN. SpriteBatch
in the DirectX Tool Kit can easily draw a full-screen image in the background for Direct3D 11 as per this tutorial。