Exemple #1
0
HRESULT KModelBelt::LoadMesh(LPSTR pFileName)
{
	CreateVerticesBuffer();
	m_dNumMaterial = 1;
	m_lpMaterial = new MATERIAL[m_dNumMaterial];
	ZeroMemory(m_lpMaterial,sizeof(MATERIAL)*m_dNumMaterial);
	
	DWORD Def_Option = MATERIAL_OPTION_ZBUFFER_TRUE|
		MATERIAL_OPTION_FILL_SOLID|
		MATERIAL_OPTION_SHADE_GOURAUD|
		MATERIAL_OPTION_CULL_NONE|
		MATERIAL_OPTION_SPECULARENABLE;
	
	for(DWORD i=0;i<m_dNumMaterial;i++)
	{
		m_lpMaterial[i].m_sMaterial9.Diffuse.r = 0.7f ;
		m_lpMaterial[i].m_sMaterial9.Diffuse.g = 0.7f ;
		m_lpMaterial[i].m_sMaterial9.Diffuse.b = 0.7f ;
		m_lpMaterial[i].m_sMaterial9.Diffuse.a = 1.0f ;
		m_lpMaterial[i].m_sMaterial9.Ambient = m_lpMaterial[i].m_sMaterial9.Diffuse;
		m_lpMaterial[i].m_sMaterial9.Specular = m_lpMaterial[i].m_sMaterial9.Diffuse;
		m_lpMaterial[i].m_sMaterial9.Power = 15;
		m_lpMaterial[i].m_dOption = Def_Option;
	}

	TCHAR Name[256];
//	wsprintf(Name,"%s\\Blade.Mtl",g_Def_ModelDirectory);
	wsprintf(Name,"%s\\旗子.Mtl",g_Def_ModelDirectory);
	LoadMaterial(Name);
	
	wsprintf(m_szMeshFileName,"Sword Blade");
	return S_OK;
}
Exemple #2
0
void SetupRC() 
{
	glEnable(GL_CULL_FACE);

    glClearColor(0.2f, 0.2f, 0.2f, 1.0f);

    shader = gltLoadShaderPairWithAttributes("gouraud_phong.vp", 
											 "gouraud_phong.fp",
											 2, 
											 GLT_ATTRIBUTE_VERTEX, 
											 "vVertex", 
											 GLT_ATTRIBUTE_NORMAL, 
											 "vNormal");

	fprintf(stdout, "GLT_ATTRIBUTE_VERTEX : %d\nGLT_ATTRIBUTE_COLOR : %d \n", GLT_ATTRIBUTE_VERTEX, GLT_ATTRIBUTE_COLOR);

	CreateVerticesBuffer();
	CreateFacesBuffer();    
	SetupGourard();
}
Exemple #3
0
HRESULT KModelSFXLineGrass::LoadMesh(LPSTR pFileName)
{
	
	//////////////////////////////////////////////////////////////////////////
	LPMOTION pMotion = new MOTION;
	m_lpMotion.push_back(pMotion);
	pMotion = new _MotionCircle;
	m_lpMotion.push_back(pMotion);

	DWORD m_dwNumObject = 400;
	
	DWORD Row =0,K =0;
	DWORD RowLength = (DWORD) sqrt((float)(m_dwNumObject));

	for(DWORD i=0;i<m_dwNumObject;i++)
	{
		K++;
		float X = (rand()%1000)*0.001f*500 - 250;
		float Y = (rand()%1000)*0.001f*500 - 250;
		
		if (K>RowLength)
		{
			Row++;
			K=0;
		}
		X = Row * 100.0f - RowLength*50 + (rand()%1000)*0.001f*50;
		Y = K   * 100.0f - RowLength*50 + (rand()%1000)*0.001f*50;
		float Size = (rand()%1000)*0.001f*5+15;

		D3DXVECTOR3 Position = D3DXVECTOR3(X,0,Y);

		LPSPRITE pSpr = new SPRITE;

		pSpr->Width    = Size ;
		pSpr->Height = Size;
		pSpr->MotionType = 0;
		pSpr->Position   = Position;
		pSpr->Arg[0] = Position.x;
		pSpr->Arg[1] = Position.y;
		pSpr->Arg[2] = Position.z;

		m_lpSprite.push_back(pSpr);
		m_nNumFaces = m_nNumLinePerGrass*m_lpSprite.size();

	}

	CreateVerticesBuffer();
	
	wsprintf(m_szMeshFileName,"Line Grass");
	UpdateVertices();

	m_dNumMaterial = 1;
	m_lpMaterial = new MATERIAL[m_dNumMaterial];
	ZeroMemory(m_lpMaterial,sizeof(MATERIAL)*m_dNumMaterial);
	
	DWORD Def_Option = MATERIAL_OPTION_ZBUFFER_TRUE|
		MATERIAL_OPTION_FILL_SOLID|
		MATERIAL_OPTION_SHADE_GOURAUD|
		MATERIAL_OPTION_CULL_CW|
		MATERIAL_OPTION_SPECULARENABLE;
	
	for( i=0;i<m_dNumMaterial;i++)
	{
		m_lpMaterial[i].m_sMaterial9.Diffuse.r = 0.7f ;
		m_lpMaterial[i].m_sMaterial9.Diffuse.g = 0.7f ;
		m_lpMaterial[i].m_sMaterial9.Diffuse.b = 0.7f ;
		m_lpMaterial[i].m_sMaterial9.Diffuse.a = 1.0f ;
		m_lpMaterial[i].m_sMaterial9.Ambient = m_lpMaterial[i].m_sMaterial9.Diffuse;
		m_lpMaterial[i].m_sMaterial9.Specular = m_lpMaterial[i].m_sMaterial9.Diffuse;
		m_lpMaterial[i].m_sMaterial9.Power = 15;
		m_lpMaterial[i].m_dOption = Def_Option;
	}
	TCHAR Name[256];
	wsprintf(Name,"%s\\BillBoard.Mtl",g_Def_ModelDirectory);
	LoadMaterial(Name);

	return S_OK;
}