1 回答

TA贡献1934条经验 获得超2个赞
您可能正在使用64位操作系统。在64位操作系统上,数据类型uint的大小为64位。请参阅“ Go语言”数据类型或“ GO基本类型”。
指定的矩形ar的坐标是这样的:
1: -0.5, 0.5 2: 0.5, 0.5
x-----------x
| |
| |
| |
| |
x-----------x
0: -0.5, -0.5 3: 0.5, -0.5
indexs数组是64位整数值的数组:
var rectangle = []uint{
0, 1, 2,
2, 3, 0,
}
但是,当几何图形为draw(gl.UNSIGNED_INT)时,它将被视为32位整数的数组:
gl.DrawElements(gl.TRIANGLES, 6, gl.UNSIGNED_INT, gl.PtrOffset(0))
这导致数组的每个索引被拆分为2个索引,每个索引32位,其中第一个值为数组的索引,第二个为0:
[0, 0, 1, 0, 2, 0, 2, 0, 3, 0 0, 0]
因此,前2个三角形(前6个索引)是
0 - 0 - 1
0 - 2 - 0
在图像中,您可以看到这2个三角形,它们被缩小为2条线,因为每个三角形的2个点是相等的。
使用数据类型uint32解决问题:
var rectangle = []uint32{
0, 1, 2,
2, 3, 0,
}
- 1 回答
- 0 关注
- 275 浏览
添加回答
举报