资源简介
Qt5版Nehe OpenGL教程,第六课到第十课,详见博客:https://blog.csdn.net/caoshangpa/article/details/80323712
代码片段和文件信息
#include “lesson10.h“
#include
#include
#include
#include
#include
#include
Lesson10::Lesson10(QWindow *parent) :
QWindow(parent)
m_context(0)
m_x_rotate(0.0f)
m_y_rotate(0.0f)
m_z_rotate(0.0f)
{
setSurfaceType(QWindow::OpenGLSurface);
startTimer(20);
}
Lesson10::~Lesson10()
{
glDeleteTextures(1 &m_texture[0]);
}
void Lesson10::render(QPainter *painter)
{
Q_UNUSED(painter);
}
void Lesson10::render()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glViewport(00(GLint)width()(GLint)height()); // 重置当前视口
glMatrixMode(GL_PROJECTION); // 选择投影矩阵
glLoadIdentity(); // 重置投影矩阵为单位矩阵
gluPerspective(45.0f(GLdouble)width()/(GLdouble)height()0.1f100.0f);
glMatrixMode(GL_MODELVIEW); // 选择模型视图矩阵
glLoadIdentity(); // 重置模型视图矩阵为单位矩阵
float float_x float_y float_xb float_yb; // 用来将旗形的波浪分割成很小的四边形
glTranslatef(0.0f0.0f-12.0f); // 移入屏幕12个单位
glRotatef(m_x_rotate1.0f0.0f0.0f); // 绕 X 轴旋转
glRotatef(m_y_rotate0.0f1.0f0.0f); // 绕 Y 轴旋转
glRotatef(m_z_rotate0.0f0.0f1.0f); // 绕 Z 轴旋转
glBindTexture(GL_TEXTURE_2D m_texture[0]); // 选择纹理
glBegin(GL_QUADS); // 四边形绘制开始
for(int x = 0; x < 44; x++ ) // 沿X平面0-44循环(45点)
{
for(int y = 0; y < 44; y++ ) // 沿Y平面0-44循环(45点)
{
//接着开始使用循环进行多边形绘制。这里使用整型可以避免我以前所用的int()强制类型转换。
float_x = float(x)/44.0f; // 生成X浮点值
float_y = float(y)/44.0f; // 生成Y浮点值
float_xb = float(x+1)/44.0f; // X浮点值+0.0227f
float_yb = float(y+1)/44.0f; // Y浮点值+0.0227f
//上面我们使用4个变量来存放纹理坐标。每个多边形(网格之间的四边形)分别映射了纹理的1/44×1/44部分。
//循环首先确定左下顶点的值,然后我们据此得到其他三点的值。
glTexCoord2f( float_x float_y); // 第一个纹理坐标 (左下角)
glVertex3f( m_points[x][y][0] m_points[x][y][1] m_points[x][y][2] );
glTexCoord2f( float_x float_yb ); // 第二个纹理坐标 (左上角)
glVertex3f( m_points[x][y+1][0] m_points[x][y+1][1] m_points[x][y+1][2] );
glTexCoord2f( float_xb float_yb ); // 第三个纹理坐标 (右上角)
glVertex3f( m_points[x+1][y+1][0] m_points[x+1][y+1][1] m_points[x+1][y+1][2] );
glTexCoord2f( float_xb float_y ); // 第四个纹理坐标 (右下角)
glVertex3f( m_points[x+1][y][0] m_points[x+1][y][1] m_points[x+1][y][2] );
}
}
glEnd(); // 四边形绘制结束
}
void Lesson10::initialize()
{
loadGLTexture(); // 加载纹理
glEnable(GL_TEXTURE_2D); // 启用纹理映射
glShadeModel(GL_SMOOTH); // 启用平滑着色
glClearColor(0.0f 0.0f 0.0f 0.0f); // 黑色背景
glClearDepth(1.0f); // 设置深度缓存
glEnable(GL_DEPTH_TEST); // 启用深度测试
glDepthFunc(GL_LEQUAL);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 147968 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.exe
文件 774928 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.ilk
文件 215701 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.obj
文件 2125824 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.pdb
文件 1454080 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.vc.pdb
文件 179487 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\main.obj
文件 3505 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\moc_lesson10.cpp
文件 180968 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\moc_lesson10.obj
文件 349888 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\debug\qrc_src.cpp
文件 72019 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\debug\qrc_src.obj
文件 66616 2014-06-27 06:02 Qt5版NeHe OpenGL教程6-10\lesson10\image\Tim.bmp
文件 7844 2018-05-17 14:10 Qt5版NeHe OpenGL教程6-10\lesson10\lesson10.cpp
文件 1141 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\lesson10.h
文件 142 2018-05-17 11:21 Qt5版NeHe OpenGL教程6-10\lesson10\lesson10.pro
文件 23749 2018-05-17 14:19 Qt5版NeHe OpenGL教程6-10\lesson10\lesson10.pro.user
文件 318 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\main.cpp
文件 23568 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\Makefile
文件 37118 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\Makefile.Debug
文件 37157 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\Makefile.Release
文件 92 2014-06-27 06:02 Qt5版NeHe OpenGL教程6-10\lesson10\src.qrc
文件 152064 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.exe
文件 983344 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.ilk
文件 221446 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.obj
文件 2125824 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.pdb
文件 1470464 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.vc.pdb
文件 179396 2018-05-15 15:25 Qt5版NeHe OpenGL教程6-10\lesson6\debug\main.obj
文件 3483 2018-05-15 15:25 Qt5版NeHe OpenGL教程6-10\lesson6\debug\moc_lesson6.cpp
文件 180942 2018-05-15 15:25 Qt5版NeHe OpenGL教程6-10\lesson6\debug\moc_lesson6.obj
文件 346911 2018-05-15 15:11 Qt5版NeHe OpenGL教程6-10\lesson6\debug\qrc_src.cpp
文件 72023 2018-05-15 15:11 Qt5版NeHe OpenGL教程6-10\lesson6\debug\qrc_src.obj
............此处省略96个文件信息
- 上一篇:ospf 网络设计解决方案
- 下一篇:vc 实现的教务管理系统
相关资源
- 基于opengl下的选择物体局部放大
- OPENGL粒子系统之喷泉
- 3D opengl魔方
- opengles加载3d模型(纹理+光照)
- opengl画的小花
- OpenGL三维图形系统开发与实用技术.
- opengl 立体球体的实现
- loop 细分,结合openGL
- opengl中加载dem方法和贴纹理
- OpenGL写的一个带背景音乐的场景
- opengl房屋设计2
- OpenGL绘制的鱼轮廓曲线
- 3D OPENGL 飞行游戏源代码
- OpenGL 超酷三维动画DEMO
- QT5下实现基于TCP发送和接接收文件
- OpenGL蓝宝书所需库可直接使用
- OPENGL 画地球 真实感超强-纹理贴图 光
- OPENGL中的GLUT源代码
- PyQt5_gpl-5.11.3.zip
- Qt OpenGL 多图片纹理例程
- opengl中天空盒的绘制
- OpenGL下立方体 正四面体绘制与贴图。
- 资源文件此资源是作者博客教程所用
- openGL完成雪花飞舞源码
- OpenGL ES 显示RGB数据
- opengl实现鱼眼矫正(球面等距模型)
- OpenGL 立体房子模拟
- OpenGL 电梯仿真模型
- qtribbon可用
- opengl地形、雨雪、火箭模拟.rar
评论
共有 条评论