資源簡介
包含天空盒,蒙皮骨骼,場景漫游,拾取,鏡面。十分簡陋 VS2015編寫,希望能給學弟學妹們參考啟發
代碼片段和文件信息
//=============================================================================
//?Desc:?AllocateHierarchy.cpp
//=============================================================================
#include?“AllocateHierarchy.h“
#pragma?warning(disable:?4995)
//--------------------------------------------------------------------------------------
//?Name:?AllocateName()
//?Desc:?為骨骼或網格名稱的字符串分配內存
//--------------------------------------------------------------------------------------
HRESULT?AllocateName(?LPCSTR?Name?LPSTR*?pNewName?)
{
????UINT?cbLength;
????if(?Name?!=?NULL?)
????{
????????cbLength?=?(?UINT?)strlen(?Name?)?+?1;
????????*pNewName?=?new?CHAR[cbLength];
????????memcpy(?*pNewName?Name?cbLength?*?sizeof(?CHAR?)?);
????}
????else
????{
????????*pNewName?=?NULL;
????}
????return?S_OK;
}
//--------------------------------------------------------------------------------------
//?Name:?GenerateSkinnedMesh
//?Desc:?生成蒙皮網格模型。該函數判斷當前網格容器是否包含有蒙皮信息,如果當前網格模型
//???????中不包含蒙皮信息,則直接退出該函數。接下來確定所需要的矩陣調色板容量。最后調
//???????用ID3DXSkinInfo::ConvertToIndexedBlendedMesh()函數生成索引蒙皮網格模型
//--------------------------------------------------------------------------------------
HRESULT?GenerateSkinnedMesh(?IDirect3DDevice9*?pd3dDevice?D3DXMESHCONTAINER_DERIVED*?pMeshContainer?)
{
????D3DCAPS9?d3dCaps;
????pd3dDevice->GetDeviceCaps(?&d3dCaps?);
????if(?pMeshContainer->pSkinInfo?==?NULL?)
????????return?S_OK;
????SAFE_RELEASE(?pMeshContainer->MeshData.pMesh?);
????SAFE_RELEASE(?pMeshContainer->pBoneCombinationBuf?);
????if?(FAILED(pMeshContainer->pSkinInfo->ConvertToBlendedMesh(
????????pMeshContainer->pOrigMesh?
????????D3DXMESH_MANAGED?|?D3DXMESHOPT_VERTEXCACHE
????????pMeshContainer->pAdjacency
????????NULL?NULL?NULL
????????&pMeshContainer->NumInfl
????????&pMeshContainer->NumAttributeGroups
????????&pMeshContainer->pBoneCombinationBuf
????????&pMeshContainer->MeshData.pMesh)))
????????return?E_FAIL;
????return?S_OK;
}
//--------------------------------------------------------------------------------------
//?Name:?CAllocateHierarchy::Createframe()
//?Desc:?創建框架?僅僅是分配內存和初始化還沒有對其成員賦予合適的值
//--------------------------------------------------------------------------------------
HRESULT?CAllocateHierarchy::Createframe(?LPCSTR?Name?LPD3DXframe*?ppNewframe?)
{
????HRESULT?hr?=?S_OK;
????D3DXframe_DERIVED?*pframe;
????
????*ppNewframe?=?NULL;
????
????//?為框架指定名稱
????pframe?=?new?D3DXframe_DERIVED;??//?創建框架結構對象
????if?(FAILED(AllocateName(Name?(LPSTR*)&pframe->Name)))
????{
????????delete?pframe;
????????return?hr;
????}
????
????//?初始化D3DXframe_DERIVED結構其它成員變量
????D3DXMatrixIdentity(&pframe->TransformationMatrix);
????D3DXMatrixIdentity(&pframe->CombinedTransformationMatrix);
????
????pframe->pMeshContainer???=?NULL;
????pframe->pframeSibling????=?NULL;
????pframe->pframeFirstChild?=?NULL;
????
????*ppNewframe?=?pframe;
????pframe?=?NULL;
????return?hr;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-03-04?22:08??dierct\
?????目錄???????????0??2017-06-19?00:10??dierct\.vs\
?????目錄???????????0??2017-06-19?00:10??dierct\.vs\SimpleSkybox\
?????目錄???????????0??2017-06-19?00:10??dierct\.vs\SimpleSkybox\v14\
?????文件???????46080??2018-03-04?22:08??dierct\.vs\SimpleSkybox\v14\.suo
?????文件???????41464??2004-09-09?21:48??dierct\ac1.jpg
?????文件???????19860??2010-10-18?14:41??dierct\AllocateHierarchy.cpp
?????文件????????3695??2010-10-16?14:16??dierct\AllocateHierarchy.h
?????文件???????22889??2009-03-08?23:52??dierct\asd.X
?????目錄???????????0??2017-06-19?00:10??dierct\Backup\
?????文件?????????889??2010-10-13?20:33??dierct\Backup\SimpleSkybox.sln
?????文件????????5878??2010-10-29?19:46??dierct\Camera.cpp
?????文件????????1987??2010-10-14?11:04??dierct\Camera.h
?????文件??????604318??2013-03-02?15:28??dierct\cup.X
?????文件????????5803??2017-06-18?10:07??dierct\d3dUtility.cpp
?????文件????????3355??2017-06-18?10:02??dierct\d3dUtility.h
?????目錄???????????0??2017-06-19?07:52??dierct\Debug\
?????文件???????53239??2017-06-19?07:52??dierct\Debug\AllocateHierarchy.obj
?????文件???????80375??2017-06-19?07:52??dierct\Debug\Camera.obj
?????文件???????80045??2017-06-19?07:52??dierct\Debug\d3dUtility.obj
?????文件??????261235??2017-06-19?07:52??dierct\Debug\PSystem.obj
?????文件??????236032??2018-03-04?21:53??dierct\Debug\SimpleSkybox.exe
?????文件?????1012528??2018-03-04?21:53??dierct\Debug\SimpleSkybox.ilk
?????文件?????????158??2018-03-04?21:53??dierct\Debug\SimpleSkybox.log
?????文件??????175144??2017-06-19?07:52??dierct\Debug\SimpleSkybox.obj
?????文件?????2535424??2018-03-04?21:53??dierct\Debug\SimpleSkybox.pdb
?????目錄???????????0??2018-03-04?21:53??dierct\Debug\SimpleSkybox.tlog\
?????文件???????12836??2017-06-19?07:52??dierct\Debug\SimpleSkybox.tlog\CL.command.1.tlog
?????文件??????181354??2018-03-04?21:53??dierct\Debug\SimpleSkybox.tlog\CL.read.1.tlog
?????文件????????3278??2018-03-04?21:53??dierct\Debug\SimpleSkybox.tlog\CL.write.1.tlog
?????文件????????6326??2018-03-04?21:53??dierct\Debug\SimpleSkybox.tlog\li
............此處省略67個文件信息
評論
共有 條評論