Esempio n. 1
0
        //Здесь происходит вся работа. 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);
            }
        }
Esempio n. 2
0
 //Здесь происходит вся работа. 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);
 }