private WavesDemo(IntPtr hInstance) : base(hInstance) { MainWindowCaption = "Waves Demo"; _lastMousePos = new Point(); _camera = new FpsCamera {Position = new Vector3(0, 2, -15)}; _dirLights = new[] { new DirectionalLight { Ambient = new Color4(0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.5f, 0.5f, 0.5f), Specular = new Color4(0.5f, 0.5f, 0.5f), Direction = new Vector3(0f, -0.31622f, -0.9486f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4( 0.4f, 0.4f, 0.4f), Specular = new Color4( 0.45f, 0.45f, 0.45f), Direction = new Vector3(0.57735f, 0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(0.2f, 0.2f, 0.2f), Specular = new Color4(0f,0f,0f), Direction = new Vector3(0, -0.707f, 0.707f) } }; }
private SdkMeshLoadingDemo(IntPtr hInstance) : base(hInstance) { MainWindowCaption = "SdkMesh Demo"; _lastMousePos = new Point(); Enable4XMsaa = true; _camera = new FpsCamera { Position = new Vector3(0, 2, -15) }; _dirLights = new[] { new DirectionalLight { Ambient = new Color4( 0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.5f, 0.5f, 0.5f), Specular = new Color4(0.5f, 0.5f, 0.5f), Direction = new Vector3(0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f, 0.2f, 0.2f, 0.2f), Specular = new Color4(1.0f, 0.25f, 0.25f, 0.25f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f,0.2f, 0.2f, 0.2f), Specular = new Color4(0,0,0), Direction = new Vector3(0, -0.707f, -0.707f) } }; }
private ParticlesDemo(IntPtr hInstance) : base(hInstance) { MainWindowCaption = "Particles Demo"; _camera = new FpsCamera { Position = new Vector3(0, 2, 100) }; _dirLights = new[] { new DirectionalLight { Ambient = new Color4( 0.3f, 0.3f, 0.3f), Diffuse = new Color4(1f, 1f, 1f), Specular = new Color4(0.8f, 0.8f, 0.8f), Direction = new Vector3(0, -0.707f, -0.707f)// }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f, 0.2f, 0.2f, 0.2f), Specular = new Color4(1.0f, 0.2f, 0.2f, 0.2f), Direction = new Vector3(0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(0.2f, 0.2f, 0.2f), Specular = new Color4(0.2f, 0.2f, 0.2f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) } }; }
protected ShapeModelsDemo(IntPtr hInstance) : base(hInstance) { MainWindowCaption = "ShapeModels Demo"; _lastMousePos = new Point(); _camera = new FpsCamera { Position = new Vector3(0, 2, -15) }; _dirLights = new[] { new DirectionalLight { Ambient = new Color4( 0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.7f, 0.7f, 0.7f), Specular = new Color4(0.8f, 0.8f, 0.8f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f, 0.4f, 0.4f, 0.4f), Specular = new Color4(1.0f, 0.2f, 0.2f, 0.2f), Direction = new Vector3(-0.707f, -0.707f, 0) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f,0.2f, 0.2f, 0.2f), Specular = new Color4(0.2f,0.2f,0.2f), Direction = new Vector3(0, 0, -1) } }; }
protected VoronoiMapDemo(IntPtr hInstance) : base(hInstance) { MainWindowCaption = "Voronoi Map Demo"; _lastMousePos = new Point(); _biomeColors = new Dictionary<string, Color4>(); _biomeColors["Ocean"] = Color.DarkBlue; _biomeColors["Marsh"] = Color.CadetBlue; _biomeColors["Ice"] = Color.AliceBlue; _biomeColors["Lake"] = Color.Blue; _biomeColors["Beach"] = Color.Gold; _biomeColors["Snow"] = Color.White; _biomeColors["Tundra"] = Color.OliveDrab; _biomeColors["Bare"] = Color.DarkGray; _biomeColors["Scorched"] = Color.DarkRed; _biomeColors["Taiga"] = Color.DarkGreen; _biomeColors["Shrubland"] = Color.DarkOliveGreen; _biomeColors["TemperateDesert"] = Color.SaddleBrown; _biomeColors["TemperateRainForest"] = Color.ForestGreen; _biomeColors["TemperateDecidousForest"] = Color.DarkSeaGreen; _biomeColors["Grassland"] = Color.YellowGreen; _biomeColors["TropicalRainForest"] = Color.LawnGreen; _biomeColors["TropicalSeasonalForest"] = Color.Olive; _biomeColors["SubtropicalDesert"] = Color.Khaki; _camera = new FpsCamera { Position = new Vector3(0, 2, -15) }; _map = new Map(100.0f); _map.NewIsland("square", 0, 0); _map.Go(0,0); }
private BallisticDemo(IntPtr hInstance) : base(hInstance) { _currentShotType = ShotType.Laser; MainWindowCaption = "Ballistic Demo"; _lastMousePos = new Point(); _camera = new FpsCamera(); _camera.LookAt(new Vector3(10, 2, -10), new Vector3(0, 1, 0), Vector3.UnitY); _dirLights = new[] { new DirectionalLight { Ambient = new Color4( 0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.7f, 0.7f, 0.7f), Specular = new Color4(0.8f, 0.8f, 0.8f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f, 0.4f, 0.4f, 0.4f), Specular = new Color4(1.0f, 0.2f, 0.2f, 0.2f), Direction = new Vector3(-0.707f, -0.707f, 0) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f,0.2f, 0.2f, 0.2f), Specular = new Color4(0.2f,0.2f,0.2f), Direction = new Vector3(0, 0, -1) } }; }
private PointLightDemo(IntPtr hInstance) : base(hInstance) { MainWindowCaption = "Point Light Demo"; _lastMousePos = new Point(); Enable4XMsaa = true; GammaCorrectedBackBuffer = true; _camera = new FpsCamera(); _camera.LookAt(new Vector3(71, 41, 71), Vector3.Zero, Vector3.UnitY); _dirLightDirection.Normalize(); }
private ShadowsDemo(IntPtr hInstance) : base(hInstance) { _lightRotationAngle = 0; MainWindowCaption = "Shadows Demo"; _lastMousePos = new Point(); _camera = new FpsCamera { Position = new Vector3(0, 2, -15) }; _sceneBounds = new BoundingSphere(new Vector3(), MathF.Sqrt(10 * 10 + 15 * 15)); _skullWorld = Matrix.Scaling(0.5f, 0.5f, 0.5f) * Matrix.Translation(0, 1.0f, 0); _dirLights = new[] { new DirectionalLight { Ambient = new Color4( 0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.7f, 0.7f, 0.7f), Specular = new Color4(0.8f, 0.8f, 0.8f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f, 0.4f, 0.4f, 0.4f), Specular = new Color4(1.0f, 0.2f, 0.2f, 0.2f), Direction = new Vector3(-0.707f, -0.707f, 0) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f,0.2f, 0.2f, 0.2f), Specular = new Color4(0.2f,0.2f,0.2f), Direction = new Vector3(0, 0, -1) } }; _originalLightDirs = _dirLights.Select(l => l.Direction).ToArray(); _skullMat = new Material { Ambient = new Color4(0.4f, 0.4f, 0.4f), Diffuse = new Color4(0.8f, 0.8f, 0.8f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = new Color4(0.5f, 0.5f, 0.5f) }; }
public InstancingAndCullingDemo(IntPtr hInstance) : base(hInstance) { _skullIndexCount = 0; _visibleObjectCount = 0; _frustumCullingEnabled = true; _instancing = true; _skullsOrBoxes = true; MainWindowCaption = "Instancing and Culling Demo"; _lastMousePos = new Point(); _cam = new FpsCamera { Position = new Vector3(0, 2, -15) }; _dirLights = new[] { new DirectionalLight { Ambient = new Color4(0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.5f, 0.5f, 0.5f), Specular = new Color4(0.5f, 0.5f, 0.5f), Direction = new Vector3(0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = Color.Black, Diffuse = new Color4(0.2f, 0.2f, 0.2f), Specular = new Color4(0.25f, 0.25f, 0.25f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = Color.Black, Diffuse = new Color4(0.2f, 0.2f, 0.2f), Specular = Color.Black, Direction = new Vector3(0.0f, -0.707f, -0.707f) } }; _skullMat = new Material { Ambient = new Color4(0.4f, 0.4f, 0.4f), Diffuse = new Color4(0.8f, 0.8f, 0.8f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f) }; }
public PickingDemo(IntPtr hInstance) : base(hInstance) { _pickedTriangle = -1; MainWindowCaption = "Picking Demo"; _lastMousePos = new Point(); _cam = new FpsCamera { Position = new Vector3(0, 2, -15) }; _meshWorld = Matrix.Scaling(0.5f, 0.5f, 0.5f) * Matrix.Translation(0, 1, 0); _dirLights = new[] { new DirectionalLight { Ambient = new Color4(0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.5f, 0.5f, 0.5f), Specular = new Color4(0.5f, 0.5f, 0.5f), Direction = new Vector3(0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = Color.Black, Diffuse = new Color4(0.2f, 0.2f, 0.2f), Specular = new Color4(0.25f, 0.25f, 0.25f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = Color.Black, Diffuse = new Color4(0.2f, 0.2f, 0.2f), Specular = Color.Black, Direction = new Vector3(0.0f, -0.707f, -0.707f) } }; _meshMat = new Material { Ambient = new Color4(0.4f, 0.4f, 0.4f), Diffuse = new Color4(0.8f, 0.8f, 0.8f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f) }; _pickedTriangleMat = new Material { Ambient = new Color4(0, 0.8f, 0.4f), Diffuse = new Color4(0, 0.8f, 0.4f), Specular = new Color4(16.0f, 0.0f, 0.0f, 0.0f) }; }
public CameraDemo(IntPtr hInstance) : base(hInstance) { _lightCount = 3; Enable4XMsaa = true; MainWindowCaption = "Camera Demo"; _lastMousePos = new Point(); _useFpsCamera = true; _cam = new FpsCamera { Position = new Vector3(0, 2, -15) }; _cam2 = new LookAtCamera(); _cam2.LookAt(new Vector3(0, 2, -15), new Vector3(), Vector3.UnitY); _gridWorld = Matrix.Identity; _boxWorld = Matrix.Scaling(3.0f, 1.0f, 3.0f) * Matrix.Translation(0, 0.5f, 0); _skullWorld = Matrix.Scaling(0.5f, 0.5f, 0.5f) * Matrix.Translation(0, 1.0f, 0); for (var i = 0; i < 5; i++) { _cylWorld[i * 2] = Matrix.Translation(-5.0f, 1.5f, -10.0f + i * 5.0f); _cylWorld[i * 2 + 1] = Matrix.Translation(5.0f, 1.5f, -10.0f + i * 5.0f); _sphereWorld[i * 2] = Matrix.Translation(-5.0f, 3.5f, -10.0f + i * 5.0f); _sphereWorld[i * 2 + 1] = Matrix.Translation(5.0f, 3.5f, -10.0f + i * 5.0f); } _dirLights = new[] { new DirectionalLight { Ambient = new Color4( 0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.5f, 0.5f, 0.5f), Specular = new Color4(0.5f, 0.5f, 0.5f), Direction = new Vector3(0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f, 0.2f, 0.2f, 0.2f), Specular = new Color4(1.0f, 0.25f, 0.25f, 0.25f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f,0.2f, 0.2f, 0.2f), Specular = new Color4(0,0,0), Direction = new Vector3(0, -0.707f, -0.707f) } }; _gridMat = new Material { Ambient = new Color4(0.8f, 0.8f, 0.8f), Diffuse = new Color4(0.8f, 0.8f, 0.8f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f) }; _cylinderMat = new Material { Ambient = Color.White, Diffuse = Color.White, Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f) }; _sphereMat = new Material { Ambient = new Color4(0.6f, 0.8f, 0.9f), Diffuse = new Color4(0.6f, 0.8f, 0.9f), Specular = new Color4(16.0f, 0.9f, 0.9f, 0.9f) }; _boxMat = new Material { Ambient = Color.White, Diffuse = Color.White, Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f) }; _skullMat = new Material { Ambient = new Color4(0.4f, 0.4f, 0.4f), Diffuse = new Color4(0.8f, 0.8f, 0.8f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f) }; }
protected NormalDisplacementMapsDemo(IntPtr hInstance) : base(hInstance) { _renderOptions = RenderOptions.NormalMap; MainWindowCaption = "Normal-Displacement Map Demo"; Enable4XMsaa = true; _lastMousePos = new Point(); _camera = new FpsCamera { Position = new Vector3(0, 2, -15) }; _gridWorld = Matrix.Identity; _boxWorld = Matrix.Scaling(3.0f, 1.0f, 3.0f) * Matrix.Translation(0, 0.5f, 0); _skullWorld = Matrix.Scaling(0.5f, 0.5f, 0.5f) * Matrix.Translation(0, 1.0f, 0); for (var i = 0; i < 5; i++) { _cylWorld[i * 2] = Matrix.Translation(-5.0f, 1.5f, -10.0f + i * 5.0f); _cylWorld[i * 2 + 1] = Matrix.Translation(5.0f, 1.5f, -10.0f + i * 5.0f); _sphereWorld[i * 2] = Matrix.Translation(-5.0f, 3.5f, -10.0f + i * 5.0f); _sphereWorld[i * 2 + 1] = Matrix.Translation(5.0f, 3.5f, -10.0f + i * 5.0f); } _dirLights = new[] { new DirectionalLight { Ambient = new Color4( 0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.5f, 0.5f, 0.5f), Specular = new Color4(0.5f, 0.5f, 0.5f), Direction = new Vector3(0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f, 0.2f, 0.2f, 0.2f), Specular = new Color4(1.0f, 0.25f, 0.25f, 0.25f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f,0.2f, 0.2f, 0.2f), Specular = new Color4(0,0,0), Direction = new Vector3(0, -0.707f, -0.707f) } }; _gridMat = new Material { Ambient = new Color4(0.8f, 0.8f, 0.8f), Diffuse = new Color4(0.8f, 0.8f, 0.8f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = Color.Black }; _cylinderMat = new Material { Ambient = Color.White, Diffuse = Color.White, Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = Color.Black }; _sphereMat = new Material { Ambient = new Color4(0.6f, 0.8f, 0.9f), Diffuse = new Color4(0.6f, 0.8f, 0.9f), Specular = new Color4(16.0f, 0.9f, 0.9f, 0.9f), Reflect = new Color4(0.4f, 0.4f, 0.4f) }; _boxMat = new Material { Ambient = Color.White, Diffuse = Color.White, Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = Color.Black }; _skullMat = new Material { Ambient = new Color4(0.4f, 0.4f, 0.4f), Diffuse = new Color4(0.8f, 0.8f, 0.8f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = new Color4(0.5f, 0.5f, 0.5f) }; }
public DynamicCubeMapDemo(IntPtr hInstance) : base(hInstance) { _lightCount = 3; _lastMousePos = new Point(); MainWindowCaption = "Dynamic CubeMap Demo"; _camera = new FpsCamera { Position = new Vector3(0, 2, -15) }; BuildCubeFaceCamera(0.0f, 2.0f, 0.0f); for (int i = 0; i < 6; i++) { _dynamicCubeMapRTV[i] = null; } _gridWorld = Matrix.Identity; _boxWorld = Matrix.Scaling(3.0f, 1.0f, 3.0f) * Matrix.Translation(0, 0.5f, 0); _centerSphereWorld = Matrix.Scaling(new Vector3(2.0f)) * Matrix.Translation(0, 2, 0); //_skullWorld = Matrix.Scaling(0.5f, 0.5f, 0.5f) * Matrix.Translation(0, 1.0f, 0); for (var i = 0; i < 5; i++) { _cylWorld[i * 2] = Matrix.Translation(-5.0f, 1.5f, -10.0f + i * 5.0f); _cylWorld[i * 2 + 1] = Matrix.Translation(5.0f, 1.5f, -10.0f + i * 5.0f); _sphereWorld[i * 2] = Matrix.Translation(-5.0f, 3.5f, -10.0f + i * 5.0f); _sphereWorld[i * 2 + 1] = Matrix.Translation(5.0f, 3.5f, -10.0f + i * 5.0f); } _dirLights = new[] { new DirectionalLight { Ambient = new Color4( 0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.5f, 0.5f, 0.5f), Specular = new Color4(0.5f, 0.5f, 0.5f), Direction = new Vector3(0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f, 0.2f, 0.2f, 0.2f), Specular = new Color4(1.0f, 0.25f, 0.25f, 0.25f), Direction = new Vector3(-0.57735f, -0.57735f, 0.57735f) }, new DirectionalLight { Ambient = new Color4(0,0,0), Diffuse = new Color4(1.0f,0.2f, 0.2f, 0.2f), Specular = new Color4(0,0,0), Direction = new Vector3(0, -0.707f, -0.707f) } }; _gridMat = new Material { Ambient = new Color4(0.8f, 0.8f, 0.8f), Diffuse = new Color4(0.8f, 0.8f, 0.8f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = Color.Black }; _cylinderMat = new Material { Ambient = Color.White, Diffuse = Color.White, Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = Color.Black }; _sphereMat = new Material { Ambient = new Color4(0.6f, 0.8f, 0.9f), Diffuse = new Color4(0.6f, 0.8f, 0.9f), Specular = new Color4(16.0f, 0.9f, 0.9f, 0.9f), Reflect = Color.Black }; _boxMat = new Material { Ambient = Color.White, Diffuse = Color.White, Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = Color.Black }; _skullMat = new Material { Ambient = new Color4(0.4f, 0.4f, 0.4f), Diffuse = new Color4(0.8f, 0.8f, 0.8f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = Color.Black }; _centerSphereMat = new Material { Ambient = new Color4(0.2f, 0.2f, 0.2f), Diffuse = new Color4(0.2f, 0.2f, 0.2f), Specular = new Color4(16.0f, 0.8f, 0.8f, 0.8f), Reflect = new Color4(0.8f, 0.8f, 0.8f) }; }
private void BuildCubeFaceCamera(float x, float y, float z) { var center = new Vector3(x, y, z); var worldUp = new Vector3(0, 1, 0); var targets = new[] { new Vector3(x + 1, y, z), new Vector3(x - 1, y, z), new Vector3(x, y + 1, z), new Vector3(x, y - 1, z), new Vector3(x, y, z + 1), new Vector3(x, y, z - 1) }; var ups = new[] { new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 0, -1), new Vector3(0, 0, 1), new Vector3(0, 1, 0), new Vector3(0, 1, 0), }; for (int i = 0; i < 6; i++) { _cubeMapCamera[i] = new FpsCamera(); _cubeMapCamera[i].LookAt(center, targets[i], ups[i]); _cubeMapCamera[i].SetLens(MathF.PI/2, 1.0f, 0.1f, 1000.0f); _cubeMapCamera[i].UpdateViewMatrix(); } }