• 大小: 5.79MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-01
  • 语言: 其他
  • 标签: Qt5  NeHe  OpenGL  

资源简介

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个文件信息

评论

共有 条评论