//Здесь происходит вся работа. MarchCubesPrimitive - реализация GeometricPrimitive из примера XNA. isolevel - уровень на изоповерхности. public static void Process(GraphicsDevice graphicsDevice, double isolevel, ref CubePrimitive primitive) { //Очищаем буферы вершин и индексов //primitive.Clear(); int triNum = 0; for (int i = 0; i < _size; i++) { for (int j = 0; j < _size; j++) { for (int k = 0; k < _size; k++) { //Заполняем _triangles и получаем количество треугольников triNum = Polygonise(i, j, k, isolevel); if (triNum > 0) { Build(ref primitive, triNum);//А здесь заполняем буферы } } } } if (primitive.CurrentVertex == 0) { primitive.isDrawable = false; } else { primitive.InitializePrimitive(graphicsDevice); } }
//Здесь происходит вся работа. MarchCubesPrimitive - реализация GeometricPrimitive из примера XNA. isolevel - уровень на изоповерхности. public static void Process(GraphicsDevice graphicsDevice, double isolevel, ref CubePrimitive primitive) { //Очищаем буферы вершин и индексов //primitive.Clear(); int triNum = 0; for (int i = 0; i < _size; i++) for (int j = 0; j < _size; j++) for (int k = 0; k < _size; k++) { //Заполняем _triangles и получаем количество треугольников triNum = Polygonise(i, j, k, isolevel); if (triNum > 0) { Build(ref primitive, triNum);//А здесь заполняем буферы } } if (primitive.CurrentVertex == 0) primitive.isDrawable = false; else primitive.InitializePrimitive(graphicsDevice); }