示例#1
0
        public override void Init()
        {
            Content.ContentPath = "Data";

            Instance = this;

            Scene        = new Scene();
            Scene.View   = this;
            Scene.Camera = new LookatCartesianCamera()
            {
                Position    = new Vector3(10, 10, 10),
                Lookat      = Vector3.Zero,
                ZFar        = 100,
                AspectRatio = AspectRatio
            };
            sceneQuadtree = new Common.Quadtree <Entity>(0, 0, 100, 100, 10);
            sbau          = new SceneBVHAutoSyncer(Scene, sceneQuadtree);

            StateManager = new Device9StateManager(Device9);

            Graphics.Renderer.IRenderer Renderer = new Graphics.Renderer.Renderer(Device9)
            {
                Scene        = Scene,
                StateManager = StateManager,
                Settings     = new Graphics.Renderer.Settings()
                {
                    FogDistance = 100,
                    WaterLevel  = -55
                }
            };

            SRC = new SortedTestSceneRendererConnector
            {
                Scene    = Scene,
                Renderer = Renderer,
            };

            Renderer.Initialize(Scene.View);
            SRC.Initialize();

            Scene.Add(exquemelin = new Entity
            {
                MainGraphic = new Graphics.Content.MetaModel
                {
                    SkinnedMesh = new Graphics.Content.SkinnedMeshFromFile("Models/Units/MainCharacter1.x"),
                    Texture     = new Graphics.Content.TextureFromFile("Models/Units/MainCharacter1.png"),
                    World       = Matrix.Scaling(0.5f, 0.5f, 0.5f) * Graphics.Content.SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Translation(0, 0, -4f),
                },
                VisibilityLocalBounding = new Common.Bounding.NonfittableBounding(Vector3.Zero, false, true)
            });

            InputHandler = new WalkaroundCameraInputHandler
            {
                Camera = (LookatCartesianCamera)Scene.Camera,
            };
        }
        public override void Init()
        {
            Content.ContentPath = "Data";

            Scene        = new Scene();
            Scene.View   = this;
            Scene.Camera = new LookatCartesianCamera()
            {
                Position    = new Vector3(10, 10, 10),
                Lookat      = Vector3.Zero,
                ZFar        = 100,
                AspectRatio = AspectRatio
            };
            sceneQuadtree = new Common.Quadtree <Entity>(10);
            sbau          = new SceneBVHAutoSyncer(Scene, sceneQuadtree);

            StateManager = new Device9StateManager(Device9);

            Renderer = new Graphics.Renderer.Renderer(Device9)
            {
                Scene = Scene, StateManager = StateManager, Settings = new Graphics.Renderer.Settings {
                    ShadowQuality = Graphics.Renderer.Settings.ShadowQualities.NoShadows
                }
            };
            Renderer.Initialize(this);
            sceneRendererConnector = new SortedTestSceneRendererConnector
            {
                Scene    = Scene,
                Renderer = Renderer
            };
            sceneRendererConnector.Initialize();

            Scene.Add(exquemelin = new Entity
            {
                MainGraphic = new Graphics.Content.MetaModel
                {
                    SkinnedMesh = new Graphics.Content.SkinnedMeshFromFile("Models/Units/Zombie1.x"),
                    Texture     = new Graphics.Content.TextureFromFile("Models/Units/Zombie1.png"),
                    World       = Graphics.Content.SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.5f, 0.5f, 0.5f),
                    HasAlpha    = false,
                },
                VisibilityLocalBounding = new Common.Bounding.NonfittableBounding(Vector3.Zero, false, true)
            });

            Graphics.Renderer.Renderer.EntityAnimation ea = Scene.View.Content.Peek <Graphics.Renderer.Renderer.EntityAnimation>(exquemelin.MetaEntityAnimation);

            ea.PlayAnimation(new AnimationPlayParameters("Idle1", true));

            InputHandler = new WalkaroundCameraInputHandler
            {
                Camera = (LookatCartesianCamera)Scene.Camera,
            };
        }
