WebGL是一套API(Javascript接口),是基于OpenGL ES 2.0。
其中ES是 Embedded Systems————嵌入式系统
1.WebGL架构:
OpenGL ——> OpenGL ES ——> WebGL
WebGL入门基本概念
2.WebGL坐标系:
本地坐标系
世界坐标系
试图坐标系
剪裁坐标系(二维坐标系,原点为左上角)
3.WebGL术语:
透视摄像机(3D):
角度:45deg/50deg
width/height=4/6(6/9)
n=0.1(1) 近裁剪面
l=1000(>300) 远裁剪面
其中n与l之间的空间是视锥体,是可见区域。
正交摄像机(2D):
除了n,l,其他没有默认属性
基本图元:
点,线,线带,三角形面/带/扇 (WebGL只支持三角形面)
OpenGL支持(三角形面和矩形面)
网格模型:3D网格(Mesh)通常叫模型(model)。
灯光:
点光源:point,位置,光照范围,光照强度
平行光源:direction,位置,光照范围,光照强度,光照方向
聚光光源:spot
环境光源:Ambient
材质:网格外观属性,颜色,反射光类型等
纹理(全称:纹理映射 texture map):网格外观的位图
着色器: GLSL ES(着色器语言,用于描述三维坐标点和三维图形之间的关系)
顶点着色器:描述顶点特性(位置,颜色等),顶点指2D/3D空间中的点。
片元着色器:逐片元处理过程,片元简单理解为像素(图像的基本单位)。
GLSL语法&概念:部分强类型语言特性。
变量类型:float,int,bool,隐式转换/显式(强制)转换
structor & function(和C类似)
限定字:
const 常量
uniform 顶点和片元共享的数据,必须是全局变量,只读,除Array和Structor之外的其他数据类型均可。
attribute 顶点独有数据,必须是全局变量,变量数据类型为float,vec2-vec4,mat2-mat4,
varying 由顶点传送给片元的数据,必须是全局变量,需同时在顶点和片元中声明,且数据类型,变量名都必须相同;变量数据类型同attribute。
声明变量(常量)语法:
限定字 + 变量类型 + 变量名称(关键字不能用作变量名);
例:attribute vec4 vertexColor;