2011-11-19 4 views
0

이 없습니다 I는 OpenGL에서 다음 코드 조각이 : teapot.obj는 3ds 맥스에서 만든 .OBJ 파일로 내 보낸 파일이로드 된 객체는 어떤 색상

...main render scene... 
glPushMatrix(); 
    glEnable(GL_TEXTURE_2D); 
    glRotatef(90,1,0,0); 
    drawModel(teapotModel,"teapot.obj",GLM_NONE|GLM_FLAT); 
    glDisable(GL_TEXTURE_2D); 
glPopMatrix(); 

. 그리기 함수입니다 :이 예제를 실행하면

void drawModel(GLMmodel *pmodel,char*filename,GLuint mode) 
{ 
    if(!pmodel) 
    { 
     pmodel=glmReadOBJ(filename); 
     if(!pmodel) 
      exit(0); 
     glmUnitize(pmodel); 
     //generate facet normal vectors for model 
     glmFacetNormals(pmodel); 
     //generate vertex normal vectors (called after generating facet normals) 
     glmVertexNormals(pmodel,90.0); 
    } 
    glmDraw(pmodel,mode); 
} 

, 그것은 정확하게 주전자 개체를 렌더링, 그러나 그것의 색상은 흰색 (이 파란색 색상을 가지고 3ds 맥스 디자인 할 때). 오브젝트를 색상과 함께 렌더링하려면 어떻게해야합니까 ??

+0

할당 된 자료가 파일에 저장 되었습니까? 적재 되었습니까? – Bart

+5

참고로 :이 코드는 모든 프레임을 모델로로드하고 있습니다. 다른 곳에서로드하지 않는 한이 'drawModel' 함수에서로드 할 필요가 없습니다. "draw"라는 함수가 모델 로딩을 수행하면 잘못된 "드로잉"을합니다. 프로 팁. –

+0

프레임마다 모델을로드하는 것이 옳았습니다. "init"메서드에서 모델을 초기화했습니다. Stil, 모델은 파란 색이 아닌 흰색을가집니다. 나는 다른 곳에 모델을 적재하지 않았다. –

답변

0

mode 매개 변수에 GLM_COLOR/GLM_MATERIAL을 추가하십시오.