我需要使用OpenGL 3.0在OpenTK中构建圆锥体和/或圆柱体,因此我需要使用PrimitiveType。
生成所有数据和索引后,需要使用
加载它们List()数据
List()索引
我需要使用OpenGL 3.0在OpenTK中构建圆锥体和/或圆柱体,因此我需要使用PrimitiveType。
生成所有数据和索引后,需要使用
加载它们List()数据
List()索引
int segments = 26; //26
int radius = 40;
int height = 50;
double X = 0;
double Y = 0;
double Z = 0;
var data = new List<float>();
var indices = new List<uint>();
for (double y = 0; y < 2; y++)
{
for (double x = 0; x < height; x++)
{
double theta = (x / (segments - 1)) * 3 * Math.PI;
X = (float)radius * Math.Cos(theta);
Y = (float)height * y;
Z = (float)radius * Math.Sin(theta);
data.Add(DataConverter.ToFloat(X));
data.Add(DataConverter.ToFloat(Y));
data.Add(DataConverter.ToFloat(Z));
}
}
for (int x = 0; x < segmente ; x++)
{
indices.Add((uint)x);
indices.Add((uint)(x + segments));
indices.Add((uint)(X + segments + 1));
indices.Add((uint)(x + segments + 1));
indices.Add((uint)(x + segments));
indices.Add((uint)x);
object = Matrix4.CreateTranslation(position);
}
这将生成一个圆柱,其内部像一个con,但是我不知道为什么,如果我放更多的线段,它将变成圆锥体而不是圆柱体。
在这里找到了这个公式,我将其调整为适用于新的OpenGL 3.0版本。