青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天行健 君子當自強而不息

D3D Animation Basis(8)

Drawing Meshes

Now that you have your meshes loaded and you've updated those skinned meshes that needed updating, it is time to throw some pixels at the display and show off those meshes! In total, I have created four mesh−rendering functions to help you in your projects.

HRESULT draw_mesh(D3DXMESHCONTAINER_EX* mesh_container)
{
    
// error checking

    
if(mesh_container == NULL)
        
return E_FAIL;

    
if(mesh_container->MeshData.pMesh == NULL)
        
return E_FAIL;

    
if(mesh_container->NumMaterials == 0 || mesh_container->pMaterials == NULL)
        
return E_FAIL;

    
// get the device interface
    IDirect3DDevice9* device;
    mesh_container
->MeshData.pMesh->GetDevice(&device);

    
// release vertex shader if being used
    device->SetVertexShader(NULL);
    device
->SetVertexDeclaration(NULL);

    DWORD last_alpha_blend, old_alpha_blend, old_src_blend, old_dest_blend;

    
// save render states
    device->GetRenderState(D3DRS_ALPHABLENDENABLE,    &old_alpha_blend);
    device
->GetRenderState(D3DRS_SRCBLEND,            &old_src_blend);
    device
->GetRenderState(D3DRS_DESTBLEND,            &old_dest_blend);
    last_alpha_blend 
= old_alpha_blend;

    
// setup pointer for mesh to draw, either regular or skinned.
    ID3DXMesh* mesh_to_draw = (mesh_container->skin_mesh == NULL) ? 
                              mesh_container
->MeshData.pMesh : mesh_container->skin_mesh;

    
// look through all subsets
    for(DWORD i = 0; i < mesh_container->NumMaterials; i++)
    {
        
// set material and texture
        device->SetMaterial(&mesh_container->pMaterials[i].MatD3D);
        device
->SetTexture(0, mesh_container->textures[i]);

        
// enable or disable alpha blending per material
        if(mesh_container->pMaterials[i].MatD3D.Diffuse.a != 1.0f)
        {
            
if(last_alpha_blend != TRUE)
            {
                last_alpha_blend 
= TRUE;

                device
->SetRenderState(D3DRS_ALPHABLENDENABLE,    TRUE);
                device
->SetRenderState(D3DRS_SRCBLEND,            D3DBLEND_ONE);    // src color
                device->SetRenderState(D3DRS_DESTBLEND,            D3DBLEND_DESTCOLOR);
            }
        }
        
else
        {
            
if(last_alpha_blend != FALSE)
            {
                last_alpha_blend 
= FALSE;
                device
->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
            }
        }

        mesh_to_draw
->DrawSubset(i);
    }

    
// restore alpha blending states
    if(last_alpha_blend != old_alpha_blend)
    {
        device
->SetRenderState(D3DRS_ALPHABLENDENABLE, old_alpha_blend);
        device
->SetRenderState(D3DRS_SRCBLEND,           old_src_blend);
        device
->SetRenderState(D3DRS_DESTBLEND,           old_dest_blend);
    }
    
    
// make sure to release the device object!
    device->Release();

    
return S_OK;
}

 

If a material being used specifies an alpha value other than 1, then alpha blending is enabled. This way, you can specify portions of a mesh to use alpha blending by merely changing the material information. Also, if a D3DXMESHCONTAINER_EX object contains a skinned mesh, that mesh is rendered instead of the regular mesh.

posted on 2008-04-15 11:16 lovedday 閱讀(323) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


公告

導航

統計

常用鏈接

隨筆分類(178)

