-
顶点着色器示例-python实现pdf转换成word/txt纯文本文件下载
资源介绍
6.4 顶点着色器示例
下面是一个顶点着色器的示例,它的代码非常简单:
cbuffer cbPerObject
{
float4x4 gWVP;
};
void VS(float3 iPosL : POSITION,
float4 iColor : COLOR,
out float4 oPosH : SV_POSITION,
out float4 oColor : COLOR)
{
// 转换到齐次裁剪空间
oPosH = mul(float4(iPosL, 1.0f), gWVP);
// 把顶点颜色直接传到像素着色器
oColor = iColor;
}
着色器使用一种称为高级着色语言(High-Level Shading Language,简称 HLSL)的脚本
语言来编写,它的语法与 C++相似,很容易就能学会。附录 B 提供了一些有关 HLSL 的简要
概述。在本书中,我们将采用一种基于示例的方式讲解 HLSL 及着色器编程。也就是,根据
贯穿本书的每个演示程序所涉及的技术讲解相关的 HLSL 概念。着色器通常保存在一种称为
effect 文件(.fx)的纯文本文件中。我们会在本章随后的小节中讨论 effect 文件,而现在我
们主要讨论顶点着色器。
这里,顶点着色器是一个称为 VS 的函数。注意,你可以为顶点着色器指定任何有效的
函数名。该顶点着色器包含 4 个参数;前两个是输入参数,后两个是输出参数(由 out 关
键字表示)。HLSL 没有类似于 C++的引用和指针,所以当一个函数要返回多个值时,我们必
须使用结构体或输出参数。
前两个输入参数对应于我们在顶点结构体中定义的数据成员。参数语义“:POSITION”
和“:COLOR”用于将顶点结构体的数据成员映射为顶点着色器的输入参数,如图 6.4 所
示。
144 / 351