着色器分为两种:顶点着色器(Vertex shader)和片元(或片段)着色器(Fragment shader)。
用于描述顶点特征(比如位置,大小,颜色等)的程序,在这里就是一段字符串,为了书写和调试方便,常常这样书写:
<script type='x-shader/x-vertex' id='vs'>
// 定义参数
void main(){
// 设置顶点特征
}
</script>
用于配置逐片元处理过程中,如何计算光照等数据,和上面一样,也是一段字符串,和上面的区别在于,这是针对全部点的配置:
<script type='x-shader/x-fragment' id='fs'>
// 基本配置
// 定义参数
void main(){
// 设置顶点特征
}
</script>
render3D.shader($$('#vs')[0].innerHTML, $$('#fs')[0].innerHTML);
编辑好着色器字符串以后,运行上面的语句,表示启用着色器,然后才可以借助这两个着色器程序绘图(编译着色器字符串创建的着色器程序存储在gl.program中)。