4.4 CG Profiles
2018-08-21 本文已影响26人
代码咖啡
文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至简书平台,以此作为对自己读书的勉励。笔者用粗体、斜体 标注了关键词句,望感兴趣的读者们一起学习共勉。猛戳这里查看更多!
4.4 CG Profiles
Profile 在英文中的意思是“侧面、轮廓”,文献[1]第三页写到:A Cg profile defines a subset of the full Cg language that is supported on a particular hardware platform or API
(CgUsersManual 21 页)。即一个 Cg profile 定义了一个“被特定图形硬件或 API 所支持的 Cg 语言子集”,从前面的分析我们可以知道,任意一种 shader language 都是基于可编程图形硬件的(寄存器、指令集等),这也就意味着:不同的图形硬件对应着不同的功能子集。Profile 按照功能可以划分为顶点 Profile 和片断 Profile,而顶点 profile 和片段 profile 又基于 OpenGL 和 DirectX 的 不同版本或扩展,划分为各种版本。从某种意义上而言,OpenGL 和 DirectX 的发展历程成就了 Cg 语言。
当前 Cg compiler 所支持的 profiles 有:
* OpenGL ARB vertex programs
Runtime profile: CG_PROFILE_ARBVP1
Compiler option: -profile arbvp1
* OpenGL ARB fragment programs
Runtime profile: CG_PROFILE_ARBFP1
Compiler option: -profile arbfp1
* OpenGL NV40 vertex programs
Runtime profile: CG_PROFILE_VP40
Compiler option: _profile vp40
* OpenGL NV40 fragment programs
Runtime profile: CG_PROFILE_FP40
Compiler option: _profile fp40
* OpenGL NV30 vertex programs
Runtime profile: CG_PROFILE_VP30
Compiler option: _profile vp30
* OpenGL NV30 fragment programs
Runtime profile: CG_PROFILE_FP30
Compiler option: _profile fp30
* OpenGL NV2X vertex programs
Runtime profile: CG_PROFILE_VP20
Compiler option: _profile vp20
* OpenGL NV2X fragment programs
Runtime profile: CG_PROFILE_FP20
Compiler option: _profile fp20
* DirectX 9 vertex shaders
Runtime profiles: CG_PROFILE_VS_2_X 、CG_PROFILE_VS_2_0
Compiler options:-profile vs_2_x 、 -profile vs_2_0
* DirectX 9 pixel shaders
Runtime profiles: CG_PROFILE_PS_2_X 、CG_PROFILE_PS_2_0
Compiler options: -profile ps_2_x 、-profile ps_2_0
* DirectX 8 vertex shaders
Runtime profiles: CG_PROFILE_VS_1_1
Compiler options:-profile vs_1_1
* DirectX 8 pixel shaders
Runtime profiles: CG_PROFILE_PS_1_3 、CG_PROFILE_PS_1_2 CG_PROFILE_PS_1_1
Compiler options: -profile ps_1_3 、-profile ps_1_2 、-profile ps_1_2 、-profile ps_1_1
附:截止到 2009 年 10 月,出现的 profile 已经不止上面这些种类了,尤其是现在 DirectX 已经出到了 11 的版本。上面的 profile 是可以在当前大多数机器上使用的。