摘要: 前言 (更新于 2022/4/15) 教程已经断断续续出了四年了,稍微翻新一下开头。 从第一次接触DirectX 11到现在已经有将近五年的时间了。记得当初学习DirectX 11,在用龙书的源码配置项目运行环境的时候都花了好几天的时间才搞定,又因为书中的代码的开发环境(VS 2010)与现在的情况 阅读全文
posted @ 2018-05-12 17:32 X_Jun 阅读(94818) 评论(11) 推荐(24) 编辑
摘要: 前言 Dear ImGui是一个开源GUI框架。除了UI部分外,本身还支持简单的键鼠交互。目前项目内置的是V1.87版本,大概半年时间会更新一次版本,并且对源码有小幅度调整。 注意:直接下载源码使用会导致19章之后的UI效果有误,修改了源码imgui_impl_dx11.cpp,需要用项目源码中的替 阅读全文
posted @ 2022-06-23 19:50 X_Jun 阅读(3918) 评论(0) 推荐(1) 编辑
摘要: 前言 注意:这一章进行了重写,对应教程Dev分支第19章的项目,在更新完后面的项目后会替换掉原来第19章的教程 在前面的章节中我们一直使用的是由代码生成的几何模型,但现在我们希望能够导入模型设计师生成的各种格式的模型。然而,在DirectX中,将模型导入到内存后还需要我们进行处理,最终变成能让管线使 阅读全文
posted @ 2022-06-09 22:38 X_Jun 阅读(2409) 评论(0) 推荐(3) 编辑
摘要: 前言 在默认的情况下渲染,会看到物体的边缘会有强烈的锯齿感,究其原因在于采样不足。但是,尝试提升采样的SSAA会增大渲染的负担;而硬件MSAA与延迟渲染又不能协同工作。为此我们可以考虑使用后处理的方式来进行抗锯齿的操作。在这一章中,我们将会讨论一种常见的后处理抗锯齿方法:FXAA。 DirectX1 阅读全文
posted @ 2022-05-31 00:35 X_Jun 阅读(1891) 评论(1) 推荐(0) 编辑
摘要: 前言 GAMES104的王希说过: 游戏引擎的世界里,它的核心是靠Tick()函数把这个世界驱动起来。 本来单是一个CPU的计时器是不至于为其写一篇博客的,但把GPU计时器功能加上后就不一样了。在这一篇中,我们将讲述如何使用CPU计时器获取帧间隔,以及使用GPU计时器获取GPU中执行一系列指令的间隔 阅读全文
posted @ 2022-05-20 02:00 X_Jun 阅读(1948) 评论(0) 推荐(3) 编辑
摘要: 前言 上一章我们介绍了级联阴影贴图。刚开始的时候我尝试了给CSM直接加上PCSS,但不管怎么调难以达到说得过去的效果。然后文章越翻越觉得阴影就是一个巨大的坑,考虑到时间关系,本章只实现了方差阴影贴图(VSM)、指数阴影贴图(ESM)和指数方差阴影贴图(EVSM)作为引子,然后将相关扩展放在文末。 现 阅读全文
posted @ 2022-05-14 12:37 X_Jun 阅读(2610) 评论(0) 推荐(3) 编辑
摘要: 前言 在31章我们曾经实现过shadow mapping,但是受到阴影贴图精度的限制,只能在场景中相当有限的范围内投射阴影。本章我们将以微软提供的例子和博客作为切入点,学习如何解决阴影中出现的Atrifacts: 边缘闪烁&抖动 阴影接缝 阴影缺失 perspective aliasing proj 阅读全文
posted @ 2022-04-07 13:24 X_Jun 阅读(1817) 评论(2) 推荐(1) 编辑
摘要: 前言 由于最近Visual Studio的图形调试器老是抽风,不得不寻找一个替代品了。 对于图形程序开发者来说,学会使用RenderDoc图形调试器可以帮助你全面了解渲染管线绑定的资源和运行状态,从而确认问题所在。 RenderDoc官网 DirectX11 With Windows SDK完整目录 阅读全文
posted @ 2022-03-30 10:24 X_Jun 阅读(14137) 评论(2) 推荐(4) 编辑
摘要: 前言 在上一章,我们主要介绍了如何使用延迟渲染,以及如何对G-Buffer进行一系列优化。而在这一章里,我们将从光源入手,讨论如何对大量的动态光源进行剔除,从而获得显著的性能提升。 在此之前假定读者已经读过上一章,并熟悉了如下内容: 计算着色器 结构化缓冲区 DirectX11 With Windo 阅读全文
posted @ 2022-03-18 19:53 X_Jun 阅读(1296) 评论(0) 推荐(0) 编辑
摘要: 前言 随着图形硬件变得越来越通用和可编程化,采用实时3D图形渲染的应用程序已经开始探索传统渲染管线的替代方案,以避免其缺点。其中一项最流行的技术就是所谓的延迟渲染。这项技术主要是为了支持大量的动态灯光,而不需要一套复杂的着色器程序。 为了迎接这一章的项目,会对原来的代码有许多改动,并且会有许多引申的 阅读全文
posted @ 2022-03-04 23:55 X_Jun 阅读(2514) 评论(2) 推荐(2) 编辑
摘要: 这篇论文没有给出代码,细节部分还是得看论文来推敲了,因此可能会有理解出问题的地方。 概述 **做了什么:**引入一个端到端的框架,从包含人体的单张RGB图像中预测出轮廓图和关节热力图,生成SMPL参数并重建出一个SMPL的3D人体网格 **存在问题:**卷积网络容易受到缺少训练数据、3D预测时分辨率 阅读全文
posted @ 2020-12-15 16:30 X_Jun 阅读(1371) 评论(2) 推荐(0) 编辑
摘要: PS. 这里做的论文笔记主要是为自己方便回顾。 概述 **做了什么:**引入一个端到端的Human Mesh Recovery框架,从包含人体的RGB位图中重建出一个SMPL的3D网格,并尝试重新投影回图片上 **目的:**最小化关键点的重投影损失,使得我们可以使用只带2D准确标注的户外场景图像就能 阅读全文
posted @ 2020-11-27 18:23 X_Jun 阅读(4035) 评论(1) 推荐(0) 编辑
摘要: 前言 注意:这一章对应项目代码2.x.x版本,持有低版本项目代码的同学请到Github更新一份 在这一章中,我们主要关注的是如何模拟一系列粒子,并控制它们运动。这些粒子的行为都是类似的,但它们也带有一定的随机性。这一堆粒子的几何我们叫它为粒子系统,它可以被用于模拟一些比较现象,如:火焰、雨、烟雾、爆 阅读全文
posted @ 2020-07-19 23:28 X_Jun 阅读(2716) 评论(0) 推荐(4) 编辑
摘要: 前言 注意:这一章对应项目代码2.x.x版本,持有低版本项目代码的同学请到Github更新一份 在前面的章节中,我们学到了法线贴图和曲面细分。现在我们可以将这两者进行结合以改善效果,因为法线贴图仅仅只是改善了光照的细节,但它并没有从根本上改善几何体的细节。从某种意义上来说,法线贴图只是一个光照的小把 阅读全文
posted @ 2020-07-15 20:45 X_Jun 阅读(1644) 评论(0) 推荐(2) 编辑
摘要: 前言 曲面细分是Direct3D 11带来的其中一项重要的新功能。它引入了两个可编程着色器阶段以及一个固定的镶嵌处理过程。简单来说,曲面细分技术可以将几何体细分为更小的三角形,并以某种方式把这些新生成的顶点偏移到合适的位置,从而以增加三角形数量的方式丰富网格细节。但为什么不在创建网格之初就直接赋予它 阅读全文
posted @ 2020-07-12 01:20 X_Jun 阅读(3123) 评论(0) 推荐(5) 编辑
摘要: 前言 注意:这一章对应项目代码2.x.x版本,持有低版本项目代码的同学请到Github更新一份 由于性能的限制,实时光照模型往往会忽略间接光因素(即场景中其他物体所反弹的光线)。但在现实生活中,大部分光照其实是间接光。在第7章里面的光照方程里面引入了环境光项: \[ C_a = \mathbf{A_ 阅读全文
posted @ 2020-07-06 11:21 X_Jun 阅读(2617) 评论(0) 推荐(4) 编辑
levels of contents