摘要: BlockAllocator 的内存管理情况可以用下图表示 整体思路是,先分配一大块内存 Chunk,然后将 Chunk 分割成小块 Block。由于 Block 是链表的一个结点,所以可以通过链表的形式把未使用的 Block 连接起来,并保存到 pFreeLists 中。当我们向 BlockAll 阅读全文
posted @ 2017-07-02 22:15 为了邮箱5 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 假如要渲染一个纯色矩形在窗口上,应该怎么做? 先确定顶点的格式,一个顶点应该包含位置信息 vec3 以及颜色信息 vec4,所以顶点的结构体定义可以这样: 然后填充矩形四个顶点是数据信息: 分配一块内存,将内存类型转换为 Vertex,最后设置数据。上面只是用了4个顶点,显然还要设置索引数据: 有了 阅读全文
posted @ 2017-07-02 20:47 为了邮箱5 阅读(894) 评论(0) 推荐(0) 编辑
摘要: Pass,渲染通路,一个渲染通路指的是一次像素处理和一次顶点处理,也就是指的是一次绘制。简单来说就是顶点数据在渲染管线中走一遍最后绘制。 渲染粒子系统的粒子时,需要开启 OpenGL 的混合模式,并使两个颜色相加。如果同一时间进行多张图片的绘制,并且这些图片的渲染并不需要开启混合模式。这时渲染的最终 阅读全文
posted @ 2017-07-02 16:08 为了邮箱5 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: Shader 只是进行一些简单的封装,主要功能: 1、编译着色程序 2、绑定 Uniform 数据 3、根据着色程序的顶点属性传递顶点数据到 GPU 着色程序的编译 Simple2D 只支持顶点着色器和片段着色器,暂不支持其他着色器。 OpenGL 绘制方式 使用openGL图形库绘制,都需要通过o 阅读全文
posted @ 2017-07-02 11:58 为了邮箱5 阅读(1111) 评论(0) 推荐(0) 编辑
摘要: 事实上,前面编写的渲染器 Renderer 非常简陋,虽然能够进行一些简单的渲染,但是它并不能满足我们的要求。 当渲染粒子系统时,需要开启混合模式,但渲染其他顶点时却不需要开启混合模式。所以同时渲染粒子系统和其他纹理时会得不到想要的结果,渲染器还存在许多的不足: 1、当渲染许多透明图形时,没有对其进 阅读全文
posted @ 2017-07-01 21:42 为了邮箱5 阅读(1669) 评论(0) 推荐(0) 编辑
摘要: 这次为程序添加鼠标事件和键盘事件 当检测到鼠标事件和键盘事件的信息时,捕获其信息并将信息传送到需要信息的对象处理。为此,需要一个可以分派信息的对象,这个对象能够正确的把信息交到正确的对象。 实现思路: 要实现以上的功能,需要几个对象: 事件分派器:EventDispatcher,负责将 BaseEv 阅读全文
posted @ 2017-05-20 22:06 为了邮箱5 阅读(981) 评论(0) 推荐(0) 编辑
摘要: 在这篇文章中,我将详细说明如何编写一个简易的粒子系统。 粒子系统可以模拟许多效果,下图便是这次的粒子系统的显示效果。为了方便演示,就弄成了一个动图。 图中,同时显示了 7 种不同粒子效果,看上去效果挺炫酷的。 粒子编辑器 使用粒子编辑器,可以在可视化视图中快速、简便的做出想要的粒子效果。这个粒子系统 阅读全文
posted @ 2017-05-14 17:19 为了邮箱5 阅读(3990) 评论(2) 推荐(0) 编辑
摘要: 阅读文章前需要了解的知识:文本渲染 https://learnopengl-cn.github.io/06%20In%20Practice/02%20Text%20Rendering/ 简要步骤: 获取要绘制的字符的 Unicode 码,使用 FreeType 库获取对应的位图数据,添加到字符表中( 阅读全文
posted @ 2017-05-06 11:35 为了邮箱5 阅读(1906) 评论(1) 推荐(0) 编辑
摘要: 阅读文章前需要了解的知识,纹理:https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 过程简述:利用 FreeImage 库加载图像数据,再创建 OpenGL 纹理,通过 Canvas2D 画布绘制,最后又 Re 阅读全文
posted @ 2017-05-04 20:52 为了邮箱5 阅读(5606) 评论(0) 推荐(0) 编辑
摘要: 阅读文章前需要了解的知识,你好,三角形:https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/ 要渲染出几何图形来,首先需要变换矩阵,那么自然就需要一个数学库了。本来想用 glm 库的,但用不惯这个 阅读全文
posted @ 2017-05-01 23:21 为了邮箱5 阅读(1373) 评论(0) 推荐(0) 编辑