精通Direct3D图形与动画程序设计 15_第十五章 粒子系统.rar
第15章 粒子系统
1、SprayParticles
演示粒子系统的具体实现,粒子系统类的封装。
2、ComplexSample
一个综合性的示例程序,演示了摄影机类和场景漫游的实现,以及静态网格模型、动画网格模型、粒子系统的进一步封装和使用。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 25214 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommondirectx.ico
文件 365 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommondxstdafx.cpp
文件 3725 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommondxstdafx.h
文件 232916 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT.cpp
文件 12597 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT.h
文件 32543 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTenum.cpp
文件 7796 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTenum.h
文件 290442 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTgui.cpp
文件 49206 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTgui.h
文件 36086 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTMesh.cpp
文件 5575 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTMesh.h
文件 132261 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTmisc.cpp
文件 45173 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTmisc.h
文件 844456 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTRes.cpp
文件 602 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTRes.h
文件 53453 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTSettingsDlg.cpp
文件 5255 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTSettingsDlg.h
文件 55271 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTsound.cpp
文件 5936 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTsound.h
文件 902 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT_2003.sln
文件 3775 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT_2003.vcproj
文件 872 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT_2005.sln
文件 4429 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT_2005.vcproj
文件 1142 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesparticle.bmp
文件 9516 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesParticleSystem.cpp
文件 2010 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesParticleSystem.h
文件 457 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticles
esource.h
文件 16030 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesSprayParticles.cpp
文件 483328 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesSprayParticles.exe
文件 32027 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesSprayParticles.jpg
............此处省略69个文件信息
//=============================================================================
// Desc: 喷洒粒子系统类源文件
//=============================================================================
#include “dxstdafx.h“
#include “ParticleSystem.h“
//-----------------------------------------------------------------------------
// Desc: 构造函数
//-----------------------------------------------------------------------------
CParticleSystem::CParticleSystem( DWORD dwFlush DWORD dwDiscard)
{
m_dwbase = dwDiscard;
m_dwFlush = dwFlush;
m_dwDiscard = dwDiscard;
m_dwParticles = 0;
m_dwParticlesLim = 1000;
m_pParticles = NULL;
m_pParticlesFree = NULL;
m_pVB = NULL;
m_pTexture = NULL;
}
//-----------------------------------------------------------------------------
// Desc: 析构函数
//-----------------------------------------------------------------------------
CParticleSystem::~CParticleSystem()
{
while( m_pParticles )
{
PARTICLE* pSpark = m_pParticles;
m_pParticles = pSpark->m_pNext;
delete pSpark;
}
while( m_pParticlesFree )
{
PARTICLE *pSpark = m_pParticlesFree;
m_pParticlesFree = pSpark->m_pNext;
delete pSpark;
}
}
//-----------------------------------------------------------------------------
// Desc: 创建粒子纹理
//-----------------------------------------------------------------------------
HRESULT CParticleSystem::Create( LPDIRECT3DDEVICE9 pd3dDevice )
{
HRESULT hr;
V_RETURN(D3DXCreateTextureFromFile(pd3dDevice L“particle.bmp“ &m_pTexture));
return S_OK;
}
//-----------------------------------------------------------------------------
// Desc: 创建保存粒子的顶点缓冲区
//-----------------------------------------------------------------------------
HRESULT CParticleSystem::Restore( LPDIRECT3DDEVICE9 pd3dDevice )
{
HRESULT hr;
V_RETURN(pd3dDevice->CreateVertexBuffer( m_dwDiscard *
sizeof(POINTVERTEX) D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY | D3DUSAGE_POINTS
POINTVERTEX::FVF D3DPOOL_DEFAULT &m_pVB NULL ));
return S_OK;
}
//-----------------------------------------------------------------------------
// Desc: 更新当前粒子的属性
//-----------------------------------------------------------------------------
HRESULT CParticleSystem::Update( float fSecsPerframe)
{
PARTICLE *pParticle **ppParticle;
static float fTime = 0.0f;
fTime += fSecsPerframe;
//更新已存在粒子的属性值
ppParticle = &m_pParticles; //粒子链表
while( *ppParticle )
{
pParticle = *ppParticle; //取出当前粒子
//计算粒子的新位置
float fT = fTime - pParticle->m_fTime0; //当前粒子已存活的时间
float fGravity = -9.8f;
pParticle->m_vPos = pParticle->m_vVel0 * fT + pParticle->m_vPos0;
pParticle->m_vPos.y += (0.5f * fGravity) * (fT * fT);
pParticle->m_vVel.y = pParticle->m_vVel0.y + fGravity * fT;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 25214 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommondirectx.ico
文件 365 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommondxstdafx.cpp
文件 3725 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommondxstdafx.h
文件 232916 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT.cpp
文件 12597 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT.h
文件 32543 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTenum.cpp
文件 7796 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTenum.h
文件 290442 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTgui.cpp
文件 49206 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTgui.h
文件 36086 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTMesh.cpp
文件 5575 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTMesh.h
文件 132261 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTmisc.cpp
文件 45173 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTmisc.h
文件 844456 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTRes.cpp
文件 602 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTRes.h
文件 53453 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTSettingsDlg.cpp
文件 5255 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTSettingsDlg.h
文件 55271 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTsound.cpp
文件 5936 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUTsound.h
文件 902 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT_2003.sln
文件 3775 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT_2003.vcproj
文件 872 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT_2005.sln
文件 4429 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesCommonDXUT_2005.vcproj
文件 1142 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesparticle.bmp
文件 9516 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesParticleSystem.cpp
文件 2010 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesParticleSystem.h
文件 457 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticles
esource.h
文件 16030 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesSprayParticles.cpp
文件 483328 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesSprayParticles.exe
文件 32027 2007-04-02 16:59 15_第十五章 粒子系统 1_SprayParticlesSprayParticles.jpg
............此处省略69个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)