public CellsDividedSceneRenderer(ContentManager contentManager, Scene scene) : base(contentManager) { SceneContent = scene; effect = Content.Load<Effect>("effect2d"); effect.CurrentTechnique = effect.Techniques["Basic"]; infoPanel = new TextInfoPanel(Content); AddSubRenderer(infoPanel); projectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, Device.Viewport.AspectRatio, Config.Instance.Rendering.NearClippingDistance, Config.Instance.Rendering.FarClippingDistance); selectedGridCell = new Point(SceneContent.Grid.GridRows / 2, SceneContent.Grid.GridColumns / 2); Mouse.SetPosition(Device.Viewport.Width / 2, Device.Viewport.Height / 2); oldMouseState = Mouse.GetState(); }
public WaterRenderer(ContentManager contentManager, Scene scene, Camera camera) : base(contentManager) { effect = Content.Load<Effect>("water"); bumpTexture = Content.Load<Texture2D>("water_texture"); bumpTexture.GenerateMipMaps(TextureFilter.Anisotropic); this.camera = camera; var vertices = new VertexPositionTexture[6 * scene.Water.WaterQuads.Count]; int idx = 0; foreach (var quad in scene.Water.WaterQuads) { vertices[idx++] = new VertexPositionTexture(new Vector3(quad.Xmin, quad.Level, -quad.Ymin), new Vector2(quad.Xmin, -quad.Ymin) / WaterTextureCoordsDivisor); vertices[idx++] = new VertexPositionTexture(new Vector3(quad.Xmax, quad.Level, -quad.Ymin), new Vector2(quad.Xmax, -quad.Ymin) / WaterTextureCoordsDivisor); vertices[idx++] = new VertexPositionTexture(new Vector3(quad.Xmin, quad.Level, -quad.Ymax), new Vector2(quad.Xmin, -quad.Ymax) / WaterTextureCoordsDivisor); vertices[idx++] = new VertexPositionTexture(new Vector3(quad.Xmax, quad.Level, -quad.Ymin), new Vector2(quad.Xmax, -quad.Ymin) / WaterTextureCoordsDivisor); vertices[idx++] = new VertexPositionTexture(new Vector3(quad.Xmax, quad.Level, -quad.Ymax), new Vector2(quad.Xmax, -quad.Ymax) / WaterTextureCoordsDivisor); vertices[idx++] = new VertexPositionTexture(new Vector3(quad.Xmin, quad.Level, -quad.Ymax), new Vector2(quad.Xmin, -quad.Ymax) / WaterTextureCoordsDivisor); } vertexBuffer = new VertexBuffer(Device, vertices.Length * VertexPositionTexture.SizeInBytes, BufferUsage.None); vertexBuffer.SetData(vertices); vertexDeclaration = new VertexDeclaration(Device, VertexPositionTexture.VertexElements); primitivesToDraw = scene.Water.WaterQuads.Count * 2; projectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, Device.Viewport.AspectRatio, Config.Instance.Rendering.NearClippingDistance, Config.Instance.Rendering.FarClippingDistance); }
public SceneRenderer3D(ContentManager contentManager, Scene scene) : base(contentManager) { SceneContent = scene; Initialize(); }