我在webgl中创建了一个需要绘制圆锥的javascript文件。如果我选择一个低圆分割,它可以完美地工作,并显示所有的线条。但是在高点,从255高点,它就会破裂。似乎并非所有顶点都是链接的。我无法理解为什么不同。
case 'cone':{
var CONE_DIV = 255;
var angolo = 360 / CONE_DIV;
var altezza = 1.0;
// Coordinates
var vertices = [];
vertices.push(0.0); //v0t X
vertices.push(0.0); //v0t Y
vertices.push(0.0); //v0t Z
vertices.push(0.0); //v0 X
vertices.push(altezza); //v0 Y
vertices.push(0.0); //v0 Z
for (var i = 0; i < CONE_DIV; i++) {
var ai = i * 2 * Math.PI / CONE_DIV;
var si = Math.sin(ai);
var ci = Math.cos(ai);
vertices.push(ci); //coordinate X
vertices.push(0.0); //coordinate Y
vertices.push(si); //coordinate Z
}
// Colors
var colors = [];
for (var k = 0; k < CONE_DIV; k++) {
for (var t = 0; t < 2; t++) {
colors.push(a);
colors.push(b);
colors.push(c);
}
}
// Indices of the vertices
var indices = [];
//index high vertex
for (var j = 1; j <= CONE_DIV; j++) {
indices.push(1);
indices.push(j+1);
var l = j + 2; //last vertex base - return to first
if (l == CONE_DIV + 2) {
indices.push(2);
} else {
indices.push(l);
}
}
//index base
for (var j = 1; j <= CONE_DIV; j++) {
indices.push(0);
indices.push(j+1);
var l = j+2;
if (l == CONE_DIV + 2) { //last vertex base - return to first
indices.push(2);
} else {
indices.push(l);
}
}