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

📄 scene_max.h

📁 <B>《Realtime Rendering》的随书源代码
💻 H
字号:
class light_max
{
public:
	char name[256];
	int type;
	vector color,pos,target,dir;
	float hotspot,falloff;
};

class bsp_node_max : public bsp_node
{	
public:
	int nplanes,side;
	plane *planes;
	char *planeflags;
	boundbox bbox;

	bsp_node_max() 
	{ planes=0; nplanes=0; planeflags=0; };
	~bsp_node_max() 
	{ if (planes) delete planes; };

	void split_faces_aligned();
	void split_axis_aligned(int depth);
	void add_face(face *f,int planeflag);
	void free_faces();
	void print(FILE *fp,int& tot,int depth);

	int find_split_plane();
	int find_plane(vector& normal,float d0);
	int add_plane(vector& normal,float d0);
	void calc_bbox();
};

class scene_max : public flyEngine
{
public:
	void compute_scene_normals();
	int nmatlib;
	material *matlib;

	int nlights;
	light_max *lightlib;

	int nleaf;

	void build_bsptree();
	void enum_leaf(bsp_node *n);
	void compute_light();
	void save_map(char *);
	void save(char *);

	scene_max() 
		{ 
		lightlib=0; 
		nlights=0;
		matlib=new material;
		strcpy(matlib[0].name, "");
		matlib[0].ambient[0]=0;
		matlib[0].ambient[1]=0;
		matlib[0].ambient[2]=0;
		matlib[0].diffuse[0]=.5f;
		matlib[0].diffuse[1]=.5f;
		matlib[0].diffuse[2]=.5f;
		matlib[0].transparency=0;
		matlib[0].self_illum=0;
		nmatlib=1;
		};
	~scene_max() 
		{
		if (matlib) delete matlib; 
		if (lightlib) delete lightlib; 
		};
};

⌨️ 快捷键说明

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