3D游戲編程相關鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久综合导航| 亚洲精品视频免费观看| 亚洲女人天堂av| 国产日产精品一区二区三区四区的观看方式 | 久久爱www| 国外成人在线视频网站| 久久网站免费| 欧美福利小视频| 亚洲伊人伊色伊影伊综合网| 一区二区三区色| 国产情人综合久久777777| 久久先锋资源| 欧美好骚综合网| 亚洲欧美日韩国产一区二区三区| 亚洲欧美日韩一区二区| 依依成人综合视频| 最新精品在线| 国产精品综合av一区二区国产馆| 久久久久99| 欧美喷潮久久久xxxxx| 亚洲一区视频在线| 久久精品人人做人人爽电影蜜月| 亚洲国产精品99久久久久久久久| 亚洲精品中文在线| 国产日韩一区欧美| 亚洲人成在线影院| 国产亚洲aⅴaaaaaa毛片| 欧美激情精品久久久久久变态| 欧美日韩在线播放一区| 另类春色校园亚洲| 国产精品久久久久一区| 免费影视亚洲| 国产欧美日韩另类视频免费观看| 欧美1区免费| 国产精品视频xxxx| 亚洲日本一区二区| 在线播放中文一区| 午夜一级久久| 妖精视频成人观看www| 久久爱另类一区二区小说| 日韩视频免费在线观看| 久久都是精品| 亚洲欧美电影院| 欧美大胆a视频| 免费观看成人www动漫视频| 国产精品扒开腿做爽爽爽软件| 女人香蕉久久**毛片精品| 国产精品三级久久久久久电影| 亚洲黄色免费| 亚洲大胆人体视频| 亚洲一区亚洲二区| 在线综合视频| 欧美日本精品一区二区三区| 久久综合久久美利坚合众国| 国产精品色一区二区三区| 亚洲乱码精品一二三四区日韩在线| 一区二区在线观看视频在线观看| 午夜一区二区三视频在线观看| 亚洲欧美成人网| 国产精品国产三级国产aⅴ入口 | 美国三级日本三级久久99| 欧美视频导航| 99精品久久| 亚洲自拍偷拍福利| 国产精品高潮在线| 一区二区三区四区五区精品| 一本色道久久综合亚洲精品高清 | 亚洲欧洲精品一区二区三区不卡 | 日韩午夜免费视频| 欧美成人激情视频| 亚洲黄网站在线观看| 亚洲日本成人网| 欧美人与性动交a欧美精品| 91久久夜色精品国产九色| 亚洲精选视频在线| 欧美日韩一区精品| 亚洲一区在线免费观看| 欧美中文字幕久久| 国产一区二区三区成人欧美日韩在线观看| 亚洲免费综合| 久久综合色综合88| 亚洲黄色成人网| 欧美日韩国产首页在线观看| 亚洲美女精品成人在线视频| 亚洲小说欧美另类社区| 国产精品久久久久永久免费观看| 一区二区三区免费在线观看| 校园激情久久| 在线欧美不卡| 欧美日韩在线直播| 亚洲欧美日韩国产综合精品二区| 久久人人精品| 一区二区三区福利| 国产一区二区三区久久久| 久久综合激情| 亚洲一区免费看| 欧美成人免费网站| 亚洲午夜精品久久久久久浪潮 | 欧美视频二区36p| 欧美中文字幕不卡| 亚洲精品在线二区| 久久精品视频在线| 99re亚洲国产精品| 国外成人在线视频| 欧美日韩免费一区二区三区视频 | 老色鬼久久亚洲一区二区 | 久久久久久国产精品一区| 在线欧美小视频| 欧美天堂亚洲电影院在线观看| 欧美一区二区三区免费看| 亚洲人成人99网站| 噜噜噜在线观看免费视频日韩| 一区二区三区免费观看| 国产一在线精品一区在线观看| 欧美日韩国产小视频| 欧美在线地址| 中文日韩电影网站| 亚洲国产精品久久久久婷婷884| 欧美伊人久久大香线蕉综合69| 亚洲电影免费观看高清完整版在线| 国产精品成人免费精品自在线观看| 久久亚洲精品中文字幕冲田杏梨| 在线中文字幕不卡| 亚洲国产高清一区| 欧美sm视频| 久久五月激情| 欧美在线视频观看免费网站| 亚洲一区成人| 9l国产精品久久久久麻豆| 在线精品观看| 伊人婷婷久久| 国产一区二区三区在线观看视频| 国产精品福利久久久| 欧美日韩高清在线观看| 欧美成人免费在线视频| 久久久久国产免费免费| 欧美在线影院在线视频| 亚洲综合另类| 亚洲一区二区三区久久| 中文一区在线| 亚洲影音一区| 亚洲欧美在线播放| 午夜久久黄色| 欧美在线亚洲| 久久免费视频这里只有精品| 欧美在线视频网站| 久久激情视频| 久久在线视频在线| 欧美成人三级在线| 欧美精品一区二区蜜臀亚洲| 欧美精品在线网站| 欧美日韩国产一区二区三区| 欧美精选一区| 欧美亚洲第一区| 国产酒店精品激情| 国产亚洲欧美另类一区二区三区| 国产日韩欧美综合在线| 国产自产女人91一区在线观看| 韩国一区电影| 亚洲精选久久| 亚洲女人天堂成人av在线| 性欧美超级视频| 久久先锋影音av| 亚洲国产精品欧美一二99| 亚洲免费成人av电影| 亚洲欧美韩国| 另类国产ts人妖高潮视频| 欧美激情精品久久久久久| 欧美性猛交99久久久久99按摩 | 欧美性开放视频| 国产一区成人| 亚洲精品一区在线观看| 亚洲女人天堂成人av在线| 久久久久一区二区| 亚洲国产精品热久久| 亚洲自拍偷拍色片视频| 久久久久欧美精品| 欧美三级网址| 激情av一区| 亚洲视频在线二区| 媚黑女一区二区| 一区二区三区av| 久久免费视频在线| 国产精品久久一区主播| 伊人成人在线视频| 亚洲综合电影| 亚洲国产精品国自产拍av秋霞| 亚洲永久免费精品| 欧美大片91| 韩国av一区二区三区四区| 亚洲作爱视频| 欧美国产日韩在线| 午夜精品电影| 欧美日韩性视频在线| 亚洲国产精品www| 久久高清国产| 亚洲视频在线二区| 欧美韩日一区二区三区| 精品999日本| 久久久91精品国产|