shader opengl
- 作者: 西班牙吹牛士
- 来源: 51数据库
- 2020-09-21
DirectX(Direct
eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft
XBOX 360和Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。最新版本为DirectX 12,创建在最新的Windows
8.1上。
OpenGL(全写Open
Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性目前,2.0版本开始加入了很多类似于DirectX中可编程单元的设计.
Shader Model(在3D图形领域常被简称SM)就是“优化渲染引擎模式”。Shader(着色器)是DirectX中一段能够针对3D对象进行操作、并被GPU所执行的程序。早在微软发布DirectX 8时,Shader
Model的概念就出现在其中了,并根据操作对象的不同被分为对顶点进行各种操作的Vertex Shader(顶点渲染引擎)和对像素进行各种操作的Pixel
Shader(像素渲染引擎)。
到了Shader Model 4.0,在VS和PS之间引入了一个新的可编程图形层--几何渲染器(Geometry
Shader)。原来的Vertex Shader和Pixel Shader只是对逐个顶点或像素进行处理,而新的Geometry
Shader可以批量进行几何处理。然而性能受到诟病,为了兼顾性能,在DirectX11(SM
5.0)开始引入了Tessellation来取代GS的部分功能。
说白点,三者的关系是,Shader Model是DirectX其中一个技术协议程序,而DirectX和OpenGL则是多媒体编程接口的竞争对手。
GL DX都是API。是一个接口,是专门针对显卡的,利用显卡的硬件资源去绘图。
跟Windows 的GDI不同,GDI是用CPU绘制的,然后再传递绘制好的图像显示。CPU通常处理的是图像,GPU处理的是矢量图形。
准确的说不是对显卡的编程,他们是API,就像win32 API一样。编译出来的都是CPU指令,只是告诉CPU怎么控制显卡绘制。但是shader是对GPU的编程,就是控制顶点,跟像素怎么着色的。编译后是由GPU执行的指令。
shader实际上是显卡GPU能读懂机器指令。但是编译链接,生成shader有多种语言。CG,GLSL(opengl API中带的编译器),HLSL(dx带的编译器)。注意GLSL HLSL的编译器都不是应用程序,是API内置的编译方式。
eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft
XBOX 360和Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。最新版本为DirectX 12,创建在最新的Windows
8.1上。
OpenGL(全写Open
Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性目前,2.0版本开始加入了很多类似于DirectX中可编程单元的设计.
Shader Model(在3D图形领域常被简称SM)就是“优化渲染引擎模式”。Shader(着色器)是DirectX中一段能够针对3D对象进行操作、并被GPU所执行的程序。早在微软发布DirectX 8时,Shader
Model的概念就出现在其中了,并根据操作对象的不同被分为对顶点进行各种操作的Vertex Shader(顶点渲染引擎)和对像素进行各种操作的Pixel
Shader(像素渲染引擎)。
到了Shader Model 4.0,在VS和PS之间引入了一个新的可编程图形层--几何渲染器(Geometry
Shader)。原来的Vertex Shader和Pixel Shader只是对逐个顶点或像素进行处理,而新的Geometry
Shader可以批量进行几何处理。然而性能受到诟病,为了兼顾性能,在DirectX11(SM
5.0)开始引入了Tessellation来取代GS的部分功能。
说白点,三者的关系是,Shader Model是DirectX其中一个技术协议程序,而DirectX和OpenGL则是多媒体编程接口的竞争对手。
GL DX都是API。是一个接口,是专门针对显卡的,利用显卡的硬件资源去绘图。
跟Windows 的GDI不同,GDI是用CPU绘制的,然后再传递绘制好的图像显示。CPU通常处理的是图像,GPU处理的是矢量图形。
准确的说不是对显卡的编程,他们是API,就像win32 API一样。编译出来的都是CPU指令,只是告诉CPU怎么控制显卡绘制。但是shader是对GPU的编程,就是控制顶点,跟像素怎么着色的。编译后是由GPU执行的指令。
shader实际上是显卡GPU能读懂机器指令。但是编译链接,生成shader有多种语言。CG,GLSL(opengl API中带的编译器),HLSL(dx带的编译器)。注意GLSL HLSL的编译器都不是应用程序,是API内置的编译方式。
推荐阅读
