draw 类型
三角形绘制规则
如果当前顶点是偶数:
组成三角形的顶点排列顺序:T = [n-2 n-1 n].
第一个三角形,顶点v2序号是2,是偶数,则顶点排列顺序是v0,v1,v2。
如果当前顶点是奇数:
组成三角形的顶点排列顺序:T = [n-1 n-2 n].
第二个三角形,顶点v3序号是3,是奇数,则顶点排列顺序是v2,v1,v3
为什么是这样子的呢?默认情况下,投影到屏幕后顶点顺序为逆时针的面为正面。
纹理坐标
float vertices[] = {
// ---- 位置 ---- ---- 颜色 ------------ -- 纹理坐标
-0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, // 右上
0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // 右下
-0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // 左下
-0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f // 左上
};
例子:
float vertices[] = {
//-- 位置 ---- -- 纹理坐标--
400, 400, 0.0f, 1.0f, 1.0f, // 右上
400, 0, 0.0f, 1.0f, 0.0f, // 右下
0, 0, 0.0f, 0.0f, 0.0f, // 左下
0 , 400, 0.0f, 0.0f, 1.0f // 左上
};
unsigned int indices[] = { // 注意索引从0开始!
0, 1, 3, // 第一个三角形
1, 2 ,3, // 第二个三角形
};