Qt5版NeHe OpenGL教程之九:加载3D世界,并在其中漫游

这篇博客介绍了如何在Qt5环境下利用OpenGL创建一个3D世界,并实现用户通过键盘控制在该世界中自由漫游的功能。内容包括lesson9的源代码文件、运行效果展示以及按键控制说明,如F键切换滤波方式,PageUp/Down调整视角上下角度,方向键控制前后左右移动。
摘要由CSDN通过智能技术生成

这一课就要解释一个基本的3D世界"结构",以及如何在这个世界里游走。

lesson9.h

#ifndef LESSON9_H
#define LESSON9_H

#include <QWindow>
#include <QOpenGLFunctions_1_1>
#include <QKeyEvent>
#include <QTextStream>

//三角形本质上是由一些(两个以上)顶点组成的多边形,顶点同时也是我们的最基本的分类单位。
//顶点包含了OpenGL真正感兴趣的数据。我们用3D空间中的坐标值(x,y,z)以及它们的纹理坐标(u,v)来定义三角形的每个顶点。
typedef struct tagVERTEX	// 创建Vertex顶点结构
{
    float x, y, z;			// 3D 坐标
    float u, v;				// 纹理坐标
} VERTEX;					// 命名为VERTEX
//一个sector(区段)包含了一系列的多边形,所以下一个目标就是triangle(我们将只用三角形,这样写代码更容易些)。
typedef struct tagTRIANGLE	// 创建Triangle三角形结构
{
    VERTEX vertex[3];	    // VERTEX矢量数组,大小为3
}TRIANGLE;                  // 命名为 TRIANGLE
typedef struct tagSECTOR	// 创建Sector区段结构
{
    int numtriangles;		// Sector中的三角形个数
    TRIANGLE* triangle;		// 指向三角数组的指针
} SECTOR;					// 命名为SECTOR

const float piover180 = 0.0174532925f;

class QPainter;
class QOpenGLContext;
class QOpenGLPaintDevice;

class L
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草上爬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值