啊这, OpenGL 这么不火的么
加上 Go 在中国是不是属于双重小众属性
小结
- 目前所写的程序已经搭建出一个基本的 OpenGL在 Go上的运行框架了
- 之后可以修改 shader和 points什么的,继续学习 OpenGL
- 原教程大概会继续比着写,不过会是本人 Go-OpenGL系列的一个 fork
- 参考资料:
- OpenGL API Documentation: http://docs.gl/
- learnopengl-cn: https://learnopengl-cn.github.io/
画正方形
首先修改窗口为正方形
const (
width = 800
height = 800
)
数据点更改为正方形四个角
var triangle = []float32 {
0.5, 0.5, 0, // (x, y, z)
0.5, -0.5, 0,
-0.5, -0.5, 0,
-0.5, 0.5, 0,
}
DrawArrays函数更改绘制方式参数
gl.DrawArrays(gl.TRIANGLE_FAN, 0, int32(len(triangle) / 3))
直接 Go
绘制方式原理
DrawArrays 函数中第一个参数即是控制绘制方式的,主要有:
Go 中 以下常量是 gl.*的形式,对应 C++中的 GL_*
- POINT
- LINES
-
- 两两画线
- LINE_STRIP
-
- 不断画线
- LINE_LOOP
-
- 成环
- TRIANGLES
- TRIANGLE_STRIP
-
- 使用 p1, p2, p3 画三角
- TRIANGLE_FAN
-
- 使用 p0, p2, p3 画三角
-
- OpenGL红宝书上有详细的示意图
此处画正方形实际是两个三角形(片元)相并
To be continued…