示例#3
0
        public override void Init()
        {
            Content.ContentPath = "Data";

            Instance = this;

            //splatTexture = Content.Peek<Texture>(new TextureFromFile("splatting.png"));
            //grassTexture = Content.Peek<Texture>(new TextureFromFile(""));
            //soilTexture = Content.Peek<Texture>(new TextureFromFile(""));
            //grass2Texture = Content.Peek<Texture>(new TextureFromFile(""));
            //stoneTexture = Content.Peek<Texture>(new TextureFromFile(""));

            Scene        = new Scene();
            Scene.View   = this;
            Scene.Camera = new LookatCartesianCamera()
            {
                Position    = new Vector3(10, 10, 10),
                Lookat      = Vector3.Zero,
                ZFar        = 100,
                ZNear       = 0.1f,
                AspectRatio = AspectRatio
            };
            sceneQuadtree = new Common.Quadtree <Entity>(0, 0, 100, 100, 10);
            sbau          = new SceneBVHAutoSyncer(Scene, sceneQuadtree);

            StateManager = new Device9StateManager(Device9);
            Renderer     = new Graphics.Renderer.Renderer(Device9)
            {
                Scene = Scene, StateManager = StateManager
            };
            Renderer.Initialize(this);

            sceneRendererConnector = new SortedTestSceneRendererConnector
            {
                Renderer = Renderer,
                Scene    = Scene
            };
            sceneRendererConnector.Initialize();

            heightmap = TextureUtil.ToHeightmap(Content.Peek <Texture>(new TextureFromFile("heightmap.png")), 100);

            Scene.Add(ground = new Entity
            {
                MainGraphic = new MetaModel
                {
                    XMesh = new MeshConcretize
                    {
                        MeshDescription = new Graphics.Software.Meshes.MeshFromHeightmap
                        {
                            Grid = new Graphics.Software.Meshes.Grid
                            {
                                Position = Vector3.Zero,
                                MeshType = MeshType.Indexed,
                                Size     = new Vector2(100, 100),
                                NWidth   = heightmap.GetLength(1) - 1,
                                NHeight  = heightmap.GetLength(0) - 1,
                                UVMax    = new Vector2(1, 1),
                                UVMin    = new Vector2(0, 0)
                            },
                            Height      = 20,
                            Heightmap   = heightmap,
                            Rectangle   = new RectangleF(0, 0, 1, 1),
                            PointSample = true
                        },
                        Layout = Graphics.Software.Vertex.PositionNormalTexcoord.Instance
                    },
                    SplatMapped  = true,
                    Texture      = new TextureFromFile("splatting.png"),
                    SplatTexutre = new MetaResource <Texture, SlimDX.Direct3D10.Texture2D>[1] {
                        new TextureFromFile("splattingtest.png")
                    },
                    MaterialTexture = new MetaResource <Texture, SlimDX.Direct3D10.Texture2D>[4] {
                        new TextureFromFile("grass.png")
                        , new TextureFromFile("pebbles.png"), new TextureFromFile("vines.png"), new TextureFromFile("rock.png")
                    },
                },
                VisibilityLocalBounding = Vector3.Zero
            });

            InputHandler = new WalkaroundCameraInputHandler
            {
                Camera = (LookatCartesianCamera)Scene.Camera,
                //InputHandler = groundTextureEditor,
                //FilteredMessages = new MessageType[] { }
            };
        }
