前言 在31章我们曾经实现过阴影映射,但是受到阴影贴图精度的限制,只能在场景中相当有限的范围内投射阴影.本章我们将以微软提供的例子和博客作为切入点,学习如何解决阴影中出现的Atrifacts: 边缘闪烁&抖动 阴影接缝 阴影缺失 perspective aliasing projective ali…
前言 最近在学粒子系统,看这之前的<<3D图形编程基础 基于DirectX 11 >>是基于Direct SDK的,而DXSDK微软已经很久没有更新过了并且我学的DX11是用Windows SDK来实现. 顺手安利一波:我最近在学DirectX11 with Windows SDK 教程 博客地址:https://www.cnblogs.com/X-Jun/p/9028764.html 所以下面的都是基于这个教程和上面提到的那本书来写的 推荐看到教程17章和书里第15章之后再来看这…
前言 上一章的静态天空盒已经可以满足绝大部分日常使用了.但对于自带反射/折射属性的物体来说,它需要依赖天空盒进行绘制,但静态天空盒并不会记录周边的物体,更不用说正在其周围运动的物体了.因此我们需要在运行期间构建动态天空盒,将周边物体绘制入当前的动态天空盒. 没了解过静态天空盒的读者请先移步到下面的链接: 章节回顾 22 立方体映射:静态天空盒的读取与实现 DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群: 727623616 可以一起探讨DX11…
前言 这一章我们主要学习由6个纹理所构成的立方体映射,以及用它来实现一个静态天空盒. 但是在此之前先要消除两个误区: 认为这一章的天空盒就是简单的在一个超大立方体的六个面内部贴上天空盒纹理: 认为天空盒的顶点都是固定的,距离起始点的位置特别远. 我提出这两个误区,是因为看到有些人的作品直接贴了六个立方体,就说自己用到了天空盒技术,但是当你真正学这一章的话会发现此天空盒非彼天空盒,而且该篇教程除了天空盒的技术实现外,还有其余的一些干货值得学习,建议认真研读. 在此之前还需要回顾一下里面有关纹理子资…
前言 阴影既暗示着光源相对于观察者的位置关系,也从侧面传达了场景中各物体之间的相对位置.本章将起底最基础的阴影映射算法,而像复杂如级联阴影映射这样的技术,也是在阴影映射的基础上发展而来的. 学习目标: 掌握基本的阴影映射算法 熟悉投影纹理贴图的工作原理 了解阴影图走样的问题并学习修正该问题的常用策略 DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报. 核心思想 阴影映射技…
前言 (更新于 2019/4/10) 从第一次接触DirectX 11到现在已经有将近两年的时间了.还记得前年暑假被要求学习DirectX 11,在用龙书的源码配置项目运行环境的时候都花了好几天的时间才搞定,还得忍受上千个无法避免的编译警告,不得不视警告为无物.而且里面的代码使用了Microsoft DirectX SDK(June 2010)开发包和里面的Effects 11框架,这些东西都已经是8年前的产物了. 然后在18年5月的时候,我先是在Github上翻到了微软对FX11(原Effec…
前言 在很早之前的纹理映射中,纹理存放的元素是像素的颜色,通过纹理坐标映射到目标像素以获取其颜色.但是我们的法向量依然只是定义在顶点上,对于三角形面内一点的法向量,也只是通过比较简单的插值法计算出相应的法向量值.这对平整的表面比较有用,但无法表现出内部粗糙的表面.在这一章,你将了解如何获取更高精度的法向量以描述一个粗糙平面. DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇…
前言 对于3D游戏来说,合理的光照可以让游戏显得更加真实.接下来会介绍光照的各种分量,以及常见的光照模型.除此之外,该项目还用到了多个常量缓冲区,因此还会提及HLSL的常量缓冲区打包规则以及如何设置多个常量缓冲区. DirectX11 With Windows SDK完整目录 Github项目源码 除此之外你还需要了解下面内容: 章节内容 深入理解HLSL常量缓冲区打包规则 欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报. 颜色向量 一个4D的颜色向量…
原文:DirectX11 With Windows SDK--07 添加光照与常用几何模型.光栅化状态 前言 对于3D游戏来说,合理的光照可以让游戏显得更加真实.接下来会介绍光照的各种分量,以及常见的光照模型.除此之外,该项目还用到了多个常量缓冲区,因此还会提及HLSL的常量缓冲区打包规则以及如何设置多个常量缓冲区. DirectX11 With Windows SDK完整目录 Github项目源码 除此之外你还需要了解下面内容: 章节内容 深入理解HLSL常量缓冲区打包规则 欢迎加入QQ群:…
前言 尽管在上一章的动态天空盒中用到了Render-To-Texture技术,但那是针对纹理立方体的特化实现.考虑到该技术的应用层面非常广,在这里抽出独立的一章专门来讲有关它的通用实现以及各种应用. 章节回顾 深入理解与使用2D纹理资源(重点阅读ScreenGrab库) 23 立方体映射:动态天空盒的实现 DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报. 再述Rende…