OpenGL ES 2中着色器的说明

时间:2012-05-31 23:04:17

标签: android opengl-es opengl-es-2.0

我正在从以下网站学习OpenGL ES for Android: http://www.learnopengles.com/android-lesson-one-getting-started/

有人可以向我解释什么是着色器。我环顾网络,但解释非常混乱。与片段着色器相比,什么是顶点着色器?

谢谢!

3 个答案:

答案 0 :(得分:1)

来自Wikipedia

  

像素着色器(也称为片段着色器)可计算每个像素的颜色和其他属性。

     

像素着色器的范围从始终输出相同颜色,应用光照值,到凹凸贴图,阴影,镜面高光,半透明和其他现象。

     

它们可以改变像素的深度(用于Z缓冲),或者如果多个渲染目标处于活动状态,则输出多种颜色。

     

单独使用像素着色器无法产生非常复杂的效果,因为它只能在单个像素上运行,而不知道场景的几何形状。

鉴于:

  

对于给予图形处理器的每个顶点,顶点着色器运行一次。目的是将虚拟空间中每个顶点的3D位置转换为它在屏幕上显示的2D坐标(以及Z缓冲区的深度值)。

     

顶点着色器可以处理位置,颜色和纹理坐标等属性,但无法创建新顶点。

     

顶点着色器的输出转到管道中的下一个阶段,如果存在,则为几何着色器,否则为光栅化器。

基本上,像素(片段)着色器对你看到的像素进行操作。顶点着色器对代码中存在的顶点信息进行操作。顶点着色器在图形管道中较早使用。

答案 1 :(得分:0)

Shaders是在GPU上直接计算和执行的小程序:

主要着色器(按照GPU rendering pipeline计算的顺序):

  • 顶点着色器(计算顶点渲染)
  • 几何着色器(计算几何体上的渲染,如点,三角形......)
  • 像素/片段着色器(计算每个像素的渲染)

答案 2 :(得分:-1)

有一些非常好的书:iPhone 3d编程和专业WebGL编程。我推荐它们,因为它们都包含有关整个OpenGL ES 2和WebGL apis的有价值的信息。