当前位置: 代码迷 >> C++ >> Direct3DRender渲染2d的图片如何写代码
  详细解决方案

Direct3DRender渲染2d的图片如何写代码

热度:5915   发布时间:2013-02-26 00:00:00.0
Direct3DRender渲染2d的图片怎么写代码?
Direct3DRender渲染2d的图片怎么写代码?
VOID Direct3DRender() 
{
    g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
    g_pd3dDevice->BeginScene();                     // 开始绘制

//渲染背景

    // 设置世界变换矩阵
    D3DXMATRIX matWorld, Rx, Ry;
    D3DXMatrixIdentity(&matWorld);
    D3DXMatrixRotationX(&Rx, -D3DX_PI / 5.0f);
    D3DXMatrixRotationY(&Ry,  0);
    matWorld = Rx * Ry * matWorld;
    g_pd3dDevice->SetTransform(D3DTS_WORLD, &matWorld);

    // 设置填充方式
    if (::GetAsyncKeyState('F') & 0x8000f)
        g_pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);
    if (::GetAsyncKeyState('S') & 0x8000f) 
        g_pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);

    // 绘制网格
    for (DWORD i = 0; i < g_dwNumMtrls; i++)
    {
        g_pd3dDevice->SetMaterial(&g_pMaterials[i]);
        g_pd3dDevice->SetTexture(0, g_pTextures[i]);
        g_pMeshTiny->DrawSubset(i);
    }

    g_pd3dDevice->EndScene();                       // 结束绘制
    g_pd3dDevice->Present(NULL, NULL, NULL, NULL);  // 翻转
}

------解决方案--------------------------------------------------------
你这是画Mesh.. 我记得以前dxSDK例题不是有代码么。
------解决方案--------------------------------------------------------
quad
正交投影
replace模式texture
关闭深度测试
关闭光照
------解决方案--------------------------------------------------------
没开启深度缓冲的话按顺序渲染即可,开启了就修改Z值
  相关解决方案