我正在从以下网站学习OpenGL ES for Android: http://www.learnopengles.com/android-lesson-one-getting-started/
有人可以向我解释什么是着色器。我环顾网络,但解释非常混乱。与片段着色器相比,什么是顶点着色器?
谢谢!
答案 0 :(得分:1)
来自Wikipedia:
像素着色器(也称为片段着色器)可计算每个像素的颜色和其他属性。
像素着色器的范围从始终输出相同颜色,应用光照值,到凹凸贴图,阴影,镜面高光,半透明和其他现象。
它们可以改变像素的深度(用于Z缓冲),或者如果多个渲染目标处于活动状态,则输出多种颜色。
单独使用像素着色器无法产生非常复杂的效果,因为它只能在单个像素上运行,而不知道场景的几何形状。
鉴于:
对于给予图形处理器的每个顶点,顶点着色器运行一次。目的是将虚拟空间中每个顶点的3D位置转换为它在屏幕上显示的2D坐标(以及Z缓冲区的深度值)。
顶点着色器可以处理位置,颜色和纹理坐标等属性,但无法创建新顶点。
顶点着色器的输出转到管道中的下一个阶段,如果存在,则为几何着色器,否则为光栅化器。
基本上,像素(片段)着色器对你看到的像素进行操作。顶点着色器对代码中存在的顶点信息进行操作。顶点着色器在图形管道中较早使用。
答案 1 :(得分:0)
Shaders是在GPU上直接计算和执行的小程序:
主要着色器(按照GPU rendering pipeline计算的顺序):
答案 2 :(得分:-1)
有一些非常好的书:iPhone 3d编程和专业WebGL编程。我推荐它们,因为它们都包含有关整个OpenGL ES 2和WebGL apis的有价值的信息。