OpenGL基础3

部署运行你感兴趣的模型镜像

上次交的旋转三角形有画面闪的问题,当时就注意到了,不过做好的时候已经要交总结了,就没改。

这周查了下,是MFC自带的窗口重绘和OpenGL的重绘冲突的原因。需要重载MFC视图类里面的EraseBkgnd窗口重回函数,让它直接返回TRUE,这样每次MFC响应自己的窗口重绘函数的时候就都会重绘而直接返回TRUE了。还有个问题就是在OpenGL与MFC整合的设定系统像素格式的过程中,不能打开GDI的支持,否则也会出现画面闪烁的不兼容情况。

这周没有进行理论的学习,就研究了下学OpenGL做3D游戏里面的那个漫游的代码,自己做了一个差不多的,贴图还没加上不过。

通过做这个小程序对3D游戏的实现有了一定的理解,基本上第一视角的游戏就是这样实现的吧。走动的时候只是变换相机和焦点的坐标,上楼梯也就是把坐标抬高而已,所谓的固定大小的房间也就是正好把相机坐标限定在一个范围内并且在范围的边界加上一个墙壁的模型而已,感觉没以前那么神秘了。坐标随着地形坐标而上升下降,也就实现了翻山越岭的效果。

设置摄像机:

OpenGL中变换摄像机位置、朝向、视野旋转

void gluLookAt(Gldouble相机x坐标,GLdouble相机y坐标,GLdouble相机z坐标,

GLdouble 相机焦点x坐标,GLdouble相机焦点y坐标,GLdouble相机焦点z坐标,

GLdouble 相机法线x分量,GLdouble相机法线y分量,GLdouble相机法线z分量);

首先设置了表示摄像机位置和表示焦点坐标的两个数组,分别初始化,按上下的时候分别改变两个数组中xy坐标的值,按PgUp和PgDown的时候改变Z轴的值,这里有一个不太理解,为什么学OpenGL做3D游戏里面的代码都是用Y轴的坐标表示高度的?我是按照Z轴为高度来做的,目前也没发现什么问题…

按左右键来“转头”这个就有点麻烦了,麻烦都在数学上,我本来想着是相机不动焦点改变坐标,或者反过来,但是数学上不知道怎么算…

如果可以让glRotate的原点变成相机的坐标,以相机为原点来旋转场景就很方便了,但是不知道怎么实现…感觉如果用矩阵的变换可以实现,这个再想想。

总之现在还是用的代码里的方法,设定一个旋转角度,同时移动的时候也要把角度算进去。


您可能感兴趣的与本文相关的镜像

Langchain-Chatchat

Langchain-Chatchat

AI应用
Langchain

Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

OpenGL3D游戏(含全部源程序)讲述3D游戏的编写方法。 《学OpenGL3D游戏》重在游戏的实现方案。全书以一个完整(基本)的3D游戏为主线,采用循序渐进的方法,从建立OpenGL图形环境入手,讲解3D基本图形、构图原理;从引入摄像机,建立天空、山地、树木,到3D模型使用和3D动画模型的显示。用鱼骨方式讲解相关知识技术,完整地展示了3D游戏的编写过程。● 特点 重在游戏的基本实现方法 搭建一个基本功能的游戏环境 最新的外部功能模块的使用● 提供《学OpenGL3D游戏》的教学演示课件 《学OpenGL3D游戏》的教学课件。用多媒体的表现手法将学习过程完全显示在你面前,使用者可以随时查看所选章节的知识要点提示,可以观看程序的制作过程和效果,也可以马上进入到VC编辑器对范例程序修修改改,在实践中加深对知识的理解;还可以进入到网上论坛和朋友们讨论学习心得。● 内容提要第1 章 OpenGL的程序框架__Windows、OpenGL程序框架的建立。第2 章 OpenGL的基本图形__在OpenGL图形界面上作一些简单的图形。第3OpenGL的组合图形__用简单图形来构成两个复杂一点的3D模型。第4 章 摄像漫游__________有了摄像机你就可以在OpenGL场景中自由地漫游了。第5 章 开天辟地__________在OpenGL场景中有了天空、大地、景物。第6 章 OpenGL中显示文字__介绍了OpenGL中文字的几种显示方式。第7 章 特殊的平面_树_____栽些树种些草,让这个OpenGL世界充满生机。第8 章 显示3D模型________在OpenGL场景中显示3DS格式的模型。第9 章 使用MD2动画模型___OpenGL场景中出现了活生生的人(3D动画模型)。第10 章 使用MDL动画模型__介绍一种更先进的动画模型—3D骨骼动画。第11章 射击、爆炸________逼真的爆炸效果,是用程序仿真爆炸的物理过程。第12章 碰撞检测__________加入碰撞检测后,游戏才有真实的感觉。第13章 游戏进度保存______场景(或进度)保存和调入是游戏必不可少的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值