HLSL
沉默的舞台剧
Keep running
展开
-
DirectX11进阶9_AO、SSAO、Particle System(GPU)
一、环境光遮蔽(AO)由于性能的限制,实时光照模型往往会忽略间接光因素(即场景中其他物体所反弹的光线)。但在现实生活中,大部分光照其实是间接光。在第7章里面的光照方程里面引入了环境光项:其中颜色AL表示的是从某光源发出,经过环境光反射而照射到物体表面的间接光总量。漫反射md则是物体表面根据漫反射率将入射光反射回的总量。这种方式的计算只是一种简化,并非真正的物理计算,它直接假定物体表面任意一点接收到的光照都是相同的,并且都能以相同的反射系数最终反射到我们眼睛。下图展示了如果仅采用环境光项来绘制模型的情.原创 2020-10-29 17:30:24 · 865 阅读 · 0 评论 -
DirectX11进阶8_计算着色器(入门、流体模拟)
一、计算着色器:入门GPU通常被设计为从一个位置或连续的位置读取并处理大量的内存数据(即流操作),而CPU则被设计为专门处理随机内存的访问。由于顶点数据和像素数据可以分开处理,GPU架构使得它能够高度并行,在处理图像上效率非常高。但是一些非图像应用程序也能够利用GPU强大的并行计算能力以获得效益。GPU用在非图像用途的应用程序可以称之为:通用GPU(GPGPU)编程。GPU需要数据并行的算法才能从GPU的并行架构中获得优势,并不是所有的算法都适合用GPU来实现。对于大量的数据,我们需要保证它们都进行相原创 2020-10-28 19:36:54 · 2293 阅读 · 1 评论 -
DirectX11进阶7_着色器反射机制、Normal Mapping、Shadow Mapping
一、法线贴图在很早之前的纹理映射中,纹理存放的元素是像素的颜色,通过纹理坐标映射到目标像素以获取其颜色。但是我们的法向量依然只是定义在顶点上,对于三角形面内一点的法向量,也只是通过比较简单的插值法计算出相应的法向量值。这对平整的表面比较有用,但无法表现出内部粗糙的表面。1.1 原理法线贴图是指纹理中实际存放的元素通常是经过压缩后的法向量,用于表现一个表面凹凸不平的特性,它是凹凸贴图的一种实现方式。法线贴图中存放的法向量( x , y , z ) 分别对应原来的( r , g , b )。每个像素都原创 2020-10-27 17:08:05 · 982 阅读 · 0 评论 -
DirectX11进阶6_静态天空盒、反射动态场景与天空盒、Render-To-Texture(Fade/MiniMap/ScreenShot)
一、静态天空盒这一章我们主要学习由6个纹理所构成的立方体映射,以及用它来实现一个静态天空盒。但是在此之前先要消除两个误区:认为这一章的天空盒就是简单的在一个超大立方体的六个面内部贴上天空盒纹理;认为天空盒的顶点都是固定的,距离起始点的位置特别远。我提出这两个误区,是因为看到有些人的作品直接贴了六个立方体,就说自己用到了天空盒技术,但是当你真正学这一章的话会发现此天空盒非彼天空盒,而且该篇教程除了天空盒的技术实现外,还有其余的一些干货值得学习,建议认真研读。在此之前还需要回顾一下里面有关纹理子资源原创 2020-10-26 17:42:51 · 1405 阅读 · 2 评论 -
DirectX11进阶4_公告板及场景雾效
一、场景雾效有时候我们需要在游戏中模拟一些特定的天气条件,比如说大雾。它可以让物体平滑出现而不是突然蹦出来那样(物体的一部分留在视锥体内使得只能看到该部分,然后在逐渐靠近该物体的时候,该物体就像经过了一个无形的扫描门被逐渐构造出来那样)。通过让雾在某一范围内具有一定的层次(让不可见区域比视锥体裁剪区域还近),我们可以避免上面所说的情况。但即便是晴朗的天气,你可能仍希望包含一个较广范围的雾效,即距离达到很远的地方才逐渐看不清物体。我们可以使用这种方式来实现雾效:指定雾的颜色,以摄像机为原点的雾开始的最小.原创 2020-10-24 16:36:08 · 348 阅读 · 0 评论 -
DirectX11进阶3_碰撞检测及obj读取与二进制缓存
一、碰撞检测在DirectX SDK中,碰撞检测的相关函数位于xnacollision.h中。但是现在,前面所实现的相关函数都已经转移到Windows SDK的DirectXCollision.h中,并且处于名称空间DirectX内。这里面主要包含了四种包围盒(Bounding Volumes),并且是以类的形式实现的:BoundingSphere类–包围球(Bounding Box)BoundingBox类–轴对齐包围盒(Axis-aligned bounding box),又称AABB盒Bo.原创 2020-10-23 22:50:11 · 812 阅读 · 0 评论 -
DirectX11进阶2_几何着色器及流输出运用
一、几何着色器首先用一张图来回顾一下渲染管线的各个阶段,目前为止我们接触的着色器有顶点着色器和像素着色器,而接触到的渲染管线阶段有:输入装配阶段、顶点着色阶段、光栅化阶段、像素着色阶段、输出合并阶段。可以看到,几何着色器是我们在将顶点送入光栅化阶段之前,可以操作顶点的最后一个阶段。它同样也允许我们编写自己的着色器代码。几何着色器可以做如下事情:让程序自动决定如何在渲染管线中插入/移除几何体;通过流输出阶段将顶点信息再次传递到顶点缓冲区;改变图元类型(如输入点图元,输出三角形图元);但它也有原创 2020-10-23 17:52:33 · 1205 阅读 · 0 评论 -
DirectX11进阶1_混合与深度/模板(平面镜实现)
1原创 2020-10-22 20:18:40 · 880 阅读 · 0 评论 -
DirectX11_HLSL入门篇
一、 HLSL语法入门二、HLSL编译着色器的三种方法三、HLSL中矩阵的内存布局和mul函数探讨原创 2020-10-21 15:32:10 · 638 阅读 · 0 评论 -
DirectX11_API流程入门篇
本部分主要记录下使用D3D入门所涉及到的API,大致流程与vulkan类似(相对于vulkan来说您应该能够更好的理解和使用DX),应该说是所有图形API整体流程大致类似吧,废话不多说,直接记录供后期学习使用。一、Direct3D初始化Direct3D初始化阶段首先需要创建D3D设备和D3D设备上下文 D3D设备(ID3D11Device) 通常代表一个显示适配器(即显卡),它最主要的功能是用于创建各种所需资源,最常用的资源有:资源类(ID3D11Resource, 包含纹理和缓冲区),视图类以原创 2020-10-21 15:15:06 · 4948 阅读 · 4 评论