DirectX12 3D 游戏开发与实战第八章内容(下) 8.9.材质的实现 下面是材质结构体的部分代码: // 简单的结构体来表示我们所演示的材料 struct Material { // 材质唯一对应的名称(便于查找) std::string Name; // 本材质的常量缓冲区索引 int MatCBIndex = -1; // 漫反射在SRV堆中的索引(在第九章的纹理贴图中会使用) int DiffuseSrvHeapIndex = -1; int NormalSrvHeapIndex…
8.光照 学习目标 对光照和材质的交互有基本的了解 了解局部光照和全局光照的区别 探究如何用数学来描述位于物体表面上某一点的"朝向",以此来确定入射光照射到表面的角度 学习如何正确的变换法向量 能够区分环境光.漫反射光以及镜面光 学习如何实现平行光.点光以及聚光灯 理解如何通过控制距离函数的衰减参数来实现不同的光照强度 8.1.光照和材质的交互 开启光照之后,我们不需要指定顶点的颜色,而是指定材质和光照,然后运用光照方程基于两者的交互来计算出顶点的颜色.我们可以把材质看作是确定光照和物…
仅供个人学习使用,请勿转载. 9.纹理贴图 学习目标: 学习如何将局部纹理映射到网格三角形上 探究如何创建和启用纹理 学会如何通过纹理过滤来创建更加平滑的图像 探索如何使用寻址模式来进行多次纹理贴图 探索如何将多个纹理进行组合,从而创建出新的纹理和特效 学习如何通过纹理动画来创建一些基本效果 9.1.纹理与资源的回顾 我们在第四章的时候就开始使用纹理了.特别是深度缓冲区和后台缓冲区,他们都是通过ID3D12Resource接口来表示的.为了便于参考,我们将在这一节回顾一些和纹理相关的知识. 2D…
DirectX12 3D 第一章内容 学习目标 1.学习向量在几何学和数学中的表示方法 2.了解向量的运算定义以及它在几何学中的应用 3.熟悉DirectXMath库中与向量有关的类和方法 1.1 向量 向量是一种兼具大小和方向的量,具有这两种的量都称为向量值物理量,在几何学中我们一般用一条有向线段来表示一个向量 1.1.1 向量与坐标系 前提:计算机无法直接处理以几何方法表示的向量,所以需要寻求一种用数学方法来表示向量 在这里我们会引入一种3D空间坐标系,通过平移操作使向量的尾部位于原点,然后…
矩阵代数 学习目标 理解矩阵及其相关运算的定义 探究为何能把向量和矩阵的乘法视为一种线性组合 学习单位矩阵.转置矩阵.行列式以及矩阵的逆等概念 逐步熟悉DirectXMath库中提供的关于矩阵计算的类与函数的子集 2.1矩阵的定义 一个规模为m x n的矩阵,是由m行n列实数构成的矩阵阵列,行数和列数的乘积表示了矩阵的维度,矩阵中的数字则称为元素或元.理解矩阵相等.加法运算,标量乘法和减法运算. 2.2矩阵乘法 如果A是一个m x n矩阵,B是一个n x p矩阵,那么AB的乘积是一个规模为m x…
仅供个人学习使用,请勿转载.谢谢! 10.混合 本章将研究混合技术,混合技术可以让我们将当前需要光栅化的像素(也称为源像素)和之前已经光栅化到后台缓冲区的像素(也称为目标像素)进行融合.因此,该技术可以用来渲染如水和玻璃之类的半透物体. 学习目标 理解混合技术的工作原理,并且在Direct3D中运用该技术 学习Direct3D所支持的不同混合模式 探究如何使用alpha分量来调节图元的透明度 学会仅通过HLSL中的clip函数来组织向后台缓冲区中绘制像素 10.6.alpha通道 源alpha分…
仅供个人学习使用,请勿转载.谢谢! 10.混合 本章将研究混合技术,混合技术可以让我们将当前需要光栅化的像素(也称为源像素)和之前已经光栅化到后台缓冲区的像素(也称为目标像素)进行融合.因此,该技术可以用来渲染如水和玻璃之类的半透物体. 学习目标 理解混合技术的工作原理,并且在Direct3D中运用该技术 学习Direct3D所支持的不同混合模式 探究如何使用alpha分量来调节图元的透明度 学会仅通过调用HLSL中的clip函数来阻止向后台缓冲区中绘制像素 10.1.混合方程 设C为像素着色器…
仅供个人学习使用,请勿转载.谢谢! 9.纹理贴图 学习目标 学习如何将局部纹理映射到网格三角形中 探究如何创建和启用纹理 学会如何通过纹理过滤来创建更加平滑的图像 探索如何使用寻址模式来进行多次贴图 探究如何将多个纹理进行组合,从而创建出新的纹理和特效 学习如何通过纹理动画来创建一些基本效果 9.5.过滤器 9.5.1.放大 假设玩家慢慢接近了场景中的一堵墙壁,则墙壁将会被逐渐放大并占据整个屏幕,假设显示器的分辨率为1024x1024,而墙壁纹理的分辨率为256x256.那么这将会产生纹理放大(…
渲染流水线 学习目标: 了解用于在2D图像中表现出场景立体感和空间深度感等真实效果的关键因素 探索如何用Direct3D表示3D对象 学习如何建立虚拟摄像机 理解渲染流水线,根据给定的3D场景的几何描述,生成其2D图像的流程 5.1 3D视觉即错觉? 1.从视觉观察效果来看,平行线最终会相交于一点(消失点,又称为灭点),因此我们可以得出结论:随着深度(z方向)的增加,物体会显得越来越小.(dx是左手坐标系,OpenGL是右手坐标系). 2.我们都知道物体重叠,这是一个重要的概念,即不透明的物体可…
Direct3D的初始化(上) 学习目标 了解Direct3D在3D编程中相对于硬件所扮演的角色 理解组件对象模型COM在Direct3D中的作用 掌握基础的图像学概念,例如2D图像的存储方式,页面翻转,深度缓冲,多重采样以及CPU和GPU之间的交互 学习使用性能计数器函数,依次读取高精度计时器的数值 了解Direct3D的初始化过程 熟悉本书应用程序框架的整体结构,在后续的演示程序中可以经常看到应用程序框架的整体结构 4.1预备知识 要学习Direct3D的初始化流程,我们需要了解一些基本的图…