
OpenGL
ARTELE
爱好计算机
展开
-
OpenGL(预备篇1)---OpenGL编程环境配置 vs2017篇---GLEW编译---(自己动手系列)
首先需要下载GLEW,GLEW是什么?为什么要下载这个东西? 你可以认为,glew是来帮助你能调用OpenGL函数的第三方库,从现在起,你要知道,OpenGL是一个图形标准,并不是一套函数库,真正的开发者是显卡厂商,功能是写在显卡驱动里的,而各个显卡厂商都遵循OpenGL这个标准来给函数命名或者开发对应的功能,这样图形开发者就不必因为换了一个厂家的显卡而去学习新的显卡API了。为...原创 2018-11-08 19:54:41 · 1184 阅读 · 0 评论 -
OpenGL游戏制作之路[第二篇 游戏控件之按钮(6)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言上次我们已经显示出了我们的按钮,其实就是一个图片,这次,我们要让其成为真正的按钮。正题这次主要就是编写响应函数,这样就有了按钮的功能了,我们就借着上次图片,写一个鼠标经过的效果。要编写moveon回调函数,这里有个地方要格外注意。void GameWindow::SetCallBack(){ typedef void(*fptr_movecallback)(GLFWwin...原创 2019-02-12 21:28:25 · 568 阅读 · 0 评论 -
OpenGL游戏制作之路[第二篇 游戏控件之按钮(7)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言现在按钮基本功能可以实现了,这次是要把按钮加载需要的数据也写到一个配置文件中,之前相关的类已经设计好了,这回要将其实现。正题对于目前资源比较少的情况下,我就手动填写这个文件的内容,需要填写的是顶点资源下标,着色器资源下标,纹理资源的个数和下标,位置(像素坐标),按钮功能以后可以指定到指定的动态库,但是现在不用考虑这个。文件就直接用文本格式。后来我发现使用类会相互调用头文件,会产生编...原创 2019-02-13 16:46:40 · 461 阅读 · 0 评论 -
OpenGL游戏制作之路[第三篇 游戏控件之场景(1)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言之所以我想到了场景,是因为我突然想到,如果我从游戏菜单界面进入到了游戏界面,屏幕上显示的东西就完全变了,那如何来实现这个变化呢,我想,假如屏幕就是一张纸,所有的东西都花在一张纸上,当切换场景的时候就换一张纸,这样是不是很方便呢,确实是很方便,切换场景的时候,就不用去关心具体细节了。正题下面我们就来分析一下一个场景都需要什么,我们就可以设计一个类来编写。场景需要显示,这里至少要有...原创 2019-02-13 19:10:13 · 469 阅读 · 0 评论 -
OpenGL游戏制作之路[第四篇 游戏控件之游戏元素块(1)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言游戏中,少不了游戏人物,地图砖块等,这次我们就开始设计这些元素,然后将其显示出来,为了可以在后面的开发中方便一些,先对其进行类的设计。正题目前是2D游戏,所以我们的元素2D就足够了,根据之前对按钮设计的经验来看,我们可以直接从2DPlane继承,我打算先从魔塔的地图编辑器写,目前,先显示元素块按钮。类中多了几个变量,这个是要按钮能有放大缩小的效果,暂时还没有效果,但是可以借...原创 2019-02-13 22:26:54 · 331 阅读 · 0 评论 -
OpenGL游戏制作之路[第总结篇]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言最近事情比较多,所以暂时就没有进行更新,所以在这里就简单做一下总结。正题总结的内容主要就是设计问题,这里就给一张类图关系。我后来觉得应该把事件响应单独做一个抽象类,从按钮中拿出来,或者是从控件中独立出来,虽然这样看似没什么实际上的功能用处,但是能表明类之间的明确关系,基本控件是由平面和响应组合而成的,我不知道这样有什么好处,只是觉得这样看起里舒服一些,我尽快补习设计模式方面...原创 2019-02-26 10:18:41 · 625 阅读 · 0 评论 -
OpenGL游戏制作之路[第八篇 游戏内对话框(1)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言之前发现了一个问题,就是编辑好的地图没办法保存,所以就添加了一个保存按钮,然后问题又来了,地图文件要有文件名,所以我打算把保存的方式写成像windows保存文件那样,至少有个地方能输入文件名就行了,所以我意识到了,我需要写一个对话框,然后在对话框上面还要有编辑框等控件,想想都头疼,还是动手写吧。正题先设计我们的窗口需要什么,一个图片作为窗体,需要动手PS一个了,还要有个标题栏什么的...原创 2019-03-29 19:08:16 · 360 阅读 · 0 评论 -
OpenGL游戏制作之路[第八篇 游戏内对话框(2)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言上一篇实现了游戏内的对话框,但是还存在一些问题,这次解决一下。正题上次的窗口有这么一些问题。1.窗口点上后,鼠标按住可以随着移动,当再次点击拖动的时候,窗口会突然跳跃一次,问题原因是没有将第一次的鼠标和窗口中心的坐标刷新导致。2.窗口后面如果有按钮的时候,窗口后面的按钮也会跟着一起响应,问题原因是没有区分窗口和窗口之间的层次导致消息混乱。3.代码冗余,问题原因,设计问题...原创 2019-03-30 21:10:14 · 409 阅读 · 0 评论 -
OpenGL游戏制作之路[第九篇 文字显示]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言之前还在头疼着,游戏里显示文字怎么办,文字?你可能会说,前面不都是已经显示文字了。确实,有显示出来的文字,但那只是做好的图片上有文字而已,我希望能在代码里输入文字,屏幕上就能显示文字。解决起来真的是麻烦,不过我还是克服了各种困难,实现了文字显示。正题首先,需要知道一个东西,truetype2.0,这个是用来生成字体纹理的。这个东西不太好下载,慢慢下吧,我是下载了好多次才成功。我...原创 2019-03-31 20:06:13 · 394 阅读 · 0 评论 -
OpenGL游戏制作之路[第十篇 做个正经的对话框]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言前面,我实现了对话框的显示,移动等基本功能,又可以显示文字了,还有按钮。现在呢,我想将这些东西组合起来来显示一下合作的力量是巨大的。正题我的思路是,在对话框上面绘制文字,放在标题栏位置,一个关闭按钮放在右上角,看似容易的操作是否真的容易呢。首先我添加窗口标题,新建了一个窗口类,然后在窗口类里面添加了一个字体类,这也是暂时的,就是为了能出效果。主要是显示的时候,要获取窗口的位置,...原创 2019-04-01 00:28:14 · 449 阅读 · 0 评论 -
OpenGL游戏制作之路[第七篇 元素动起来(1)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
失踪人口回归。前言上回书说到地图编辑器可以放置元素了,这次我们让元素动起来。首先,我制作了一张动图的素材。正题这两张图仔细观察,有不同的地方,我就利用这两张图来实现元素的动态效果。class GLTexture{protected: //动画序列 vector<GLuint> animation_sequence; //当前显示的 GLuint...原创 2019-03-27 21:56:15 · 317 阅读 · 0 评论 -
OpenGL游戏制作之路[第七篇 元素动起来(2)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言上次已经做好了一个动态的效果,这次要多弄几个,同时我也发现由于元素都是从按钮那里复制过来的,所以,按钮上面就直接赋值动态的序列了,而不是一个简单的图片,只不过按钮没有加入计数器让图像动起来,这种设计感觉不是很合理,所以我打算下一篇的时候改进一下。正题我使用的素材都是网上下载的,而且本身也不是动态的,所以就需要自己用PS制作动态的,我做了几张图。就不一一列举了。...原创 2019-03-28 19:54:13 · 329 阅读 · 0 评论 -
OpenGL游戏制作之路[第总结篇]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言之前的设计中出现了一些小问题,所以我把文件架构重新设计了一遍,然后先在这里总结一下。正题首先,我是在写一个游戏,但是我在写游戏的过程中顺便就写成一个小引擎,打算以后还能用来开发别的游戏,在开发的过程中,架构的设计很重要,这里我并不是很精通什么是设计架构,但是我会有意识的让整个程序的可拓展性和鲁棒性更好。现在看看这个程序的类图。这次的类更多了,也更复杂了,所以之后的设计也要更...原创 2019-04-11 22:27:44 · 874 阅读 · 0 评论 -
OpenGL游戏制作之路[第二篇 游戏控件之按钮(5)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言前面几篇的那么的多铺垫,到现在终于能直接写我们期待的按钮了,有了前面的准备应该不难写了,先来设计一下。正题1.首先我准备了两种按钮图片。第一张是正常显示的图片,第二张是鼠标放上去的效果。然后在加载目录文件中添加这两个文件的名字。2.我发现按钮类暂时不用添加任何新东西,但是还是需要创建一个新的类来代表这个是按钮,我们将按钮在之前的GameWindow类中加载。然后是一...原创 2019-02-12 15:54:08 · 709 阅读 · 0 评论 -
OpenGL游戏制作之路[第二篇 游戏控件之按钮(4)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言上次规划了一下资源加载的方式,这次就要着手去加载资源,我们要准备好纹理,着色器代码,和顶点数据,开工。正题1.纹理先来加载纹理,因为这个容易一些,我选择魔塔中的纹理,背景透明的,32X32的一个图像。有些模糊,是因为放大了的原因。骷髅队长这支持其中的一张,我会准备很多张图片,将图片按照一定规则命名。现就这么多图片。 在全局类中添加三个加载资源的函数...原创 2019-02-11 23:46:57 · 388 阅读 · 0 评论 -
OpenGL(预备篇2)---OpenGL编程环境配置 vs2017篇---GLFW编译---(自己动手系列)
接着上一篇博客,我们继续编译需要的库,GLFW是做什么用的?GLFW是一个可以让你的程序跨平台的一个框架,当你创建程序窗口,控制鼠标键盘等行为的时候,不需要根据不同操作系统来编写不同的代码,使用GLFW可以在任何操作系统下用同样的代码。首先下载源码包 https://www.glfw.org/下载好后应该是这样,我顺手解压了。这种分多篇博客写一件事真的不是我想发博客凑数的,我只...原创 2018-11-08 19:55:02 · 657 阅读 · 0 评论 -
OpenGL(预备篇3)---OpenGL编程环境配置 vs2017篇---GLM---(自己动手系列)
什么是GLM,有什么用?OpenGL Mathematics (GLM)。看样子这是一个OpenGL的数学库。在OpenGL编程中用处很大,可以下载来用用。幸运的是,这个不用编译,下载后解压了就直接能用。 https://glm.g-truc.net/0.9.9/index.html解压后打开里面的文件你会看到 一个glm文件夹。把这个glm直接放到我们之前的include里就好了...原创 2018-11-08 19:55:16 · 3470 阅读 · 4 评论 -
OpenGL(预备篇4)---OpenGL编程环境配置 vs2017篇---vs2017环境配置---(自己动手系列)
经过前面的准备,需要的文件已经都有了,现在我们配置环境。首先新建一个vs2017工程的空项目,然后新建一个CPP文件。之后设置包含路径,将之前的include路径添加。然后设置库目录,glew和glfw的lib目录,因为现在设置的是debug版本的,所以库目录也要对应的设置debug版本。设置好后会这样。然后将库文件名添加进来。 介于文件名不是很多,我就一个一个的输...原创 2018-11-08 19:55:39 · 675 阅读 · 1 评论 -
OpenGL(预备篇5)环境配置后的代码
本来还想直接开一个2D游戏的专栏,但是暂时资历不够。之前的几篇博客是配置环境,这里就是配置环境后写一段测试代码了。建议是把glew32d.dll这个文件放到和exe同一个目录下,如果是release版本的就是glew32.dll文件。先别管代码是什么意思,先试试环境是不是配置好了,成功的效果是运行代码后会出现一个窗口,黑色背景里面有个白色方块。#include<iostre...原创 2019-01-14 14:35:02 · 308 阅读 · 0 评论 -
OpenGL(预备篇7)windows-mingw32-codelite配置OpenGL glew glfw glm soil
之前是在vs下配置的,后来我打算在codelite下配置一遍,然后就在这下面开发了,目前还是windows平台下的。源码下载好,glew,glfw,glm,soil源码链接就不给了,前面的文章都有了,还有cmake什么的,就都当准备好了。这次是一次性配置好。1.上图红色框里的路径要格外注意,注意,注意。路径都设置好后,先Configure,然后选择如下图前提是你电脑里有GC...原创 2019-01-20 23:01:50 · 719 阅读 · 0 评论 -
OpenGL(预备篇6) 下面将进行一轮2D游戏制作
即将会有2D游戏制作的专栏,喜欢的可以关注一下。原创 2019-01-16 15:35:02 · 210 阅读 · 0 评论 -
OpenGL游戏制作之路[第五篇 游戏控件之游戏地图(1)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言生活就是这样,起起落落,你认为的结束也许就是另一片天地的开始。上次我们绘制了元素块,这次就要绘制一个大的东西了,游戏地图,也是游戏中最重要的一部分了,下面来仔细的设计一下。正题一个地图有许多小的元素块组成,介于地图是2D方形的,组织起来比较容易,一个地图由许多块构成,把这些块排列起来就是地图,这里我们多考虑一点,魔塔中,地图块分为地面,和地面上的怪物,所以我把地图设置为两层,一...原创 2019-02-16 00:52:29 · 572 阅读 · 0 评论 -
OpenGL游戏制作之路[第一篇 游戏控件之窗体]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言(重点,考试要考) 有的时候,想把一件事情完完整整的做完,但是又不知道背后的动力何在,我发现,写写博客还是能激励自己做下去的,不知道最后能获得什么,但是至少看到了博客数目多起来了,阅读量多起来了,自己的努力有了可视的收获,心里着实踏实不少。这其中也包含着我一直以来都想做的事情,就是自己写一个游戏,不管什么游戏,像样点就行,我琢磨了好久,用什么工具来写(C++还是JAVA还是U3D...原创 2019-02-09 16:23:28 · 1090 阅读 · 1 评论 -
OpenGL游戏制作之路[第六篇 游戏控件之游戏地图编辑(1)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言上次显示了地图,只不过地图上只有地面贴图,这次要在上面显示更多的元素,并且用鼠标来设置地图。这样编辑器大部分工作就完成了。正题要让GMap能响应鼠标事件,所以新建一个类从GMap继承,就叫EMap,这个地图中,当鼠标点击一个元素后,回记录该元素,然后在地图上点击的时候,就会放置该元素。class EMap : public GMap{public: EMap(); /...原创 2019-02-22 10:47:25 · 478 阅读 · 0 评论 -
OpenGL游戏制作之路[第二篇 游戏控件之按钮(1)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
简介在写按钮之前,要做很多铺垫的,这也是为后面写更多控件作为铺垫,我们不会一次的把按钮直接写出来,先分析一下,如果将来的控件还有标签,文本框,对话框(这不算控件吧),这些如果都是一个小窗口的话,那么这些东西就都有一个特点,就是都可以当作一个单独的对话框,只是显示的形式不同,所以我先建立一个抽象类,所有控件都继承这个类。正题首先看一下这个抽象类需要怎么设计。在设计的时候,我发现,窗口这些...原创 2019-02-10 17:08:04 · 616 阅读 · 0 评论 -
OpenGL游戏制作之路[第二篇 游戏控件之按钮(2)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
简介经过上次的思考,我决定先进行一个初步的类设计,这样能为后面的开发带来不少方便,就好比有了图纸,设计的时候要小心,尽量避免漏洞,尤其是重大设计漏洞。正题下面的图就是我目前设计的类图,展示了目前用到的类和之间的关系,其中也许还有不足,但是现在基本上够用了。之后的设计就主要在这张图纸上做文章了,图纸都有了,编码就是小事了。这次我暂时不传设计文档,打算下次继续完善好后在上传。这个就...原创 2019-02-11 00:08:08 · 406 阅读 · 0 评论 -
OpenGL游戏制作之路[第二篇 游戏控件之按钮(3)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)
前言上次我设计了一个框架,在我继续想编写的时候,却发现了一个问题,就是资源加载问题,因为我们需要加载顶点,纹理,等数据,虽然类设计好了,但还要加载进去,所以就需要设计一下如何组织这些数据。正题我设计了三个容器装资源,目前有的资源的是纹理,着色器,顶点。这三个容器放在了全局类中,这时候资源还是零散的,所以要设计一种约定来组织起来这三种资源,实际上看起来就是这样。整合部分看...原创 2019-02-11 17:11:31 · 1412 阅读 · 0 评论