最近在用opengl做一个3d游戏。没打灯光前,场景中的文字是可以显示的。可是打了灯光后就显示不出来了。求高手指点!
以下是我游戏场景渲染的函数
void GameStage::Draw()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float lightAmbient[] = {0.8,0.7,0.75,1.0};
float lightDiffuse[] = {0.8,0.7,0.75,1.0};
float lightPosition[] = {75.0,10.0,65.0,0.0};
float lmodelAmbient[] = {0.5,0.5,0.5,1.0};
glShadeModel(GL_SMOOTH);
glLightfv(GL_LIGHT0,GL_AMBIENT,lightAmbient);
glLightfv(GL_LIGHT0,GL_DIFFUSE,lightDiffuse);
glLightfv(GL_LIGHT0,GL_POSITION,lightPosition); glLightModelfv(GL_LIGHT_MODEL_AMBIENT,lmodelAmbient); glEnable(GL_COLOR_MATERIAL); glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST); Stage::Draw();
mFont->Print("just a test!");
}
以下是我游戏场景渲染的函数
void GameStage::Draw()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float lightAmbient[] = {0.8,0.7,0.75,1.0};
float lightDiffuse[] = {0.8,0.7,0.75,1.0};
float lightPosition[] = {75.0,10.0,65.0,0.0};
float lmodelAmbient[] = {0.5,0.5,0.5,1.0};
glShadeModel(GL_SMOOTH);
glLightfv(GL_LIGHT0,GL_AMBIENT,lightAmbient);
glLightfv(GL_LIGHT0,GL_DIFFUSE,lightDiffuse);
glLightfv(GL_LIGHT0,GL_POSITION,lightPosition); glLightModelfv(GL_LIGHT_MODEL_AMBIENT,lmodelAmbient); glEnable(GL_COLOR_MATERIAL); glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST); Stage::Draw();
mFont->Print("just a test!");
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货