DirectX11 高级篇
文章平均质量分 97
无
X_Jun96
与DX结下的不解之缘
展开
-
DirectX11 With Windows SDK--36 延迟渲染基础
随着图形硬件变得越来越通用和可编程化,采用实时3D图形渲染的应用程序已经开始探索传统渲染管线的替代方案,以避免其缺点。其中一项最流行的技术就是所谓的延迟渲染。这项技术主要是为了支持大量的动态灯光,而不需要一套复杂的着色器程序。原创 2022-03-05 00:11:22 · 1486 阅读 · 0 评论 -
DirectX11 With Windows SDK--35 粒子系统
前言在这一章中,我们主要关注的是如何模拟一系列粒子,并控制它们运动。这些粒子的行为都是类似的,但它们也带有一定的随机性。这一堆粒子的几何我们叫它为粒子系统,它可以被用于模拟一些比较现象,如:火焰、雨、烟雾、爆炸、法术效果等。在这一章开始之前,你需要先学过如下章节:章节11 混合状态15 几何着色器初探16 流输出阶段17 利用几何着色器实现公告板效果学习目标:熟悉如何利用几何着色器和流输出阶段来高效存储、渲染粒子了解我们如何利用基本的物理概念来让我们的粒原创 2020-08-01 21:39:09 · 601 阅读 · 0 评论 -
DirectX11 With Windows SDK--34 位移贴图
前言在前面的章节中,我们学到了法线贴图和曲面细分。现在我们可以将这两者进行结合以改善效果,因为法线贴图仅仅只是改善了光照的细节,但它并没有从根本上改善几何体的细节。从某种意义上来说,法线贴图只是一个光照的小把戏。接下来我们将会学习如何使用位移贴图来改善网格细节。在此之前你需要了解如下章节:章节25 法线贴图33 曲面细分阶段(Tessellation)学习目标:了解位移贴图熟悉如何用曲面细分来改善网格细节DirectX11 With Windows SDK完整目原创 2020-08-01 21:35:11 · 520 阅读 · 0 评论 -
DirectX11 With Windows SDK--33 曲面细分阶段(Tessellation)
前言曲面细分是Direct3D 11带来的其中一项重要的新功能。它引入了两个可编程着色器阶段以及一个固定的镶嵌处理过程。简单来说,曲面细分技术可以将几何体细分为更小的三角形,并以某种方式把这些新生成的顶点偏移到合适的位置,从而以增加三角形数量的方式丰富网格细节。但为什么不在创建网格之初就直接赋予它高模(high-poly,高面数多边形)的细节呢?以下是使用曲面细分的3个理由:基于GPU实现动态LOD(Level of Detail,细节级别)。可以根据网格与摄像机的距离或依据其他因素来调整其细节。比如原创 2020-08-01 21:32:33 · 1151 阅读 · 0 评论 -
DirectX11 With Windows SDK--32 SSAO(屏幕空间环境光遮蔽)
前言由于性能的限制,实时光照模型往往会忽略间接光因素(即场景中其他物体所反弹的光线)。但在现实生活中,大部分光照其实是间接光。在第7章里面的光照方程里面引入了环境光项:Ca=AL⊗mdC_a = \mathbf{A_L}\otimes\mathbf{m_d}Ca=AL⊗md其中颜色AL\mathbf{A_L}AL表示的是从某光源发出,经过环境光反射而照射到物体表面的间接光总量。漫反射md\mathbf{m_d}md则是物体表面根据漫反射率将入射光反射回的总量。这种方式的计算只是一种简化,原创 2020-08-01 21:27:25 · 860 阅读 · 0 评论 -
DirectX11 With Windows SDK--31 阴影映射
前言阴影既暗示着光源相对于观察者的位置关系,也从侧面传达了场景中各物体之间的相对位置。本章将起底最基础的阴影映射算法,而像复杂如级联阴影映射这样的技术,也是在阴影映射的基础上发展而来的。从本章开始我们将使用EffectHelper进一步简化所编写的特效,为此你可能还需要了解下面的章节:章节深入理解Effects11、使用着色器反射机制(Shader Reflection)实现一个复杂Effects框架学习目标:掌握基本的阴影映射算法熟悉投影纹理贴图的工作原理了解阴影图走原创 2020-08-01 21:19:35 · 653 阅读 · 0 评论 -
DirectX11 With Windows SDK--30 计算着色器:高斯模糊、索贝尔算子
前言到这里计算着色器的主线学习基本结束,剩下的就是再补充两个有关图像处理方面的应用。这里面包含了龙书11的图像模糊,以及龙书12额外提到的Sobel算子进行边缘检测。主要内容源自于龙书12,项目源码也基于此进行调整。学习目标:熟悉图像处理常用的卷积熟悉高斯模糊、Sobel算子DirectX11 With Windows SDK完整目录Github项目源码欢迎加入QQ群: 7276...原创 2020-02-15 17:23:31 · 1037 阅读 · 0 评论 -
DirectX11 With Windows SDK--29 计算着色器:内存模型、线程同步;实现顺序无关透明度(OIT)
前言由于透明混合在不同的绘制顺序下结果会不同,这就要求绘制前要对物体进行排序,然后再从后往前渲染。但即便是仅渲染一个物体(如上一章的水波),也会出现透明绘制顺序不对的情况,普通的绘制是无法避免的。如果要追求正确的效果,就需要对每个像素位置对所有的像素按深度值进行排序。本章将介绍一种仅DirectX11及更高版本才能实现的顺序无关的透明度(Order-Independent Transparenc...原创 2020-02-15 17:20:41 · 1610 阅读 · 0 评论 -
DirectX11 With Windows SDK--26 计算着色器:入门
前言现在开始迎来所谓的高级篇了,目前计划是计算着色器部分的内容视项目情况,大概会分3-5章来讲述。DirectX11 With Windows SDK完整目录Github项目源码欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报。概述GPU通常被设计为从一个位置或连续的位置读取并处理大量的内存数据(即流操作),而CPU则被设计为专门处理随机内存的...原创 2019-01-31 11:03:35 · 1186 阅读 · 0 评论 -
DirectX11 With Windows SDK--27 计算着色器:双调排序
前言上一章我们用一个比较简单的例子来尝试使用计算着色器,但是在看这一章内容之前,你还需要了解下面的内容:章节26 计算着色器:入门深入理解与使用缓冲区资源这一章我们继续用一个计算着色器的应用实例作为切入点,进一步了解相关知识。DirectX11 With Windows SDK完整目录Github项目源码欢迎加入QQ群: 727623616 可以一起探讨DX...原创 2019-02-19 17:57:21 · 996 阅读 · 0 评论 -
DirectX11 With Windows SDK--28 计算着色器:波浪(水波)
前言有关计算着色器的基础其实并不是很多。接下来继续讲解如何使用计算着色器实现水波效果,即龙书中所实现的水波。但是光看代码可是完全看不出来是在做什么的。个人根据书中所给的参考书籍找到了对应的实现原理,但是里面涉及到比较多的物理公式。因此,要看懂这一章需要有高数功底(求导、偏导、微分方程),我会把推导过程给列出来。本章演示项目还用到了其他的一些效果,在学习本章之前建议先了解如下内容:章节...原创 2020-01-22 09:22:53 · 1131 阅读 · 0 评论