Practical Rendering and Computation with Direct3D 11
+ -

3.4 顶点着色器-简介

2024-06-18 3 0

渲染管道中的第一个可编程着色器阶段是顶点着色器。如上所述,可编程着色器阶段执行用HTSL编写的自定义函数。在顶点着色器阶段的情况下,顶点着色器程序是为输入装配程序生成的顶点流中的每个顶点调用一次的函数。每个输入顶点都作为顶点着色器程序的参数接收,并且处理后的顶点作为函数的结果返回。每个顶点着色器调用都是在与其他调用完全隔离的情况下执行的,它们之间不可能进行通信。由于它对每个输入顶点执行一次,因此将存在输入顶点到顶点着色器阶段的输出顶点的一对一映射。顶点着色器在管道中的位置如图3.12所示。
151600575499

此外,顶点着色器的每次调用都不知道输入装配程序生成的基元流。它的唯一目的是处理顶点数据,并将任何更高级别的处理留给管道下游的阶段。在不了解基本体的情况下,顶点着色器以相同的方式对所有不同的拓扑类型进行操作。无论是处理作为点、线、三角形还是面片提交的几何体,顶点着色器都会对各个顶点进行相同的处理。来自顶点着色器的处理后的输出与稍后在流水线中由输入装配程序阶段生成的基元信息相组合。这简化了顶点着色器阶段的工作,允许它执行完全相同的操作,而不管基本体类型如何。

顶点着色器位于输入装配程序阶段和外壳着色器阶段之间。这意味着它将在几何体数据插入管道之后以及执行任何细分之前立即处理几何体数据。通常在顶点着色器中执行的一些操作示例是将变换矩阵应用于输入几何体、执行基于骨骼的动画变换(也称为顶点蒙皮)以及执行逐顶点照明计算。在本节的剩余部分中,我们将更准确地研究顶点着色器阶段通常用于什么,以及它可以使用什么工具。我们首先考虑顶点着色器接收什么数据作为输入,然后考虑它执行的处理类型,最后考虑它产生什么数据作为输出。

0 篇笔记 写笔记

顶点着色器VertexShader
什么是顶点着色器顶点着色器是一组指令代码,这组指令代码在顶点被渲染时执行。同一时间内,只能激活一个顶点着色器。每个源顶点着色器最多拥有128条指令(DirextX8.1),而在DirectX9,则可以达到256条。为什么大家要使用顶点着色器顶点着色器可以提高渲染场景速度(直接由显卡自动调用......
3.4 顶点着色器-简介
渲染管道中的第一个可编程着色器阶段是顶点着色器。如上所述,可编程着色器阶段执行用HTSL编写的自定义函数。在顶点着色器阶段的情况下,顶点着色器程序是为输入装配程序生成的顶点流中的每个顶点调用一次的函数。每个输入顶点都作为顶点着色器程序的参数接收,并且处理后的顶点作为函数的结果返回。每个顶点着色器调用......
3.4.1顶点着色器管道输入
由于顶点着色器直接位于管道中的输入装配程序之后,因此它自然会从那里接收输入。配置输入装配程序的输入布局所做的所有工作都旨在使创建的顶点与顶点着色器阶段的当前程序所期望的格式相匹配。这就是为什么在创建ID3DllInputl_ayout对象时需要将编译的着色器字节代码作为输入,以确保组装的顶点与执行顶......
3.4.2顶点着色器状态配置
作为可编程着色器阶段,顶点着色器实现通用着色器核心功能。这意味着它提供了一组标准的资源接口方法,允许应用程序向着色器程序提供对所需资源的访问。与所有管道操作一样,所有可以更改顶点着色器阶段状态的方法都属于ID3DllDeviceContext接口。我们将查看这些可用资源中的每一个,并了解它们在顶点着......
3.4.3顶点着色器阶段处理
我们现在知道顶点着色器可以从输入装配程序接收哪些数据作为输入数据,以及哪些资源可以被主机应用程序绑定。顶点绘冲区常量缓冲区着色器资源视图我们还知道,顶点着色器程序提供了对单个顶点的自定义处理,而与调用管道的拓扑无关。那么,在顶点着色器程序中执行哪些类型的操作呢?某些类型的操作更适合这个阶段的组......
3.4.4顶点着色器管道输出
在决定在输出顶点结构中包括哪些信息时,需要考虑如何使用管道的其余部分。图3.18显示了渲染管道的框图。顶点着色器阶段之后是一组曲面细分阶段(外壳着色器、曲面细分器和域着色器阶段),然后是几何体着色器,然后是光栅化器阶段。根据顶点着色器和光栅化器阶段之间这些阶段中的哪一个处于活动状态,必须满足不同的......
作者信息
站长漫谈
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!