/// <summary> /// Construct a new scene, optionally enableing post-processing, if available. /// </summary> /// <param name="postprocessingEnabled">Whether or not to enable post-processing; defaults to false</param> public Scene(OpenGL gl, Size viewportSize) { this.gl = gl; this.viewportSize = viewportSize; model = null; postprocessingEnabled = false; ClearColor = Color.Black; camera = new MovingLookAtCamera() { Position = new Vertex(10f, 0f, 0f), Target = new Vertex(0f, 0f, 0f), UpVector = new Vertex(0f, 0f, 1f), Near = 0, Far = 250, HorizontalTheta = 0.785f, VerticalTheta = -0.785f }; RenderGrid = true; RenderAxies = true; grid = new Grid(); grid.Size = 150; axies = new Axies(); axies.Size = 150; //Set attributes attrs = new OpenGLAttributesEffect(); attrs.EnableAttributes.EnableDepthTest = true; attrs.EnableAttributes.EnableNormalize = true; attrs.EnableAttributes.EnableLighting = true; attrs.EnableAttributes.EnableTexture2D = true; attrs.LightingAttributes.TwoSided = false; Color col = Color.FromArgb(40, 40, 40); // Nice soft-ish lighting Light light = new Light(OpenGL.GL_LIGHT0) { Position = new Vertex(-9, -9, 11), Ambient = Color.Black, Diffuse = col, Specular = col }; this.Children.Add(light); light = new Light(OpenGL.GL_LIGHT1) { Position = new Vertex(9, -9, 11), Ambient = Color.Black, Diffuse = col, Specular = col }; this.Children.Add(light); light = new Light(OpenGL.GL_LIGHT2) { Position = new Vertex(0, 15, 15), Ambient = Color.Black, Diffuse = col, Specular = col }; this.Children.Add(light); }