-
入门级的官方参考文档 - Matplotlib中的高级着色器语
资源介绍
第十六章 高级着色器语言入门
(((
(
IntroductionIntroductionIntroduction
Introduction
tototo
to
thethethe
the
High-LevelHigh-LevelHigh-Level
High-Level
ShadingShadingShading
Shading
LanguageLanguageLanguage
Language
)))
)
在这一章里我们描述高级着色器语言(High-Level Shading Language ,简称 HLSL),在下三章里我们
用它去编写顶点和像素着色器。简单的说,在我们写的程序里顶点和像素是很小的对象,它们由 GPU
来执行,是固定功能管线的一部分。用我们自己写的着色器程序替换一部分固定功能管线,在绘制效
果上我们获得很大的灵活性。我们不再局限于预定义的"固定"操作。
为了编写着色器程序,我们需要一种语言。 在 DirectX 8.x,中,着色器是用低级着色器汇编语言
编写的。幸运的是,我们不必再用汇编语言来写着色器了,DirectX 9 支持一种高级着色器语言来 xyna
写。用HLSL 在汇编语言来写着色器程序与使用高级语言有同样的优势,像C++,它超越了汇编语言 ,
即:
增加生产力—用高级语言比用低级语言写程序更快、更容易。 我们可以花费更多的时间关注于
算法而不是代码。
增加可读性—用高级语言写的程序更易读,这意味着用高级语言编程更易于调试和维护。
大多数情况下,编译器产生的汇编代码比手写有效率。
使用 HLSL 编译器,我们可以编译我们的代码到任何可用 shader 版本,使用汇编语言我们将不
得不为每个需要的版本移植代码。
HLSL 同 C 和 C++语法很类似, 所以缩短了学习曲线。
最后,如果你的显卡不支持顶点和像素着色器的话,为了执行着色器的例子程序你将需要转换 REF
设备。使用 REF 设备意味着着色器例子运行的会很慢,但它至少能显示结果,让我们去检查是否代
码可以被执行。
提示:顶点 shaders 可以用软件来模拟 ―― D3DCREATE_SOFTWARE_VERTEX-PROCESSING 。16.1
目标目标目标
目标
学习如何定、编译一个 HLSL 着色器程序。
学习如何将程序中的数据传送到着色器程序。
熟悉语法、类型,和 HLSL 的内建函数。