



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4、绘制带纹理三棱锥NeHe SDK是把Nehe的教程中所介绍的所有功能,以面向对象的形式,提供给编程人员快速开发的一套编程接口。在下面的教程中,我将按NeHe SDK源码的功能分类,一步一步把这套api介绍给大家。如果你觉得有更好的学习方法,或者有其他有益的建议,请联系我。,程序结构:我们在第三课程序的基础上添加一下功能:1. 创建一个全局的纹理类 2. 利用纹理类载入纹理文件 3. 创建绘制带纹理坐标的三棱锥的函数 4. 设置当前的纹理并启用它,绘制带纹理坐标的三棱锥 为了使用纹理类,我们需要包含下面的头文件(texture.h),并声明一个全局的视口变量text2D。我们在主程序文件和绘制文件中添加如下的代码:/*新增的代码:包含纹理类的声明*/#include texture.h/ 包含纹理类的声明/*新增的代码:包含纹理类的声明:结束*/*新增的代码:创建Texture类*/Texturetex;/ 使用全局变量Texture类的实例inttexID;/ 使用全局变量texID,保存加载的纹理ID/*新增的代码:创建Text2D类:结束*/2、利用纹理类载入纹理文件我们在IniScene函数中完成这个工作,首先调用纹理类的Load函数载入base.bmp图像文件,接着检查是否成功,如果不成功则弹出对话框,提示载入失败。实现代码如下:/*初始化场景*void IniScene(OpenGL* gl, ControlData* cont)/*新增的代码:载入纹理*/texID = tex.Load(base.bmp);if(texID=0)MessageBox(NULL,不能加载base.bmp图像,Error,MB_OK| MB_ICONEXCLAMATION);cont-quit=true;return;/*新增的代码:载入纹理:结束*/*初始化场景:结束*/3、创建绘制带纹理坐标的三棱锥的函数我们使用标准的OpenGL函数完成这个功能/*新增的代码:绘制带纹理坐标的三棱锥*/ 绘制带纹理坐标的三棱锥void DrawTexTri(void)glPushAttrib(GL_CURRENT_BIT);/ 保存当前的绘制属性glBegin(GL_TRIANGLES);/ 前面glTexCoord2f(0.5f,0.5f);glVertex3f( 0.0f, 1.0f, 0.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-1.0f,-1.0f, 1.0f);glTexCoord2f(1.0f,0.0f);glVertex3f( 1.0f,-1.0f, 1.0f);/ 右面glTexCoord2f(0.5f,0.5f);glVertex3f( 0.0f, 1.0f, 0.0f);glTexCoord2f(1.0f,0.0f);glVertex3f( 1.0f,-1.0f, 1.0f);glTexCoord2f(1.0f,1.0f);glVertex3f( 1.0f,-1.0f, -1.0f);/ 后面glTexCoord2f(0.5f,0.5f);glVertex3f( 0.0f, 1.0f, 0.0f);glTexCoord2f(1.0f,1.0f);glVertex3f( 1.0f,-1.0f, -1.0f);glTexCoord2f(0.0f,1.0f);glVertex3f(-1.0f,-1.0f, -1.0f);/ 左面glTexCoord2f(0.5f,0.5f);glVertex3f( 0.0f, 1.0f, 0.0f);glTexCoord2f(1.0f,1.0f);glVertex3f(-1.0f,-1.0f,-1.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-1.0f,-1.0f, 1.0f);glEnd();glPopAttrib();/ 弹出保存的绘制属性/*新增的代码:绘制带纹理坐标的三棱锥:结束*/最后我们启用纹理,并绘制一个带纹理的三棱锥,代码如下:/*新增的代码:绘制带纹理三棱锥*/tex.Set(texID);cont-state-SetTexturing(true);DrawTexTri();/*新增的代码:绘制带纹理三棱锥:结束*/好
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏本地化翻译平台创新创业项目商业计划书
- 农场动物健康大数据分析创新创业项目商业计划书
- 机器翻译引擎训练服务创新创业项目商业计划书
- 退休人士兴趣小组创新创业项目商业计划书
- 蓝牙音频高清传输技术创新创业项目商业计划书
- 2025年生鲜新零售行业冷链物流配送时效性与成本优化分析报告
- 2025年海洋生态系统服务功能评估在生态修复中的应用研究
- 2025年绿色建筑推广关键指标:绿色建筑与建筑废弃物资源化利用与处理研究报告
- 2025年绿色供应链管理在制造业应用案例深度分析报告001
- 2025年水性涂料生产项目环保型产品绿色营销策略研究报告
- 租房托管班合同(标准版)
- 2025年甘南事业单位笔试试题(含答案)
- 2025年浪浪山小妖怪开学第一课
- 2025年安顺西秀区招聘城市社区工作者考试笔试试题(含答案)
- 2025-2026秋“1530”安全教育记录表
- 催乳相关培训知识课件
- 2025汽车智能驾驶技术及产业发展白皮书
- 2025年幼儿园食堂从业人员培训测试题(含答案)
- 2025年公平竞争审查知识竞赛考试练习题库(正式版)含答案
- 全力以赴战高考乘风破浪正当时(课件)-2025-2026学年高三上学期开学第一课主题班会
- 登革热与基孔肯雅热防控指南
评论
0/150
提交评论