资源简介

粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的 game physics。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。

资源截图

代码片段和文件信息

//=============================================================================
// Camera.cpp by Frank Luna (C) 2004 All Rights Reserved.
//=============================================================================

#include “Camera.h“
#include “DirectInput.h“
#include “d3dUtil.h“
#include “Terrain.h“

Camera* gCamera = 0;

Camera::Camera()
{
D3DXMatrixIdentity(&mView);
D3DXMatrixIdentity(&mProj);
D3DXMatrixIdentity(&mViewProj);

mPosW   = D3DXVECTOR3(0.0f 0.0f 0.0f);
mRightW = D3DXVECTOR3(1.0f 0.0f 0.0f);
mUpW    = D3DXVECTOR3(0.0f 1.0f 0.0f);
mLookW  = D3DXVECTOR3(0.0f 0.0f 1.0f);

// Client should adjust to a value that makes sense for application‘s
// unit scale and the object the camera is attached to--e.g. car jet
// human walking etc.
mSpeed  = 50.0f;
}

const D3DXMATRIX& Camera::view() const
{
return mView;
}

const D3DXMATRIX& Camera::proj() const
{
return mProj;
}

const D3DXMATRIX& Camera::viewProj() const
{
return mViewProj;
}

const D3DXVECTOR3& Camera::right() const
{
return mRightW;
}

const D3DXVECTOR3& Camera::up() const
{
return mUpW;
}

const D3DXVECTOR3& Camera::look() const
{
return mLookW;
}

D3DXVECTOR3& Camera::pos()
{
return mPosW;
}

void Camera::lookAt(D3DXVECTOR3& pos D3DXVECTOR3& target D3DXVECTOR3& up)
{
D3DXVECTOR3 L = target - pos;
D3DXVec3Normalize(&L &L);

D3DXVECTOR3 R;
D3DXVec3Cross(&R &up &L);
D3DXVec3Normalize(&R &R);

D3DXVECTOR3 U;
D3DXVec3Cross(&U &L &R);
D3DXVec3Normalize(&U &U);

mPosW   = pos;
mRightW = R;
mUpW    = U;
mLookW  = L;

buildView();
buildWorldFrustumPlanes();

mViewProj = mView * mProj;
}

void Camera::setLens(float fov float aspect float nearZ float farZ)
{
D3DXMatrixPerspectiveFovLH(&mProj fov aspect nearZ farZ);
buildWorldFrustumPlanes();
mViewProj = mView * mProj;
}

void Camera::setSpeed(float s)
{
mSpeed = s;
}

bool Camera::isVisible(const AABB& box)const
{
// Test assumes frustum planes face inward.

D3DXVECTOR3 P;
D3DXVECTOR3 Q;

//      N  *Q                    *P
//      | /                     /
//      |/                     /
// -----/----- Plane     -----/----- Plane    
//     /                     / |
//    /                     /  |
//   *P                    *Q  N
//
// PQ forms diagonal most closely aligned with plane normal.

// For each frustum plane find the box diagonal (there are four main
// diagonals that intersect the box center point) that points in the
// same direction as the normal along each axis (i.e. the diagonal 
// that is most aligned with the plane normal).  Then test if the box
// is in front of the plane or not.
for(int i = 0; i < 6; ++i)
{
// For each coordinate axis x y z...
for(int j = 0; j < 3; ++j)
{
// Make PQ point in the same direction as the plane normal on this axis.
if( mFrustumPlanes[i][j] >= 0.0f )
{
P

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     591872  2013-12-05 21:18  心形线_粒子(实验6)\Debug\螺旋状粒子(实验6).exe

     文件    2256728  2013-12-05 21:18  心形线_粒子(实验6)\Debug\螺旋状粒子(实验6).ilk

     文件    3394560  2013-12-05 21:18  心形线_粒子(实验6)\Debug\螺旋状粒子(实验6).pdb

     文件     699192  2005-09-25 11:23  心形线_粒子(实验6)\螺旋状粒子(实验6)\blend_hm1.dds

     文件       7336  2005-11-30 23:01  心形线_粒子(实验6)\螺旋状粒子(实验6)\Camera.cpp

     文件       1549  2005-11-30 22:58  心形线_粒子(实验6)\螺旋状粒子(实验6)\Camera.h

     文件      11264  2005-12-23 13:11  心形线_粒子(实验6)\螺旋状粒子(实验6)\d3dApp.cpp

     文件       2309  2005-07-29 12:41  心形线_粒子(实验6)\螺旋状粒子(实验6)\d3dApp.h

     文件       5805  2005-10-11 10:31  心形线_粒子(实验6)\螺旋状粒子(实验6)\d3dUtil.cpp

     文件       4585  2013-11-20 22:08  心形线_粒子(实验6)\螺旋状粒子(实验6)\d3dUtil.h

     文件       8092  2013-12-05 21:18  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\BuildLog.htm

     文件      94802  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\Camera.obj

     文件      87753  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\d3dApp.obj

     文件     424133  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\d3dUtil.obj

     文件      68611  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\DirectInput.obj

     文件     112142  2013-12-05 21:18  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\FireRingDemo.obj

     文件      67381  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\GfxStats.obj

     文件     239896  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\Heightmap.obj

     文件         67  2013-12-05 21:18  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\mt.dep

     文件     389661  2013-12-05 17:41  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\PSystem.obj

     文件     468961  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\Terrain.obj

     文件     945152  2013-12-05 21:18  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\vc90.idb

     文件     659456  2013-12-05 21:18  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\vc90.pdb

     文件      61799  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\Vertex.obj

     文件        663  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\螺旋状粒子(实验6).exe.embed.manifest

     文件        728  2013-12-05 17:17  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\螺旋状粒子(实验6).exe.embed.manifest.res

     文件        621  2013-12-05 21:18  心形线_粒子(实验6)\螺旋状粒子(实验6)\Debug\螺旋状粒子(实验6).exe.intermediate.manifest

     文件       2267  2005-06-30 19:29  心形线_粒子(实验6)\螺旋状粒子(实验6)\DirectInput.cpp

     文件       1143  2005-06-30 22:02  心形线_粒子(实验6)\螺旋状粒子(实验6)\DirectInput.h

     文件     131200  2005-09-10 11:18  心形线_粒子(实验6)\螺旋状粒子(实验6)\dirt.dds

............此处省略33个文件信息

评论

共有 条评论