opengl虚拟校园漫游
程序员文章站
2022-03-04 18:21:28
...
一、开发环境说明
-- 操作系统:windows
-- 开发软件:Visual Studio 2017
-- 编程语言:基于控制台下的opengl
-- 用到的库:glu、 gluax
二、内容说明
1 、功能介绍
-- 实现场景漫游
-- 实现按键交互功能;
-- 实现纹理贴图;
-- 实现光照效果
2、操作说明
--按键 '上' :前进
--按键 '下' :后退
--按键 '左' :左转
--按键 '右' :右转
--按键 'A' :向左平移
--按键 'D' :向右平移
--按键 'W' :垂直上移
--按键 'D' :垂直下移
--Page u : 仰视
--Page down :俯视
--按键 'L' :白天/夜晚(环境光/散射光)开关
--按键 'B' :透明混合开关
--按键 'G' :路灯电源开关
3、程序目录截图
4、程序部分代码展示
//初始化,设置光源,打开纹理开关
void SceneInit(int w, int h)
{
LoadGLTextures(); //条到处理调用位图并用此位图建立纹理的子程序
glEnable(GL_TEXTURE_2D); //纹理被创建,并允许2D纹理贴图
glShadeModel(GL_SMOOTH);
glClearColor(0.0, 0.0, 0.0, 0.5);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
//设置光源参数
glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient); //设置环境光
glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse); //设置漫反射光
glLightfv(GL_LIGHT1, GL_POSITION, LightPosition); //光源的位置
glEnable(GL_LIGHT1); //允许光源一
glColor4f(1.0f, 1.0f, 1.0f, 0.5); //全亮度,50%的透明
glBlendFunc(GL_SRC_ALPHA, GL_ONE); //基于半透明的混合方式
}
5、 运行效果展示
三、代码下载
- 整个代码工程下载