着色语言(Shader Language),以及HLSL VS GLSL VS CG
2011-07-20 21:41
507 查看
摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”
In the last year I have never had to write a single HLSL/GLSL shader. Bottom line, I can’t think of any reason NOT to use CG.
shader language,称为着色语言,shade在英语是阴影、颜色深浅的意思,Wikipedia上对shader language的解释为“The job of a surface shading procedure is to choose a color for each pixel on a surface, incorporating any variations in color of the surface itself and the effects of lights that
shine on the surface(Marc Olano)”,即,shader language基于物体本身属性和光照条件,计算每个像素的颜色值。
实际上这种解释具有明显的时代局限性,在GPU编程发展的早期,shader language的提出目标是加强对图形处理算法的控制,所以对该语言的定义亦针对于此。但随着技术的进步,目前的shader language早已经用于通用计算研究。
shader language被定位为高级语言,如,GLSL的全称是“High Level Shading Language”,Cg语言的全称为“C for Graphic”,并且这两种shader language的语法设计非常类似于C语言。不过高级语言的一个重要特性是“独立于硬件”,在这一方面shader language暂时还做不到,shader language完全依赖于GPU构架,这一特征在现阶段是非常明显的!任意一种shader language都必须基于图形硬件,所以GPU编程技术的发展本质上还是图形硬件的发展。在shader
language存在之前,展示基于图形硬件的编程能力只能靠低级的汇编语言。
目前,shader language的发展方向是设计出在便捷性方面可以和C++\JAVA相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“尽可能的控制渲染过程”同时“利用图形硬件的并行性,提高算法的效率”。Shader language目前主要有3种语言:基于OpenGL的GLSL,基于Direct3D的HLSL,还有NVIDIA公司的Cg 语言。
本章的目的是阐述shader language的基本原理和运行流程,首先从硬件的角度对Programmable Vertex Processor(可编程顶点处理器,又称为顶点着色器)和 Programmable Fragment Processor(可编程片断处理器,又称为片断着色器)的作用进行阐述,然后在此基础上对vertex program和fragment program进行具体论述,最后对GLSL、HLSL和Cg进行比较。
http://bbs.gameres.com/showthread.asp?threadid=138918
上述网址有对不同着色语言的争论,看看还是可以增长很多见识的。不见得哪个对,关键是用好哪门语言。
In the last year I have never had to write a single HLSL/GLSL shader. Bottom line, I can’t think of any reason NOT to use CG.
shader language,称为着色语言,shade在英语是阴影、颜色深浅的意思,Wikipedia上对shader language的解释为“The job of a surface shading procedure is to choose a color for each pixel on a surface, incorporating any variations in color of the surface itself and the effects of lights that
shine on the surface(Marc Olano)”,即,shader language基于物体本身属性和光照条件,计算每个像素的颜色值。
实际上这种解释具有明显的时代局限性,在GPU编程发展的早期,shader language的提出目标是加强对图形处理算法的控制,所以对该语言的定义亦针对于此。但随着技术的进步,目前的shader language早已经用于通用计算研究。
shader language被定位为高级语言,如,GLSL的全称是“High Level Shading Language”,Cg语言的全称为“C for Graphic”,并且这两种shader language的语法设计非常类似于C语言。不过高级语言的一个重要特性是“独立于硬件”,在这一方面shader language暂时还做不到,shader language完全依赖于GPU构架,这一特征在现阶段是非常明显的!任意一种shader language都必须基于图形硬件,所以GPU编程技术的发展本质上还是图形硬件的发展。在shader
language存在之前,展示基于图形硬件的编程能力只能靠低级的汇编语言。
目前,shader language的发展方向是设计出在便捷性方面可以和C++\JAVA相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“尽可能的控制渲染过程”同时“利用图形硬件的并行性,提高算法的效率”。Shader language目前主要有3种语言:基于OpenGL的GLSL,基于Direct3D的HLSL,还有NVIDIA公司的Cg 语言。
本章的目的是阐述shader language的基本原理和运行流程,首先从硬件的角度对Programmable Vertex Processor(可编程顶点处理器,又称为顶点着色器)和 Programmable Fragment Processor(可编程片断处理器,又称为片断着色器)的作用进行阐述,然后在此基础上对vertex program和fragment program进行具体论述,最后对GLSL、HLSL和Cg进行比较。
http://bbs.gameres.com/showthread.asp?threadid=138918
上述网址有对不同着色语言的争论,看看还是可以增长很多见识的。不见得哪个对,关键是用好哪门语言。
相关文章推荐
- 着色语言(Shader Language) 以及HLSL VS GLSL VS CG
- 着色语言(Shader Language),以及HLSL VS GLSL VS CG
- 着色语言(Shader Language) 以及HLSL VS GLSL VS CG
- 着色语言(Shader Language),以及 HLSL GLSL CG
- shader 入门 《着色语言以及HLSL VS GLSL VS CG》
- 着色语言(Shader Language) HLSL/GLSL/CG
- 着色语言以及HLSL VS GLSL VS CG
- 【引用】 着色语言比较,以及HLSL VS GLSL VS CG
- HLSL GLSL CG着色语言比较
- HLSL GLSL CG着色语言比较
- shader语言 及 HLSL GLSL CG着色语言比较
- HLSL GLSL CG着色语言比较
- 着色语言(Shader Language)
- Unity Shader 学习笔记(2)Shader、ShaderLab、Cg/HLSL/GLSL
- GLSL vs HLSL vs Cg
- 着色语言(Shader Language)
- OpenGL12-shader(GLSL)着色语言3-(属性参数)(代码已上传)
- [置顶]OpenGL12-shader(GLSL)着色语言1(代码已上传)
- OpenGL12-shader(GLSL)着色语言2-(参数传递)(代码以上传)
- [转]在Ogre中如何关联textunit 与 cg/hlsl/glsl 语言中的 uniform sampler 关联