欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1221693       资源大小:35.86KB        全文页数:31页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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)

    9、/纹理是否存在if (TextureImage0-data)/纹理图像是否存在free(TextureImage0-data);/释放纹理图像占用的内存free(TextureImage0);/释放图像结构 /.创建第二个纹理,墙./ if (TextureImage1=LoadBMP(wall.bmp) glGenTextures(1, &texture1); /创建纹理 glBindTexture(GL_TEXTURE_2D, texture1); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);/远处采用线性滤

    10、波glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);/近处采用MipMapped滤波 gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage1-sizeX, TextureImage1-sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage1-data);/绑定纹理 if (TextureImage1)/纹理是否存在 if (TextureImage1-data)/纹理图像是否存在 free(TextureIma

    11、ge1-data);/释放纹理图像占用的内存 free(TextureImage1);/释放图像结构 /.创建第三个纹理,窗户./ if (TextureImage2=LoadBMP(glass.bmp) glGenTextures(1, &texture2);/创建纹理 glBindTexture(GL_TEXTURE_2D, texture2);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);/远处采用线性滤波glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,

    12、GL_LINEAR_MIPMAP_NEAREST);/近处采用MipMapped滤波gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage2-sizeX, TextureImage2-sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage2-data);/绑定纹理 if (TextureImage2)/纹理是否存在if (TextureImage2-data)/纹理图像是否存在free(TextureImage2-data);/释放纹理图像占用的内存free(TextureImage2);/释放图像结构 /.创建第四

    13、个纹理,门./if (TextureImage3=LoadBMP(door.bmp) glGenTextures(1, &texture3);/创建纹理glBindTexture(GL_TEXTURE_2D, texture3);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);/远处采用线性滤波glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);/近处采用MipMapped滤波 gluBuild2DMipmaps(

    14、GL_TEXTURE_2D, 3, TextureImage3-sizeX, TextureImage3-sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage3-data);/绑定纹理 if (TextureImage3)/纹理是否存在if (TextureImage3-data)/纹理图像是否存在free(TextureImage3-data);/释放纹理图像占用的内存free(TextureImage3);/释放图像结构 /.创建第五个纹理,灯./if (TextureImage4=LoadBMP(lamp.bmp)Status=TRUE; glGen

    15、Textures(1, &texture4);/创建纹理glBindTexture(GL_TEXTURE_2D, texture4);glTexParameteri(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, TextureImage4-sizeX, TextureIm

    16、age4-sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage4-data);/绑定纹理 if (TextureImage4)/纹理是否存在if (TextureImage4-data)/纹理图像是否存在free(TextureImage4-data);/释放纹理图像占用的内存free(TextureImage4);/释放图像结构 /.创建第六个纹理,黑板./if (TextureImage5=LoadBMP(blackwall.bmp) glGenTextures(1, &texture5);/创建纹理glBindTexture(GL_TEXTURE_2

    17、D, texture5);glTexParameteri(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, TextureImage5-sizeX, TextureImage5-sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage5-da

    18、ta);/绑定纹理 if (TextureImage5)/纹理是否存在if (TextureImage5-data)/纹理图像是否存在free(TextureImage5-data);/释放纹理图像占用的内存free(TextureImage5);/释放图像结构 return Status;/.重置OpenGL窗口大小./GLvoid ReSizeGLScene(GLsizei width, GLsizei height)/ 重置OpenGL窗口大小if (height=0) / 防止被零除height=1; / 将Height设为1glViewport(0, 0, width, height); / 重置当前的视口 glMatrixMode(GL_PROJECTION); / 选择投影矩阵glLoadIdentity(); / 重置投影矩阵 / 设置视口的大小 gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,1000.0f);glMatrixMode(GL_MODELVIEW); / 选择模型观察矩阵glLoadIdentity(); / 重置模型观察矩阵 /.


    注意事项

    本文(opengl绘制教室大作业源代码wp.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开