Render 3d cube with colored cells

58 Views Asked by At

I have a WPF application in which i want to show a cube which has colored cells. so i used the Helix Toolkit with following code:

private void BuildColoredCube(int x, int y, int z)
{
    double cubeSize = 1.0; // Size of each cube cell

    Random random = new Random();

    var modelGroup = new Model3DGroup();

    for (int i = 0; i < x; i++)
    {
       for (int j = 0; j < y; j++)
       {
           for (int k = 0; k < z; k++)
           {
                var position = new Point3D(
                            i * cubeSize + cubeSize / 2,
                            j * cubeSize + cubeSize / 2,
                            k * cubeSize + cubeSize / 2);

                        // Generate a random color for each cube
                Color color = Color.FromRgb((byte)random.Next(256), (byte)random.Next(256),
                            (byte)random.Next(256));

                 var cube = new BoxVisual3D
                 {
                     Center = position,
                     Width = cubeSize,
                     Height = cubeSize,
                     Length = cubeSize,
                     Material = MaterialHelper.CreateMaterial(color),
                            
                 };

                        // Add the cube to the model group
                        modelGroup.Children.Add(cube.Model);
            }
        }
    }

            // Add the model group to the viewport
    viewport.Children.Add(new ModelVisual3D { Content = modelGroup });
}

and the result is like this. this result is for a case with 10 * 10 * 10 cells (10 cells in each direction). the issue is when i increase the number of the cells like 100 * 100 * 100, the rendering performance is very poor and i can't easily zoom in or out or move the object around. so i am looking for a solution to solve this in my application using Helix Toolkit capabilities. if it is not possible at all in helix feel free to recommend better solutions. i have experience with Paraview which is capable of rendering a cube with large amount of meshes so i want to implement something like that in my wpf app.

0

There are 0 best solutions below