- 1、本文档共111页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲 OpenGL编程实例
纹理转换 return Status; // 返回 Status} 最后返回状态变量。如果一切OK,变量 Status 的值为 TRUE 。否则为 FALSE 初始设置 int InitGL(GLvoid) { ……….. } 调用纹理载入子例程 启用2D纹理映射 int InitGL(GLvoid) {if (!LoadGLTextures()) // 调用纹理载入子例程{return FALSE; // 如果未能载入,返回FALSE}glEnable(GL_TEXTURE_2D); // 启用纹理映射 glShadeModel(GL_SMOOTH); // 启用阴影平滑glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // 黑色背景glClearDepth(1.0f); // 设置深度缓存glEnable(GL_DEPTH_TEST); // 启用深度测试glDepthFunc(GL_LEQUAL); // 所作深度测试的类型glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); return TRUE; // 初始化 OK} 绘制图像 int DrawGLScene(GLvoid) {glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(0.0f,0.0f,-5.0f); 绘制图像 glRotatef(xrot,1.0f,0.0f,0.0f); // 绕X轴旋转glRotatef(yrot,0.0f,1.0f,0.0f); // 绕Y轴旋转glRotatef(zrot,0.0f,0.0f,1.0f); // 绕Z轴旋转 使立方体绕X、Y、Z轴旋转 旋转多少依赖于变量 xrot , yrot 和 zrot 的值 绘制图像 glBindTexture(GL_TEXTURE_2D, texture[0]); 选择纹理 改变纹理时,应该绑定新的纹理 不能在 glBegin() 和 glEnd() 之间绑定纹理,必须在 glBegin() 之前或 glEnd() 之后绑定 纹理映射 映射规则 将纹理的右上角映射到四边形的右上角 纹理的左上角映射到四边形的左上角 纹理的右下角映射到四边形的右下角 纹理的左下角映射到四边形的左下角 纹理映射 glTexCoord2f(x, y); 设置当前纹理坐标 第一个参数是X坐标 第二个参数是Y坐标 1 x y 0.0 1 0.5 左侧 中点 右侧 底部 中点 顶部 0.5 纹理映射-前面 Y (1,1,1) (1,1,-1) (-1,1,-1) (-1,1,1) (1,-1,-1) (-1,-1,-1) (1,-1,1) (-1,-1,1) (0,0) (1,0) (1,1) (0,1) 纹理映射-前面 glBegin(GL_QUADS); 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(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); 纹理映射-后面 Y (1,1,1) (1,1,-1) (-1,1,-1) (-1,1,1) (1,-1,-1) (-1,-1,-1) (1,-1,1) (-1,-1,1) (0,0) (1,0) (1,1) (0,1) 纹理映射-后面 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.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f); // 纹理和四边形的左上glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1
您可能关注的文档
- 第3章 SQL语句.ppt
- 第2讲 葡萄酒.pptx
- 第3章 (文字处理Word2010).ppt
- 第3章 螺杆压缩机-1.ppt
- 第3章 单片机原理课件.ppt
- 第3章 图像增强技术-空2域增强.ppt
- 第3章 发现创业机会.ppt
- 第3章 地理环境的整体性和差异性.ppt
- 第3章 基本编辑操作.ppt
- 第3章 地图基本操作.pptx
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)