DX12阅读笔记_第五章_02

本文详细介绍了DirectX12的渲染管道,包括32位和128位颜色格式,输入组装阶段,渲染管道的各个阶段如顶点着色器、视图空间、投影和齐次裁剪空间。重点讨论了顶点的处理,如顶点缓冲区、索引和顶点格式,以及顶点如何通过各种变换进入屏幕空间。此外,还提到了几何着色器和裁剪阶段的重要作用。
摘要由CSDN通过智能技术生成

5.3.2:128位颜色

它是常见的合并一个额外的颜色的格式,多出来的部分称为alpha。alpha组件通常用来表示颜色的不透明度,这在混合中很有用(第10章)。包含alpha分量,表示可以用4维颜色向量(r, g, b, a)表示一种颜色,其中0≤r, g, b, a≤1。这样就可以使用XMVECTOR类型在代码中表示一种颜色,就能利用到SIMD。对于componentwise multiplication,DirectX数学库提供了以下函数:
XMVECTOR XM_CALLCONV XMColorModulate( // Returns c1 ⊗ c2
FXMVECTOR C1,
FXMVECTOR C2);

5.3.3:32位颜色

通过映射将32位Color转换到[0,1]区间内,这样就可以转化成其它位数颜色。DirectXMath库定义了以下函数可以做转换:

XMVECTOR XM_CALLCONV PackedVector::XMLoadColor( const XMCOLOR* pSource); 

在这里插入图片描述
注意Alpha通道在最前面32位一个UINT。,XMCOLOR类使用ARGB布局。DirectX数学库还提供了一个将XMVECTOR颜色转换为XMCOLOR的函数:

void XM_CALLCONV PackedVector::XMStoreColor( 
XMCOLOR* pDestination, 
FXMVECTOR V); 

通常,128位颜色值用于需要高精度颜色操作的地方(例如,在像素着色器中);这样,我们的计算就有了很多的精度,所以算术错误不会累积太多。但是,最终的像素颜色通常以32位颜色值存储在后台缓冲区中。当前的物理显示设备无法利用分辨率更高的颜色。

5.4 渲染管道的概述

前面将3维幻视和颜色说完后,后面开始关于渲染管道的内容了。下图显示了构成渲染管道的各个阶段的示意图,以及GPU内存资源。
在这里插入图片描述
从资源内存池到阶段的箭头表示该阶段可以访问作为输入的资源;例如,像素着色器阶段可能需要从存储在内存中的纹理资源中读取数据来完成它的工作。从阶段到内存的箭头表示阶段写入GPU资源;例如,输出合并阶段将数据写入回缓冲和深度/模板缓冲等纹理。输出合并阶段的箭头是双向的(它读取和写入GPU资源)。

5.5 输入组成阶段

输入汇编器(IA)阶段从内存中读取几何数据(顶点和索引),并使用其组装几何图元(例如,三角形,直线)。(索引将在后面的小节中介绍,但要简要说明一下,它们定义了应如何将顶点放在一起以形成图元)。

5.5.1 顶点
数学上,三角形的顶点是两条边的交点;直线的顶点是端点;对于单点,这个点本身就是顶点。下图以图形的方式说明了顶点。
在这里插入图片描述
从上图看来,顶点只是几何图元中的一个特殊点。但是,在Direct3D中,顶点比这更通用。本质上,Direct3D中的顶点除了空间位置外还可以包含其他数据,这使我们能够执行更复杂的渲染效果。例如,在第8章中,我们将向顶点添加法线向量以实现光照,而在第9章中,我们将向顶点添加纹理坐标以实现纹理 Direct3D使我们可以灵活地定义自己的顶点格式(它允许我们定义顶点的组成部分)。
顶点以顶点缓冲区的特殊的Direct3D数据结构绑定到呈现管道。顶点缓冲区只是在连续内存中存储一列顶点。然而,它并没有说明这些顶点应该如何放在一起形成何种几何图元。我们告诉Direct3D如何通过指定原始拓扑从顶点数据形成几何图元:

Void	ID3D12GraphicsCommandList::IASetPrimitiveTopology(
D3D_PRIMITIVE_TOPOLOGY Topology); 

t
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值