- 介绍
- 一种二进制码,在绘制场景之前做一些事。操作在显卡中进行
- 对每一个顶点或者片元执行一次着色器,这个操作并行执行
- 浏览器底层只支持着色器
- three.js底层是着色器实现的,所以着色器能实现一些three.js无法实现的功能,并能提高three.js的性能
- 优势与性能
-
- 处理大量数据能力。顶点着色器为每一个顶点确定位置,片元着色器为每个片元确定颜色,数据量非常庞大
- 一个3d游戏中,一帧几十万个三角形。显示器分辨率1280x1024, 有1310720个像素,每一帧由片元着色器处理。
-
每个顶点位置与每个片元颜色几乎同时计算完成
-
- webgl着色器分类
- 无论在opengl, openes, dx中,都分为顶点着色器和片元着色器
- 顶点着色器
- 对顶点进行操作,如
- 改变顶点的位置和大小
- 对顶点进行操作,如
- 片元着色器
- 定义屏幕中各点的颜色
- 顶点之间的颜色也被一起处理了(插值)