• 大小: 18.17MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-02
  • 语言: 其他
  • 标签: JLU  directX  

资源简介

包含天空盒,蒙皮骨骼,场景漫游,拾取,镜面。十分简陋 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\link.command.1.tlog
............此处省略67个文件信息

评论

共有 条评论