protected override void init()
        {
            stars = new TextureSphere(5000f, "starmap.png");
            planets = new List<Planet>();
            AddPlanetSub("Sun","suncyl1.jpg", sunRadius, new Vector3(0f, 0f, startZdistance), 1f);
            sunProgram = Programs.AddProgram(VertexShaders.MatrixTexture,
                FragmentShaders.MatrixTextureScale);
            Programs.SetUniformScale(sunProgram, 500f);

            AddPlanetSub("Mercury", Planet.mercuryFileName, mercuryRadius, mercuryOffset, mercurySpeed);
            planets[planets.Count - 1].SetUpOrbit(new Vector3(0f, 0f, startZdistance), mercuryOffset,
                mercuryInitialSpeed, 2.3e4f);
            AddPlanetSub("Venus", Planet.venusFileName, venusRadius, venusOffset, venusSpeed);
            planets[planets.Count - 1].SetUpOrbit(new Vector3(0f, 0f, startZdistance), venusOffset,
                venusInitialSpeed, 2.3e4f);
            AddPlanetSub("Earth",  "PathfinderMap.jpg", earthRadius, earthOffset, earthSpeed);
            //planets.get(planets.size() - 1).setUpOrbit(new Vector3(0f, 0f, startZdistance), earthOffset,
            //        earthInitialSpeed, 500f);

            AddPlanetSub("Mars", "Mars_Viking_MDIM21_ClrMosaic_global_1024.jpg", marsRadius, marsOffset, marsSpeed);
            planets[planets.Count - 1].SetUpOrbit(new Vector3(0f, 0f, startZdistance), marsOffset,
                marsInitialSpeed, 2.3e4f);

            foreach (Planet p in planets)
            {
                p.SetProgram(sunProgram);
                p.SetLightScale(100f);
                programs.Add(p.GetProgram());
            }
            planets[0].SetLightScale(500f);
            SetupDepthAndCull();
            g_fzNear = 1f;
            g_fzFar = 10000f;
            worldToCameraMatrix = Matrix4.Identity;
            reshape();
            Shape.worldToCamera.M41 = 0;
            Shape.worldToCamera.M42 = 0;
            Shape.worldToCamera.M43 = - 1000f;
        }
 protected override void init()
 {
     //TextureSphere.reverseNormals = true;
     ts = new TextureSphere(50f, "starmap.png");
     program = Programs.AddProgram(VertexShaders.MatrixTexture,
         FragmentShaders.MatrixTextureScale);
     Programs.SetUniformScale(program, 200000f);
     ts.SetProgram(program);
     //SetupDepthAndCull();
     g_fzNear = 0.1f;
     g_fzFar = 100f;
     worldToCameraMatrix = Matrix4.Identity;
     reshape();
 }
 protected override void init()
 {
     stars = new TextureSphere(5000f, "starmap.png");
     planets = new List<Planet>();
     AddPlanet("Sun", "suncyl1.jpg", sunRadius, new Vector3(0f, 0f, startZdistance), 1f);
     sunProgram = Programs.AddProgram(VertexShaders.MatrixTexture,
         FragmentShaders.MatrixTextureScale);
     Programs.SetUniformScale(sunProgram, 500f);
     programs.Add(sunProgram);
     planets[0].SetProgram(sunProgram);
     AddPlanet("Mercury", "mercurymap.jpg", mercuryRadius, new Vector3(100f, 0f, startZdistance), 0.05f);
     AddPlanet("Venus", "Venus_Magellan_C3-MDIR_ClrTopo_Global_Mosaic_1024.jpg", venusRadius, new Vector3(200f, 0f, startZdistance), -0.025f);
     AddPlanet("Earth", "PathfinderMap.jpg", earthRadius, new Vector3(300f, 0f, startZdistance), 0.005f);
     AddPlanet("Mars", "Mars_Viking_MDIM21_ClrMosaic_global_1024.jpg", marsRadius, new Vector3(400f, 0f, startZdistance), -0.025f);
     AddPlanet("Jupiter", "jup0vss1.jpg", jupiterRadius, new Vector3(500f, 0f, startZdistance), -0.025f);
     AddPlanet("Saturn", "saturnmap.jpg", saturnRadius, new Vector3(600f, 0f, startZdistance), -0.005f);
     AddPlanet("Uranus", "uranusmap.jpg", uranusRadius, new Vector3(700f, 0f, startZdistance), -0.025f);
     AddPlanet("Neptune", "neptunemap.jpg", neptuneRadius, new Vector3(800f, 0f, startZdistance), -0.025f);
     AddPlanet("Pluto", "plutomap1k.jpg", plutoRadius, new Vector3(900f, 0f, startZdistance), -0.025f);
     SetupDepthAndCull();
     g_fzNear = 1f;
     g_fzFar = 10000f;
     worldToCameraMatrix = Matrix4.Identity;
     reshape();
 }