void DrawSkybox(void)
{
	// 关闭深度测试
	glDisable(GL_DEPTH_TEST);

	// 关闭光照
	glDisable(GL_LIGHTING);
	glColor3f(1.0, 1.0, 1.0);

	// 保存投影变换矩阵
	glMatrixMode(GL_PROJECTION);
	glPushMatrix();

	// 增大透视投影变换远平面距离
	glLoadIdentity();
	int viewport[4];
	glGetIntegerv(GL_VIEWPORT, viewport);
	gluPerspective(60.0, (float)viewport[2]/(float)viewport[3], 
		sky_box.size*0.01, sky_box.size*3.0);

	// 绘制天空盒
	sky_box.Draw();

	// 恢复投影变换矩阵
	glPopMatrix();
	glMatrixMode(GL_MODELVIEW);

	// 重新打开光照
	glEnable(GL_LIGHTING);

	// 重新打开深度测试
	glEnable(GL_DEPTH_TEST);
}
Example #2
0
void  SkyboxObject::DrawItem ( int item, int param )
{
	glDisable(GL_LIGHTING);
	skybox.Draw();
	glEnable(GL_LIGHTING);
}