0

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

有人可以向我解释什么是着色器。我在网上四处寻找,但解释非常混乱。与片段着色器相比,顶点着色器是什么?

谢谢!

4

3 回答 3

1

来自维基百科

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

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

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

单独的像素着色器不能产生非常复杂的效果,因为它只对单个像素进行操作,而不知道场景的几何形状。

然而:

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

顶点着色器可以操纵位置、颜色和纹理坐标等属性,但不能创建新顶点。

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

本质上,像素(片段)着色器对您所看到的(一个像素)进行操作。顶点着色器对代码中存在的顶点信息进行操作。顶点着色器在图形管线的早期使用。

于 2012-05-31T23:11:24.853 回答
0

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

主要着色器是(按照通过GPU 渲染管道计算的顺序):

  • 顶点着色器(在顶点上计算渲染)
  • 几何着色器(点、三角形等几何图形的计算渲染...)
  • 像素/片段着色器(计算每个像素的渲染)
于 2012-06-01T08:30:59.523 回答
-1

那里有一些非常好的书籍:iPhone 3d Programming 和 Professional WebGL Programming。我推荐它们,因为它们都包含有关整个 OpenGL ES 2 和 WebGL api 的有价值的信息。

于 2012-05-31T23:17:46.440 回答