摘要: OpenGL DSA 阅读全文
posted @ 2020-11-08 12:35 DeepDream 阅读(916) 评论(0) 推荐(1) 编辑
摘要: HiZ-buffer Occlusion Culling 阅读全文
posted @ 2020-11-07 17:27 DeepDream 阅读(4041) 评论(0) 推荐(0) 编辑
摘要: GPU是一个外围设备,本来是专门作为图形渲染使用的,但是随着其功能的越来越强大,GPU也逐渐成为继CPU之后的又一计算核心。但不同于CPU的架构设计,GPU的架构从一开始就更倾向于图形渲染和大规模数据的并行计算处理。而大规模的并行计算,离不开大规模的数据传输,只有深入了解了GPU的存储体系,才能真正 阅读全文
posted @ 2019-06-14 16:13 DeepDream 阅读(6746) 评论(3) 推荐(3) 编辑
摘要: 最近在了解GPU架构这方面的内容,由于资料零零散散,所以准备写两篇博客整理一下。GPU的架构复杂无比,这两篇文章也是从宏观的层面去一窥GPU的工作原理罢了 GPU根据厂商的不同,显卡型号的不同,GPU的架构也有差别,但是大体的设计基本相同,原理的部分也是相通的。下面我们就以NVIDIA的Fermi架 阅读全文
posted @ 2019-04-12 14:34 DeepDream 阅读(7112) 评论(2) 推荐(2) 编辑
摘要: 本文章以Linux为例,讲解一下虚拟内存系统的工作原理,windows系统的原理也是大同小异,有兴趣的读者可以自行查阅相关资料。 linux内核以及它管理用户内存的机制,下面我们以应用程序gonzo的内存示意图为例,进行详细说明。 Linux进程在内核中是以一个task_struct实例来实现的,称 阅读全文
posted @ 2019-02-28 17:03 DeepDream 阅读(4211) 评论(2) 推荐(0) 编辑
摘要: Introduction 现在很多游戏引擎都在使用一种称为“多线程渲染渲染器”的特殊渲染系统。多线程在一段时间内已经变得非常的普及了,但是究竟什么是多线程渲染器,它又是如何工作的呢?在这篇文章里,我将解释这些问题,并将实现一个简单的多线程渲染的框架。 Why Use Threads at All 其 阅读全文
posted @ 2019-01-30 12:02 DeepDream 阅读(5269) 评论(0) 推荐(1) 编辑
摘要: 什么是 OpenGL loading? OpenGL是一份API规范,并不是一个库。记住这点非常重要!它意味着每一个API背后的具体实现都依赖于你的GPU硬件、操作系统以及显卡驱动。 OpenGL规范定义了很多不同的函数,并且规范会定期进行更新,你的显卡驱动可能不会支持全部的函数。你的显卡和显卡驱动 阅读全文
posted @ 2019-01-24 16:44 DeepDream 阅读(760) 评论(0) 推荐(2) 编辑
摘要: 前面的系列我们讲了自定义new和delete操作,其中针对deleteArray的问题还有需要优化的地方。我们这次就针对POD类型进行一次优化。 下面的代码是针对POD类型的模板函数实现,分别为NewArrayPOD和DeleteArrayPOD: 从上面可以看出,针对POD类型,我们不需要调用析构 阅读全文
posted @ 2018-12-10 22:09 DeepDream 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 在第一部分中,我们介绍了new / delete的具体用法和背后的实现细节,这次我们将构建我们自己的小型工具集,可以使用我们自定义的allocator类来创建任意类型的实例(或者实例数组),我们需要做好准备,因为这里面涉及到了函数模板,type-based dispatching,模板黑魔法,以及一 阅读全文
posted @ 2018-12-09 15:56 DeepDream 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 在深入探索自定义内存系统之前,我们需要了解一些基础的背景知识,这些知识点是我们接下来自定义内存系统的基础。所以第一部分,让我们来一起深入了解一下C++的new和delete家族,这其中有很多令人吃惊的巧妙设计,甚至有很多高级工程师都对其细节搞不清楚。 new operator and operato 阅读全文
posted @ 2018-12-08 11:12 DeepDream 阅读(233) 评论(0) 推荐(0) 编辑