示例#4
0
        public override void Init()
        {
            Content.ContentPath = "Data";


            StateManager = new Device9StateManager(Device9);

            Scene.View = this;

            Renderer = new Graphics.Renderer.Renderer(Device9)
            {
                Scene = Scene, StateManager = StateManager
            };
            Renderer.Initialize(this);

            sceneRendererConnector = new SortedTestSceneRendererConnector
            {
                Renderer = Renderer,
                Scene    = Scene
            };
            sceneRendererConnector.Initialize();

            Scene.Camera = new LookatCartesianCamera()
            {
                Position    = new Vector3(10, 10, 10),
                Lookat      = Vector3.Zero,
                AspectRatio = AspectRatio
            };
            Scene.Add(donutEntity = new Entity
            {
                MainGraphic = new Graphics.Content.MetaModel
                {
                    SkinnedMesh = new SkinnedMeshFromFile("Models/Props/Palmtree1.x"),
                    Texture     = new TextureFromFile("Models/Props/Palmtree1.png"),
                    World       = Graphics.Content.SkinnedMesh.InitSkinnedMeshFromMaya
                }
            });
            Scene.Add(goblinEntity = new Entity
            {
                MainGraphic = new Graphics.Content.MetaModel
                {
                    SkinnedMesh = new Graphics.Content.SkinnedMeshFromFile("Models/Units/Brute1.x"),
                    Texture     = new Graphics.Content.TextureFromFile("Models/Units/Brute1.png"),
                    World       = Graphics.Content.SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Translation(4, 4, 0),
                }
            });
            InputHandler = new WalkaroundCameraInputHandler
            {
                Camera = (LookatCartesianCamera)Scene.Camera,
            };

            //donutEntity.PlayAnimation("idle1", 1, true, 0);

            Renderer.Initialize(this);

            System.Windows.Forms.PropertyGrid p1;
            System.Windows.Forms.PropertyGrid p2;

            System.Windows.Forms.Form form1 = new System.Windows.Forms.Form();
            System.Windows.Forms.Form form2 = new System.Windows.Forms.Form();
            form1.Controls.Add(p1 = new System.Windows.Forms.PropertyGrid {
                SelectedObject = Renderer.Settings, Dock = System.Windows.Forms.DockStyle.Fill
            });
            form2.Controls.Add(p2 = new System.Windows.Forms.PropertyGrid {
                SelectedObject = GraphicsDevice.Settings, Dock = System.Windows.Forms.DockStyle.Fill
            });

            form1.Show();
            form2.Show();
        }
