⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.h

📁 java实现的简单的分形树。简单易学!是学习分形知识的很好的例子。其java语法简单
💻 H
字号:
#ifndef __MY_DEMO_H
#define __MY_DEMO_H

#include "../system/System.h"
#include "SimpleMesh.h"
#include "WaterMesh.h"
#include "QuadMesh.h"
#include "Scattering.h"

class CSkyMesh;
class CCloudMesh;
class CTerrain;
class CCameraAnim;


class CDemo : public CSystem {
public:
	CDemo();
	virtual ~CDemo();

protected:
	virtual void customSettingsInit( HWND dlg );
	virtual void customSettingsOK( HWND dlg );

	virtual bool appCheckDevice( const D3DCAPS9& caps, DWORD behavior, D3DFORMAT bbFormat ) const;
	virtual void appInitialize();
	virtual void appPerform();
	virtual void appShutdown();

private:
	typedef std::vector<CSimpleMesh*>	TSimpleMeshVector;
	typedef std::vector<CWaterMesh*>	TWaterMeshVector;
	typedef std::vector<CCloudMesh*>	TCloudMeshVector;

	void	initLevel();
	void	initWaterMaps();
	void	initOtherSurfaces();
	void	initShadowMaps();
	void	initQuantizeMaps();
	void	renderShadowMap();
	void	renderLakeRefl();
	void	renderBase();
	void	processInput();
	void	computeSmallRT();

	// render everything, but no lakes - used in main and in lake reflections
	void	justRenderBaseNoLakes( eRenderMode mode, int terrainLod );

	void	fullscreenPass( const char* renderTarget, CQuadMesh& quad );

	void	renderWater( eRenderMode mode );
	void	renderStaticMeshes( eRenderMode mode );

private:
	/// Are we in benchmarking mode or not?
	bool		mBenchMode;
	int			mRenderedFrames;
	bool		mBenchOver;
	bool		mUseMRT; // flag to use MRT if available. It's strange, but sometimes non-MRT version is faster

	bool		mAnimate;

	CTerrain*			mTerrain;
	CSkyMesh*			mSky;
	TSimpleMeshVector	mSimpleMeshes;
	TWaterMeshVector	mWaterMeshes;
	TCloudMeshVector	mCloudMeshes;
	SVector3			mLightDirNeg;

	CCameraAnim*	mCameraAnim;
	float			mCameraFov;

	SMatrix4x4	mMatProjShadow[4]; // for antialiased shadows
	SMatrix4x4	mMatTexProj; // for camera-projected textures
	SVector3	mCamYawPitchRoll;
	SVector3	mCamPosition;
	SMatrix4x4	mMatCamera;
	bool		mWireframe;

	SVector4	mQuadOffset;
	float		mBleedOffsetX;
	float		mBleedOffsetY;

	CQuadMesh*	mQuadBleed;
	CQuadMesh*	mQuadFinal;
	//CQuadMesh*	mQuadRGB2HSV;
	//CQuadMesh*	mQuadHSV2RGB;
	CQuadMesh*	mQuadEdges;

	CSun		mSun;
	CAtmosphere	mAtmosphere;
	SVector3	mSunColorDivBetaSum;
	float		mFloatTime;
};



#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -