-1
我試圖畫一個圓圈,而不是一個完整的圓圈(360度),我得到了幾乎完整的圓圈和一個缺失的'切片'。
我錯過了什麼?丟失一圈圓片webgl
下面是代碼:
//init:
starsList[i].circlePositionBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, starsList[i].circlePositionBuffer);
vertices = [1,0,1];
for (j = 3; j < 360; j+=3) {
vertices[j] = starsList[i].factor * starsList[i].radius * Math.cos(j/180.0 * Math.PI);
vertices[j+1] = 0;
vertices[j+2] = starsList[i].factor * starsList[i].radius * Math.sin(j/180.0 * Math.PI);
}
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
starsList[i].circlePositionBuffer.itemSize = 3;
starsList[i].circlePositionBuffer.numItems = 120;
//draw
mat4.identity(mvMatrix);
mat4.translate(mvMatrix, [x, y, z]);
gl.bindBuffer(gl.ARRAY_BUFFER, starsList[i].circlePositionBuffer);
gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, starsList[i].circlePositionBuffer.itemSize, gl.FLOAT, false, 0, 0);
setMatrixUniforms();
gl.drawArrays(gl.LINE_LOOP, 0, starsList[i].circlePositionBuffer.numItems);
更新 - 解決
vertices = [1,0,1];
應該是:
vertices = [starsList[i].factor * starsList[i].radius,0,0];
其仍然沒有工作.. – arii
嘗試都建議 – arii
你能提供一個MCVE好嗎?會更容易檢查出什麼問題 – Zouch