Marching Cubes — создание дырок в сетке. Невозможно загрузить с Minio с помощью Java.JAVA

Программисты JAVA общаются здесь
Anonymous
Marching Cubes — создание дырок в сетке. Невозможно загрузить с Minio с помощью Java.

Сообщение Anonymous »

Я работаю над реализацией Marching Cubes в Unity. Мой код основан на коде Пола Бурка с множеством модификаций. Я проверяю, является ли блок в позиции нулевым, и если да, то на него будет помещена отладочная текстура.

Код: Выделить всё

    if (mesh == null)
mesh = new Mesh ();
mesh.Clear ();
mesh.vertices = vertices.ToArray ();
mesh.triangles = triangles.ToArray ();
mesh.uv = uvs.ToArray ();
mesh.RecalculateNormals ();
return mesh;
}

bool IsBitSet (int b, int pos)
{
return ((b & pos) == pos);
}

Vector3 LinearInt (Vector3 p1, Vector3 p2, float v1, float v2)
{
Vector3 p;
p.x = p1.x + (isolevel - v1) * (p2.x - p1.x) / (v2 - v1);
p.y = p1.y + (isolevel - v1) * (p2.y - p1.y) / (v2 - v1);
p.z = p1.z + (isolevel - v1) * (p2.z - p1.z) / (v2 - v1);
return p;
}

private static int[,] eCons = new int[12, 2] {
{ 0, 1 },
{ 1, 2 },
{ 2, 3 },
{ 3, 0 },
{ 4, 5 },
{ 5, 6 },
{ 6, 7 },
{ 7, 4 },
{ 0, 4 },
{ 1, 5 },
{ 2, 6 },
{ 3, 7 }
};

private static Vector3i[] offset = new Vector3i[8] {
new Vector3i (0, 0, 1),
new Vector3i (1, 0, 1),
new Vector3i (1, 0, 0),
new Vector3i (0, 0, 0),
new Vector3i (0, 1, 1),
new Vector3i (1, 1, 1),
new Vector3i (1, 1, 0),
new Vector3i (0, 1, 0)
};
Я не включил таблицы в образец, поскольку они такие же, как и в коде Бурка.
Я понял, что значение ячейки в синих треугольниках равно 0, поэтому их не нужно триангулировать, но значение ячейки под ними равно 1, и поэтому для завершения создается верхний треугольник сетка.

Подробнее здесь: https://stackoverflow.com/questions/784 ... o-using-ja

Вернуться в «JAVA»