public Scene(Camera camera) { Origin = new Vector3(0, 0, 0); _shapes = new List<SceneBinding>(); _lights = new List<Light>(); Camera = camera; }
public async Task InitialiseSceneAsync() { var cameraPosition = new Vector3(0, 8, -20); var camera = new Camera(-cameraPosition, cameraPosition); _scene = new Scene(camera); var square = await _shapeFactory.GetShape<Cube>(); square.Shader = Shader.MattShaderFromColour(Color.Red); var cylinder = await _shapeFactory.GetShape<Cylinder>(); cylinder.Shader = Shader.MattShaderFromColour(Color.Blue); var plane = await _shapeFactory.GetShape<ObjPlane>(); plane.Shader = Shader.MattShaderFromColour(Color.Wheat); _scene.AddBinding(cylinder,Vector3.Zero); _scene.AddBinding(square, Vector3.Zero); _scene.AddBinding(plane, Vector3.Zero); _scene.Lights.Add(new Light(new Vector3(0, 10, 0), Color.White, 10)); _scene.Lights.Add(new Light(new Vector3(-10, 10, 0), Color.White, 10)); _scene.Lights.Add(new Light(new Vector3(10, 10, 0), Color.White, 10)); _scene.Lights.Add(new Light(new Vector3(20, 10, -10), Color.White, 100)); _scene.Lights.Add(new Light(new Vector3(0, 10, 10), Color.White, 10)); _scene.Shader = Shader.MattShaderFromColour(Color.Black); Initialised = true; }