加载 .bmp 文件并将其渲染为 DirectX 11 中的背景

Loading a .bmp file and rendering it as the background in DirectX 11

我花了一个下午查看有关上下文/表面的文档并遵循了很多指南,但我只是不明白这是如何完成的。

我只想使用位图(已加载)并将其作为背景放入我的场景中。

听说要先用surface再画,但是完全不知道怎么获取surface,怎么给它赋位图。

感谢任何帮助。

是的,一种方法是使用 Surface,但我会推荐这种方法

不知道你是怎么载入位图的,总之你可以这样用位图做背景

//Make texture object
LPDIRECT3DTEXTURE9 m_myBitmapTexture;

// During Initialization, Load texture from file
if(FAILED(D3DXCREATETEXTUREFROMFILE(device,"filepath\file.bmp", 0, 0, 0, D3DMFT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFULT, D3DX_DEFAULT, 0x00000000, NULL, NULL, *m_myBitmapTexture)))
   return E_FAIL;

// During Rendering, set texture
device->SetTexture(0, m_myBitmapTexture);
device->SetStreamSource(0, yourBuffer, 0, size(YourBufferStruct));
device->SetFVF(yourTextureFVF); // Setting flexible vertex format
device->DrawPrimitive(topologyType, startindex, totalIndex);

你只需要确保你的缓冲区应该有纹理坐标,你的着色器也应该有

struct YourBufferStruct
{
   D3DXVECTOR3 position;
   D3DXVECTOR2 textureCoord;
}



// Define your flexible vertex format, i am just adding position and texture,   
//well you can add color, normal whatever extra you want
     #define yourTextureFVF (D3DFVF_XYZ | D3DFVF_TEX1) 

现在也将纹理坐标添加到着色器

更多详情可以参考这个linkhttps://msdn.microsoft.com/en-us/library/windows/desktop/bb153262(v=vs.85).aspx