示例#5
0
        public override void Init()
        {
            Content.ContentPath = "Data";

            Instance = this;

            Scene        = new Scene();
            Scene.View   = this;
            Scene.Camera = new LookatCartesianCamera()
            {
                Position    = new Vector3(10, 10, 10),
                Lookat      = Vector3.Zero,
                ZFar        = 100,
                AspectRatio = AspectRatio
            };
            sceneQuadtree = new Common.Quadtree <Entity>(-1, -1, 100, 100, 10);
            sbau          = new SceneBVHAutoSyncer(Scene, sceneQuadtree);

            StateManager = new Device9StateManager(Device9);

            rand = new Random();

            nBillboards = 2000;
            billboards  = new Entity[nBillboards];
            directions  = new Vector3[nBillboards];

            for (int i = 0; i < nBillboards; i++)
            {
                directions[i] = new Vector3((float)rand.NextDouble() * 2 - 1, (float)rand.NextDouble() * 2 - 1, (float)rand.NextDouble() * 2 - 1);
            }

            InputHandler = new WalkaroundCameraInputHandler
            {
                Camera = (LookatCartesianCamera)Scene.Camera
            };

            Renderer = new Graphics.Renderer.Renderer(Device9)
            {
                Scene = Scene, StateManager = StateManager, Settings = new Graphics.Renderer.Settings {
                    FogDistance = 500
                }
            };
            Renderer.Initialize(this);

            sceneRendererConnector = new SortedTestSceneRendererConnector
            {
                Renderer = Renderer,
                Scene    = Scene
            };
            sceneRendererConnector.Initialize();

            for (int i = 0; i < nBillboards; i++)
            {
                Scene.Add(billboards[i] = new Entity
                {
                    MainGraphic = new MetaModel
                    {
                        AlphaRef             = 0,
                        BaseTexture          = null,
                        CastShadows          = Priority.Never,
                        HasAlpha             = true,
                        IsBillboard          = true,
                        IsWater              = false,
                        MaterialTexture      = null,
                        Mesh                 = null,
                        ReceivesAmbientLight = Priority.Never,
                        ReceivesDiffuseLight = Priority.Never,
                        ReceivesShadows      = Priority.Never,
                        SkinnedMesh          = null,
                        SplatMapped          = false,
                        SplatTexutre         = null,
                        Texture              = new TextureFromFile("checker.png"),
                        Visible              = Priority.High,
                        World                = Matrix.Identity,
                        XMesh                = new MeshConcretize
                        {
                            MeshDescription = new Meshes.IndexedPlane
                            {
                                Facings  = Facings.Backside | Facings.Frontside,
                                Position = Vector3.Zero,
                                Size     = new Vector2(5, 5),
                                UVMin    = Vector2.Zero,
                                UVMax    = new Vector2(1, 1)
                            },
                            Layout = global::Graphics.Software.Vertex.PositionNormalTexcoord.Instance
                        }
                    },
                    VisibilityLocalBounding = Vector3.Zero,
                    WorldMatrix             = Matrix.Identity
                });
            }
        }
        public override void Init()
        {
            Content.ContentPath = "Data";

            Instance = this;

            Scene        = new Scene();
            Scene.View   = this;
            Scene.Camera = new LookatCartesianCamera()
            {
                Position    = new Vector3(10, 10, 10),
                Lookat      = Vector3.Zero,
                ZFar        = 10000,
                AspectRatio = AspectRatio
            };
            sceneQuadtree = new Common.Quadtree <Entity>(-1, -1, 100, 100, 10);
            sbau          = new SceneBVHAutoSyncer(Scene, sceneQuadtree);

            StateManager = new Device9StateManager(Device9);

            arrow = new MetaModel
            {
                HasAlpha         = true,
                IsAxialBillboard = true,
                AxialDirection   = new Vector3(0.5f, 0.5f, 0),
                XMesh            = new Graphics.Content.MeshFromFile("Arrow.x"),
                Texture          = new TextureFromFile("green.png"),
                Visible          = Priority.High,
                World            = Matrix.Identity,
            };

            direction = new Vector3(1, 0, 0);

            axialBillboard = new MetaModel
            {
                HasAlpha         = true,
                IsAxialBillboard = true,
                AxialDirection   = direction,
                XMesh            = new MeshConcretize
                {
                    MeshDescription = new Graphics.Software.Meshes.IndexedPlane
                    {
                        Facings  = Facings.Frontside | Facings.Backside,
                        Position = new Vector3(-0.5f, -0.5f, 0),
                        Size     = new Vector2(1, 1),
                        UVMin    = Vector2.Zero,
                        UVMax    = new Vector2(1, 1)
                    },
                    Layout = global::Graphics.Software.Vertex.PositionNormalTexcoord.Instance
                },
                Texture = new TextureFromFile("Models/Effects/MuzzleFlash1.png"),
                World   = Matrix.RotationX((float)Math.PI / 2.0f) * Matrix.RotationY((float)Math.PI / 2.0f) * Matrix.Translation(direction * 0.5f)
            };

            rand = new Random();

            //axialBillboard.World.Invert();

            nBillboards = 1;
            billboards  = new Entity[nBillboards];
            directions  = new Vector3[nBillboards];

            for (int i = 0; i < nBillboards; i++)
            {
                directions[i] = new Vector3((float)rand.NextDouble() * 2 - 1, (float)rand.NextDouble() * 2 - 1, (float)rand.NextDouble() * 2 - 1);
            }

            InputHandler = new WalkaroundCameraInputHandler
            {
                Camera = (LookatCartesianCamera)Scene.Camera
            };

            Renderer = new Graphics.Renderer.Renderer(Device9)
            {
                Scene = Scene, StateManager = StateManager, Settings = new Graphics.Renderer.Settings {
                    FogDistance = 50000, WaterLevel = 0
                }
            };
            Renderer.Initialize(this);

            sceneRendererConnector = new SortedTestSceneRendererConnector
            {
                Renderer = Renderer,
                Scene    = Scene
            };
            sceneRendererConnector.Initialize();

            for (int i = 0; i < nBillboards; i++)
            {
                Scene.Add(billboards[i] = new Entity
                {
                    MainGraphic             = axialBillboard,
                    VisibilityLocalBounding = Vector3.Zero,
                    WorldMatrix             = Matrix.Identity
                });
            }
        }
