opengl绘制教室大作业源代码wp

上传人:小** 文档编号:91142552 上传时间:2019-06-26 格式:DOC 页数:31 大小:35.53KB
返回 下载 相关 举报
opengl绘制教室大作业源代码wp_第1页
第1页 / 共31页
opengl绘制教室大作业源代码wp_第2页
第2页 / 共31页
opengl绘制教室大作业源代码wp_第3页
第3页 / 共31页
opengl绘制教室大作业源代码wp_第4页
第4页 / 共31页
opengl绘制教室大作业源代码wp_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《opengl绘制教室大作业源代码wp》由会员分享,可在线阅读,更多相关《opengl绘制教室大作业源代码wp(31页珍藏版)》请在金锄头文库上搜索。

1、wp.h#include / Windows的头文件#include / 包含OpenGL实用库#include / 标准输入/输出库的头文件#include / GLaux库的头文件#include#include #include #include /.定义变量区./.用于场景漫游有关变量./GLfloat xrot=0.0f;/ X 旋转量GLfloat yrot=0.0f;/ Y 旋转量GLfloat x=0.0f; / X 平移量GLfloat y=0.0f; / Y 平移量GLfloat z=-40.0f; / 深入屏幕的距离/.用于键盘操作有关变量./BOOL light=TRU

2、E; / 光源的开/关BOOL lp; / L键按下了么?BOOL fp; / F键按下了么?BOOL TurnOn=FALSE; / 开灯GLUquadricObj *qobj; int fantheta=0; / 风扇转过角度HGLRC hRC=NULL; / 窗口着色描述表句柄HDC hDC=NULL; / OpenGL渲染描述表句柄HWND hWnd=NULL; / 保存我们的窗口句柄HINSTANCE hInstance; / 保存程序的实例bool keys256; / 保存键盘按键的数组bool active=TRUE; / 窗口的活动标志,缺省为TRUEbool fullscr

3、een=TRUE; / 全屏标志缺省,缺省设定成全屏模式/.光照材质有关变量./GLfloat light_Ambient= 0.1f, 0.1f, 0.1f, 1.0f ; / 环境光参数GLfloat light_Diffuse= 1.0f, 1.0f, 0.45f, 1.0f ;/ 漫射光参数GLfloat light_position=0.0,29.9,0.0,1.0; / 光源位置GLfloat light_position1=20.0,29.9,0.0,1.0;GLfloat mat_ambient=0.05f,0.05f,0.05f,1.0f; / 材质环境光参数GLfloat

4、mat_specular=0.8,1.0,1.0,1.0; / 材质镜面光参数GLfloat mat_shininess=5.0; GLfloat white_light=1.0,1.0,1.0,1.0; / 光GLfloat no_mat= 0.0f, 0.0f, 0.0f, 1.0f; / 无材质色GLfloat no_shininess= 0.0f; / 无反光GLfloat mat_diffuse= 1.0f, 1.0f, 1.0f, 1.0f; / 漫反射GLfloat diffusion=0.521f,0.121f,0.0547f,1.0;/.纹理./GLuint texture6

5、; / 7种纹理的储存空间/.时钟有关变量./GLfloat cx=35.0,cy=15.0,cz=-79.9,radius=5.0;GLfloat hradius=2.0,mradius=3.0,sradius=4.0;GLfloat sangle,mangle,hangle;GLuint second,miniter,hour;char timebuffer9;LRESULTCALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); / WndProc的定义wp.cpp#includewp.h/.创建纹理./AUX_RGBImageRec *LoadBMP(

6、char *Filename) / 载入位图图象FILE *File=NULL; / 文件句柄if (!Filename) / 确保文件名已提供 return NULL; / 如果没提供,返回 NULLFile=fopen(Filename,r); / 尝试打开文件if (File) / 文件存在么? fclose(File); / 关闭句柄 return auxDIBImageLoad(Filename); / 载入位图并返回指针return NULL; / 如果载入失败,返回 NULLint LoadGLTextures() / 载入位图并转换成纹理int Status=FALSE; /

7、状态指示器AUX_RGBImageRec *TextureImage6; / 创建纹理的存储空间memset(TextureImage,0,sizeof(void *)*1); / 将指针设为 NULL / 载入位图,检查有无错误,如果位图没找到则退出Status=TRUE; / 将 Status 设为 TRUE /.创建第一个纹理,地板./ if (TextureImage0=LoadBMP(floor.bmp) glGenTextures(1, &texture0);/ 创建纹理 glBindTexture(GL_TEXTURE_2D, texture0); glTexParameteri

8、(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);/远处采用线性滤波glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);/近处采用MipMapped滤波 gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage0-sizeX, TextureImage0-sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage0-data);/绑定纹理 if (TextureImage0)/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号