DirectX11--HLSL语法入门(5)
时间:2022-12-14 22:18 来源:网络整理 作者:采集插件 点击:次
n是一个可选的整数,从0开始。好比POSITION0, TEXCOORD1等等。 像素着色器语义 输入 描述 类型COLOR[n] 漫反射/镜面反射颜色 float4 TEXCOORD[n] 纹理坐标 float4 Output 仅描述输出 Type DEPTH[n] 深度值 float 系统值语义 全部的系统值都包含前缀SV_。这些系统值将用于某些着色器的特定用途(并未所有列出) 系统值 描述 类型SV_Depth 深度缓冲区数据,能够被任何着色器写入/读取 float SV_InstanceID 每一个实例都会在运行期间自动生成一个ID。在任何着色器阶段都能读取 uint SV_IsFrontFace 指定该三角形是否为正面。能够被几何着色器写入,以及能够被像素着色器读取 bool SV_Position 若被声明用于输入到着色器,它描述的是像素位置,在全部着色器中均可用,可能会有0.5的偏移值 float4 SV_PrimitiveID 每一个原始拓扑都会在运行期间自动生成一个ID。可用在几何/像素着色器中写入,也能够在像素/几何/外壳/域着色器中读取 uint SV_StencilRef 表明当前像素着色器的模板引用值。只能够被像素着色器写入 uint SV_VertexID 每一个实例都会在运行期间自动生成一个ID。仅容许做为顶点着色器的输入 uint 通用着色器的核心 全部的着色器阶段使用通用着色器核心来实现相同的基础功能。此外,顶点着色阶段、几何着色阶段和像素着色阶段则提供了独特的功能,例如几何着色阶段能够生成新的图元或删减图元,像素着色阶段能够决定当前像素是否被抛弃等。下图展现了数据是怎么流向一个着色阶段,以及通用着色器核心与着色器内存资源之间的关系: Input Data:顶点着色器从输入装配阶段获取数据;几何着色器则从上一个着色阶段的输出获取等等。经过给形参引入可使用的系统值能够提供额外的输入 Output Data:着色器生成输出的结果真后传递给管线的下一个阶段。有些输出会被通用着色器核心解释成特定用途(如顶点位置、渲染目标对应位置的值),另一些输出则由应用程序来解释。 Shader Code:着色器代码能够从内存读取,而后用于执行代码中所指望的内容。 Samplers:采样器决定了如何对纹理进行采样和滤波。 Textures:纹理可使用采样器进行采样,也能够基于索引的方式按像素读取。 Buffers:缓冲区可使用读取相关的内置函数,在内存中按元素直接读取。 (责任编辑:admin) |