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 關注
- 298 瀏覽
添加回答
舉報