本文是 Piasy 原创,发表于 https://blog.piasy.com,请阅读原文支持原创 https://blog.piasy.com/2016/06/07/Open-gl-es-android-2-part-1/
1. 基本概念
OpenGL 绘制的都是图形,包括形状和填充,基本形状是三角形。
每个形状都有顶点,Vertix,顶点的序列就是一个图形。
图形有所谓的正反面,如果我们看向一个图形,它的顶点序列是逆时针方向,那我们看到的就是正面。
Shader,着色器,用来描述如何绘制(渲染),GLSL 是 OpenGL 的编程语言,全称就叫 OpenGL Shader Language。OpenGL 渲染需要两种 shader,vertex 和 fragment。
Vertex shader,控制顶点的绘制,指定坐标、变换等。
Fragment shader,控制形状内区域渲染,纹理填充内容。
2. 坐标系
弄清楚坐标系很重要,不然会找不着东南西北。
2.1. 安卓手机坐标系
二维坐标系,原点在左上角,x 轴向右,y 轴向下,x y 取值范围为屏幕分辨率:
2.2. OpenGL 坐标系
三维坐标系,原点在中间,x 轴向右,y 轴向上,z 轴朝向我们,x y z 取值范围都是 [-1, 1]:
2.3. OpenGL 纹理(texture)坐标系
二维坐标系,原点在左下角,s(x)轴向右,t(y)轴向上,x y 取值范围都是 [0, 1]: