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; }
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(); }
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; }