博客专栏  >  综合   >  DirectX11游戏开发

DirectX11游戏开发

DirectX是PC游戏开发的主流技术,DirectX11是DirectX当下的热门版本,意味着更高的特性性能,这让DirectX 11无形中新增了很多奇妙的潜力。本人将分享自己学到的DirectX11知识,与大家体会计算机实时渲染图形的魅力。

关注
39 已关注
90篇博文
  • DirectX11 使用Cube Mapping 立方体环境贴图实现天空、物体反射效果

    这一章中,我们将学习使用立方体环境贴图(Cube Mapping)实现天空环境、模型反射效果。在《赛达尔传说:荒野之息》中,明朗或阴暗的天空都可以通过Cube Mapping来实现: (图为《赛...

    2017-08-20 18:29
    88
  • DirectX11 Tessellation曲面细分实现动态增加模型细节

    DirectX11新增了一个非常吸引人的新技术,就是曲面细分。曲面细分技术可以通过产生新的顶点模拟出更平滑的曲面。下图是《古墓丽影9中》没有开启曲面的效果,可以看到人物模型轮廓比较僵硬,这是因为原模型...

    2017-08-14 15:40
    117
  • DirectX11 使用Instancing技术提高重复模型的绘制效率

    在游戏场景中,经常需要我们绘制大量相同的模型,比如英雄联盟中,战场上的小兵可以达到非常多的数量。(图为英雄联盟游戏截图)如果我们用以前的方法绘制,一个模型draw call一次,那么就会造成巨大的性能...

    2017-08-17 11:37
    48
  • DirectX11 使用计算着色器实现高斯模糊

    高斯模糊,是一种使画面产生朦胧感的技术。在游戏中也可以可以经常看见使用高斯模糊的技术:(《赛达尔传说:荒野之息》中对游戏背景使用高斯模糊,就将我们的主角们与背景分离出来,形成了前景、背景两个层面)这节...

    2017-08-13 22:43
    175
  • DirectX11 使用几何着色器实现公告板效果

    之前说过,可编程的着色器阶段有三个,依次是顶点着色器、几何着色器、像素着色器。之前说的都是顶点着色器和像素着色器,今天第一次详细介绍几何着色器,几何着色器是一个可选的阶段。一、使用几何着色器的好处 ...

    2017-08-12 18:03
    52
  • DirectX11 平面镜像的实现

    平面镜像的实现在自然界中有许多物体的表面都非常光滑,可以像镜子一样反射周围的物体。本节介绍了如何在3D应用程序中模拟镜像效果。为简单起见,我们降低了任务难度,只在平面上实现镜像效果。例如,一辆光滑的汽...

    2015-10-04 19:58
    1165
  • DirectX11 深度/模板状态

    深度/模板状态1. 深度/模板描述当创建ID3D11DepthStencilState接口时,第一步是要填充一个D3D11_DEPTH_STENCIL_DESC实例:typedef struct D3...

    2015-10-04 12:47
    1019
  • DirectX11 模板测试

    模板测试1. 模板测试实现过程如前所述,我们可以使用模板缓冲区来阻止像素片段渲染到后台缓冲区的某些区域。判断一个特定像素是否可以写入后台缓冲区的操作称为模板测试(stencil test),其实现过程...

    2015-10-04 12:21
    938
  • DirectX11 模板

    模板1. 什么是模板?前面的博文已经介绍过深度的概念,所以这里只解释模板的概念。模板缓冲区(stencil buffer)是一种用来实现特殊效果的离屏(off-screen)缓冲区。模板缓冲的大小与后...

    2015-10-04 12:14
    696
  • DirectX11 雾

    雾1. 为什么需要雾?当我们在游戏中模拟某些类型的天气状况时,可能会用到雾效(参见下图)。雾除了本身所具有的用途外,还具有一些附加效用。例如,雾可以用来掩盖渲染过程中出现的不自然的人工痕迹,避免蹿出问...

    2015-10-04 11:51
    919
  • DirectX11 裁剪像素

    裁剪像素1. 为什么需要裁剪像素?有时,我们希望完全丢弃某个源像素,使它不再接受后续处理。这一工作可以由HLSL的内置函数clip(x)来实现。该函数只能在像素着色器中使用,当x<0时丢弃当前像素,使...

    2015-10-04 11:39
    822
  • DirectX11 Alpha通道

    Alpha通道1. 漫反射贴图控制Alpha通道在RGB混合中,源alpha分量可以用来控制透明度。混合方程中的源颜色来自于像素着色器。我们会在最后一章中看到,我们将漫反射材质的alpha值作为像素着...

    2015-10-04 11:15
    811
  • DirectX11 混合例子

    混合例子1. 屏蔽颜色写入假设我们希望原始目标像素保持不变,即不被任何其他数值覆盖,也不与当前的光栅化源像素进行混合。当我们希望屏蔽后台缓冲区、只向深度/模板缓冲区写入数据时,该算法非常有用。要实现这...

    2015-10-04 11:03
    808
  • DirectX11 创建混合状态

    创建混合状态1. 如何在DirectX11中创建混合状态?我们已经讨论了混合运算符和混合系数,但是还没有说该如何在Direct3D中使用些值。这些混合参数要通过ID3D11BlendState接口来控...

    2015-10-04 10:15
    683
  • DirectX11 混合方程

    混合方程1. 什么是混合?考虑下图。我们从地形和板条箱开始渲染场景,先绘制地形,再绘制板条箱,使地形和板条箱的像素依次存入后台缓冲区。然后使用混合(blending),将水体绘制到后台缓冲区,使水体像...

    2015-10-04 09:17
    554
  • DirectX11 压缩纹理格式

    压缩纹理格式1. 为什么需要压缩纹理?一个虚拟场景可能会载入数百幅纹理,而些纹理会占用大量的GPU内存(记住,我们必须让所有的纹理驻留在GPU内存中,只有这样着色器才能快速地访问纹理)。使用这些格式的...

    2015-10-04 09:04
    1330
  • DirectX11 地形水波纹理示例Demo

    地形纹理演示程序1. 地形纹理Demo介绍在本例中,我们要为地形和水体添加纹理。首先,我们要在地形上平铺一幅草地纹理。 由于地形网格很大,如果我们直接拉伸纹理,那么每个三角形只能得到很少的几个纹理元素...

    2015-10-04 00:05
    991
  • DirectX11 对纹理进行变换

    对纹理进行变换1. 纹理坐标变换有什么意义?如前所述,纹理坐标表示纹理平面上的2D点。因此,我们可以像使用其他坐标一样,对纹理坐标进行平移、旋转和缩放。下面是一些会对纹理进行变换的例子:1.沿着墙体拉...

    2015-10-03 23:25
    693
  • DirectX11 寻址模式

    寻址模式1. 寻址模式是什么?有哪几种?纹理必须与常量插值或线性插值一起使用以形成一个向量值函数T(u,v) = (r,g,b,a)。也就是,当给定一个纹理坐标(u,v)∈[0,1]2时,纹理函数T返...

    2015-10-03 23:12
    759
  • DirectX11 板条箱示例Demo

    板条箱Demo1. 指定贴图坐标GeometryGenerator::CreateBox产生箱子的贴图坐标,使得整个贴图图像都映射到箱子的每一面。为了简便起见,我们只显示前面、后面和顶面。注意这里我们...

    2015-10-03 22:45
    739

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部