示例#7
0
        public override void Init()
        {
            Content.ContentPath = "Data";

            scene        = new Scene();
            scene.View   = this;
            scene.Camera = new LookatCartesianCamera
            {
                Position = new Vector3(-5, 5, 5),
            };

            foreach (var v in scene.AllEntities)
            {
                v.VisibilityLocalBounding = Content.Acquire <Graphics.Content.StructBoxer <BoundingBox> >(v.MainGraphic).Value;
            }

            var stateManager = new Device9StateManager(Device9);

            renderer = new Graphics.Renderer.Renderer(Device9)
            {
                Scene = scene, StateManager = stateManager
            };
            renderer.Initialize(this);

            sceneRendererConnector = new SortedTestSceneRendererConnector
            {
                Scene    = scene,
                Renderer = renderer
            };
            sceneRendererConnector.Initialize();

            editor = new Graphics.Editors.SceneEditor {
                Scene = scene
            };
            editorRenderer = new Graphics.Editors.SceneEditor.Renderer9(editor)
            {
                BoundingVolumesRenderer = new BoundingVolumesRenderer
                {
                    StateManager = stateManager,
                    View         = this
                }
            };

            InputHandler = editor;

            Entity e;

            scene.Add(e = new Entity
            {
                MainGraphic = new MetaModel
                {
                    XMesh   = new MeshFromFile("Models/Props/Barrel1.x"),
                    Texture = new TextureFromFile("Models/Props/Barrel1.png"),
                    World   = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Translation(1, 0, 0)
                },
            });
            e.VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)e.MainGraphic);
            e.PickingLocalBounding    = CreateBoundingMeshFromModel(e, (MetaModel)e.MainGraphic);

            scene.Add(e = new Entity
            {
                MainGraphic = new MetaModel
                {
                    SkinnedMesh = new SkinnedMeshFromFile("Models/Props/Bridge1.x"),
                    Texture     = new TextureFromFile("Models/Props/Bridge1.png"),
                    World       = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya *
                                  Matrix.Translation(3, 0, 0)
                },
            });
            e.VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)e.MainGraphic);
            e.PickingLocalBounding    = CreateBoundingMeshFromModel(e, (MetaModel)e.MainGraphic);
        }
示例#8
0
        public override void Init()
        {
            Content.ContentPath = "Data";

            scene        = new Scene();
            scene.View   = this;
            scene.Camera = new LookatCartesianCamera()
            {
                Position    = new Vector3(-5, 5, 5),
                AspectRatio = AspectRatio
            };


            foreach (var v in scene.AllEntities)
            {
                v.VisibilityLocalBounding = Vector3.Zero;
            }

            Device9StateManager sm = new Device9StateManager(Device9);

            renderer = new Graphics.Renderer.Renderer(Device9)
            {
                Scene = scene, StateManager = sm
            };
            renderer.Initialize(this);
            sceneRendererConnector = new SortedTestSceneRendererConnector
            {
                Scene    = scene,
                Renderer = renderer
            };
            sceneRendererConnector.Initialize();

            bvr = new BoundingVolumesRenderer
            {
                View         = this,
                StateManager = sm
            };

            BVEntity t;

            scene.Add(t = new BVEntity
            {
                MainGraphic = new MetaModel
                {
                    XMesh   = new MeshFromFile("Models/Props/Barrel1.x"),
                    Texture = new TextureFromFile("Models/Props/Barrel1.png"),
                    World   = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya,
                },
                WorldMatrix = Matrix.Translation(1, 0, 0)
            });
            t.BoundingVolume = Graphics.Boundings.Transform(new Graphics.MetaBoundingBox {
                Mesh = ((MetaModel)t.MainGraphic).XMesh
            },
                                                            ((MetaModel)t.MainGraphic).World);
            scene.Add(t = new BVEntity
            {
                MainGraphic = new MetaModel
                {
                    SkinnedMesh = new SkinnedMeshFromFile("Models/Props/Bridge1.x"),
                    Texture     = new TextureFromFile("Models/Props/Bridge1.png"),
                    World       = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya
                },
                WorldMatrix = Matrix.Translation(3, 0, 0)
            });
            scene.Add(t = new BVEntity
            {
                MainGraphic = new MetaModel
                {
                    SkinnedMesh = new SkinnedMeshFromFile("Models/Props/Bridge1.x"),
                    Texture     = new TextureFromFile("Models/Props/Bridge1.png"),
                    World       = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya
                },
                WorldMatrix = Matrix.Translation(-3, -3, 0)
            });
            t.BoundingVolume = Vector3.Zero;
        }
