title: Transparencyof Spheres not working on all sides of my Cube - Helixtoolkit
body: <p>first question here - hopefully I got the formatting done right.<br>
  So I'm trying to create a 3D LED cube with 512 LEDs (8x8x8) in WPF with the Helix-Toolkit in Visual Studio 2015. I'm new to the whole 3D stuff in WPF so I might have some misunderstanding here. Basically what I'm doing right now is:</p>
  
  <ul>
  <li>I have a ModelVisual3D in my XAML Code namend "cube".</li>
  <li>I have a loop which runs 512 times - it creates a SphereVisual3D and sets its Material</li>
  <li>I add the LEDs to my ModelVisual3D</li>
  </ul>
  
  <p>I want my LEDs to be almost transparent so I can see when a LED on the inside of the cube lights up. Thats why I used this Material:</p>
  
  <pre> <code>
  DiffuseMaterial material = new DiffuseMaterial(new SolidColorBrush(Color.FromArgb(50,255,255,255)));
  sphere.Material = material;
  </code> </pre>
  
  <p><strong>Transparency is kind of working</strong>. Example: Transparency is <strong>working on the right/front side of the cube (pushing the button 'turns on' the led). But it is not working on the left or back side of the cube</strong>. Can someone explain me why? I think it is related to the lightsource of this scene.
  Transparency of the front side:
  <a href="https://i.stack.imgur.com/qwRwN.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/qwRwN.png" alt="Front-View transparent"></a> left side:<a href="https://i.stack.imgur.com/RVBRg.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/RVBRg.png" alt="Left side non-transparent"></a></p>
  
  <p>This is my MainWindow.xaml:
  </p>
  
  <pre><code>&lt;Window
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:local="clr-namespace:WpfApplication1"
      xmlns:h="http://helix-toolkit.org/wpf"
      xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing" x:Class="WpfApplication1.MainWindow"
      mc:Ignorable="d"
      Title="MainWindow" Height="720.268" Width="894.578"
      xmlns:HelixToolkit="clr-namespace:HelixToolkit.Wpf;assembly=HelixToolkit.Wpf" &gt;
  &lt;Grid&gt;
      &lt;!-- Using the HelixToolkit --&gt;
      &lt;HelixToolkit:HelixViewport3D x:Name="viewport" ZoomExtentsWhenLoaded="True" ShowFrameRate="True" ShowCoordinateSystem="True" Margin="0,0,0,45" ClipToBounds="False" InfiniteSpin="True"&gt;
          &lt;!-- Using the SunLight. Strange thing is: If I use the DefaultLight my Performance gets really bad --&gt;
          &lt;HelixToolkit:SunLight Brightness="1" ShowLights="True"&gt;
          &lt;/HelixToolkit:SunLight&gt;
          &lt;!-- This ModelVisual3D Object should contain my LED cube --&gt;
          &lt;ModelVisual3D x:Name="cube"&gt;
              &lt;/ModelVisual3D&gt;
      &lt;/HelixToolkit:HelixViewport3D&gt;
      &lt;!-- The button turns on a LED - for transparecy testing purpose --&gt;
      &lt;Button Margin="377,650,386,0" Content="Push Me!" Click="Button_Click"/&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p></p>
  
  <p>And this is my code-behind Mainwindow.xaml.cs:
  </p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using System.Windows;
  using System.Windows.Controls;
  using System.Windows.Data;
  using System.Windows.Documents;
  using System.Windows.Input;
  using System.Windows.Media;
  using System.Windows.Media.Imaging;
  using System.Windows.Navigation;
  using System.Windows.Shapes;
  using HelixToolkit.Wpf;
  using System.Windows.Media.Media3D;
  
  namespace WpfApplication1
  {
      /// &lt;summary&gt;
      /// Creating LEDs
      /// &lt;/summary&gt;
      public partial class MainWindow : Window
      {
          public MainWindow()
          {
              InitializeComponent();
              //Create 512 LEDs
              for (int x = 0; x &lt; 7; x++)
              {
                  for (int y = 7; y &gt; 0; y--)
                  {
                      for(int z = 0; z &lt; 7; z++)
                      {
                          addSphere(x, z, y);
                      }
                  }
              }
          }
          public void addSphere(double x, double z, double y)
          {
              SphereVisual3D sphere = new SphereVisual3D(); //Creating new 'LED'
              sphere.Radius = 0.25;
              sphere.Center = new Point3D(x, y, z);
              DiffuseMaterial material = new DiffuseMaterial(new SolidColorBrush(Color.FromArgb(50,255,255,255)));
              sphere.Material = material;
              sphere.BackMaterial = material;
              //sphere.Fill = new SolidColorBrush(Colors.DarkBlue);
              cube.Children.Add(sphere);
          }
          private void Button_Click(object sender, RoutedEventArgs e)
          {
              //Turns one LED red to test transparancy
              SphereVisual3D model = cube.Children[60] as SphereVisual3D;
              DiffuseMaterial material = new DiffuseMaterial(new SolidColorBrush(Color.FromArgb(255, 255, 0, 0)));
              model.Material = material;
          }
      }
  }
  </code></pre>
  
  <p>Another weird thing is that <strong>when I am using "HelixToolkit:DefaultLights" the performance is really bad.</strong> I am getting like 0-2 fps. What can be the reason?</p>