shader language
1.基于OpenGL的OpenGL Shading Language ,简称GLSL。
2.基于DirectX的High Level Shading Language,简称HLSL。
3.基于NVIDIA公司的C forGraphic简称cg语言。
一、OpenGL
① 定义了跨编程语言、跨平台的编程接口规格的专业的图形程序接口
②用于三维图像,是一个功能强大,调用方便的底层图形库
③行业领域中最为广泛接纳的2D/3D图形API
④与硬件无关的软件接口
二、DirectX
①多媒体编程接口由C++编程语言实现,遵循COM。被广泛适用于Microsoft Windows、 Microsoft XBOX、 MicrosoftXBOX 360和 Microsoft XBOX ONE电子游戏开发,并却只支持这些平台。
②基于 Microsoft的计算机成为运行和显示具有丰富多媒体元素(全色图形、视频、3D动画和丰富的音频)的应用程序的理想平台(应用程序可以通过使用DirectX来访问新功能)。
③加强3D图形声音效果,提供一个共同的硬件驱动标准,让游戏开发者不必每个硬件写不同的驱动程序,降低用户安装及设置硬件的复杂性。
三、Cg
GLSL和HLSL分别基于OpenGL和Direct3D的接口,两者不能混用.
GLSL继承了OpenGL的良好的移植性,一度在unix等操作系统上独领风骚
但GLSL语法体系自成一家
微软的HLSL移植性较差,在 Windows一家独大,很大程度上限制了HLSL的推广和发展(HLSL用于DX游戏领域沉入人心)
①Cg语言(C for Graphic)是为GPU程序设计的高级着色器语言,Cg保留C语言大部分语义,让开发者从硬件细节中解脱出来
②代码易重用性,可读性提高,编译器代码优化
一个可以被OpenGL和Direct3D广泛支持的图形处理器编程语言
④Cg语言和OpenGL、DirectX并不是同一层次的语言, Cg语言是两者的上层。
Cg程序(一种脚本语言)是运行在 OpenGL(数组)和DirectX(数组)标准顶点和像素着色的基础上的
⑤Cg由NVIDIA公司和微软公司相互协作在标准硬件光照语言的语法和语义上达成一致开发。(微软的HLSL和Cg其实是同一种——语言语法语义一样,相似度高。
四、学习哪一种语言呢?
    1.安卓和苹果的移动开发——GLSL
                      ↓(哪天想↓)
    2.发布Windows和Xbox——修改成HLSL和Cg语言
                      ↓
    3.两个平台都支持     ————Cg语言
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