示例#9
0
        public override void Init()
        {
            Content.ContentPath = "Data";

            Instance = this;

            Scene        = new Scene();
            Scene.View   = this;
            Scene.Camera = new LookatCartesianCamera()
            {
                Position    = new Vector3(10, 10, 10),
                Lookat      = Vector3.Zero,
                ZFar        = 10000,
                AspectRatio = AspectRatio
            };
            sceneQuadtree = new Common.Quadtree <Entity>(0, 0, 100, 100, 10);
            sbau          = new SceneBVHAutoSyncer(Scene, sceneQuadtree);

            StateManager = new Device9StateManager(Device9);

            int nVertices = 10;
            int nFaces    = nVertices * 2 - 4;
            int nIndices  = nFaces * 3;

            List <int> indices = new List <int>();
            List <Graphics.Software.Vertex.Position3Normal3Texcoord3> vertices = new List <Graphics.Software.Vertex.Position3Normal3Texcoord3>();

            for (int i = 0; i < (nVertices / 2) - 1; i++)
            {
                indices.Add(i * 2);
                indices.Add(i * 2 + 2);
                indices.Add(i * 2 + 1);

                indices.Add(i * 2 + 1);
                indices.Add(i * 2 + 2);
                indices.Add(i * 2 + 3);

                indices.Add(i * 2 + 0);
                indices.Add(i * 2 + 1);
                indices.Add(i * 2 + 3);

                indices.Add(i * 2 + 0);
                indices.Add(i * 2 + 3);
                indices.Add(i * 2 + 2);
            }

            for (int i = 0; i < nVertices / 2; i++)
            {
                float texturecoord = 1 - ((float)i / (float)nVertices);

                if (texturecoord > 0.99f)
                {
                    texturecoord = 0.99f;
                }

                vertices.Add(new Graphics.Software.Vertex.Position3Normal3Texcoord3(Vector3.UnitX * i, Vector3.Zero, new Vector3(texturecoord, 1, 0)));
                vertices.Add(new Graphics.Software.Vertex.Position3Normal3Texcoord3(Vector3.UnitX * i + Vector3.UnitY * 4.0f, Vector3.Zero, new Vector3(texturecoord, 0, 0)));
            }

            arrow = new MetaModel
            {
                HasAlpha = true,
                Opacity  = 0.4f,
                XMesh    = new MeshConcretize
                {
                    Mesh = new Graphics.Software.Mesh
                    {
                        IndexBuffer        = new Graphics.Software.IndexBuffer(indices.ToArray()),
                        VertexBuffer       = new VertexBuffer <Graphics.Software.Vertex.Position3Normal3Texcoord3>(vertices.ToArray()),
                        NVertices          = nVertices,
                        NFaces             = nFaces,
                        VertexStreamLayout = global::Graphics.Software.Vertex.Position3Normal3Texcoord3.Instance,
                    },
                    Layout = global::Graphics.Software.Vertex.PositionNormalTexcoord.Instance
                },
                Texture = new TextureFromFile("green.png"),
            };

            InputHandler = new WalkaroundCameraInputHandler
            {
                Camera = (LookatCartesianCamera)Scene.Camera
            };

            Renderer = new Graphics.Renderer.Renderer(Device9)
            {
                Scene = Scene, StateManager = StateManager, Settings = new Graphics.Renderer.Settings {
                    FogDistance = 50000, WaterLevel = 0
                }
            };
            Renderer.Initialize(this);

            sceneRendererConnector = new SortedTestSceneRendererConnector
            {
                Renderer = Renderer,
                Scene    = Scene
            };
            sceneRendererConnector.Initialize();

            Scene.Add(new Entity
            {
                MainGraphic             = arrow,
                VisibilityLocalBounding = Vector3.Zero,
            });
        }