コード例 #1
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }
            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _sky = new Sky(Device, "Textures/snowcube1024.dds", 5000.0f);

            _texMgr = new TextureManager();
            _texMgr.Init(Device);

            _waves = new Waves();
            _waves.Init(Device, _texMgr, 40, 60);


            BuildShapeGeometryBuffers();
            BuildSkullGeometryBuffers();


            return(true);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: virus-404/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            _waves = new Waves();
            _waves.Init(160, 160, 1.0f, 0.03f, 5.0f, 0.3f);

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _grassMapSRV = ShaderResourceView.FromFile(Device, "Textures/grass.dds");
            _wavesMapSRV = ShaderResourceView.FromFile(Device, "Textures/water2.dds");
            _boxMapSRV   = ShaderResourceView.FromFile(Device, "Textures/WireFence.dds");

            var filenames = new [] { "Textures/tree0.dds", "Textures/tree1.dds", "Textures/tree2.dds", "Textures/tree3.dds" };

            _treeTextureMapArraySRV = Util.CreateTexture2DArraySRV(Device, ImmediateContext, filenames, Format.R8G8B8A8_UNorm);

            BuildLandGeometryBuffers();
            BuildWaveGeometryBuffers();
            BuildCrateGeometryBuffers();
            BuildTreeSpritesBuffers();

            Window.KeyDown += SwitchRenderState;

            return(true);
        }
コード例 #3
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            _waves = new Waves();
            _waves.Init(160, 160, 1.0f, 0.03f, 5.0f, 0.3f);

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _grassMapSRV = ShaderResourceView.FromFile(Device, "Textures/grass.dds");
            _wavesMapSRV = ShaderResourceView.FromFile(Device, "Textures/water2.dds");
            _boxMapSRV   = ShaderResourceView.FromFile(Device, "Textures/WireFence.dds");

            BuildLandGeometryBuffers();
            BuildWaveGeometryBuffers();
            BuildCrateGeometryBuffers();

            Window.KeyDown += SwitchRenderState;

            return(true);
        }
コード例 #4
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _texMgr = new TextureManager();
            _texMgr.Init(Device);

            _bunnyModel = BasicModel.LoadSdkMesh(Device, _texMgr, "Models/bunny.sdkmesh", "Textures");

            _bunnyInstance = new BasicModelInstance(_bunnyModel);

            _effect = new DirectionalLightingEffect(Device, "FX/forwardLight.fxo");

            var passDesc = _effect.Ambient.GetPassByIndex(0).Description;

            _layout = new InputLayout(Device, passDesc.Signature, InputLayoutDescriptions.PosNormalTexTan);

            AddUIElements();

            return(true);
        }
コード例 #5
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);
            Patch.InitPatchData(Terrain.CellsPerPatch, Device);

            _sky = new Sky(Device, "Textures/grasscube1024.dds", 5000.0f);

            var tii = new InitInfo {
                HeightMapFilename = null,
                LayerMapFilename0 = "textures/grass.dds",
                LayerMapFilename1 = "textures/darkdirt.dds",
                LayerMapFilename2 = "textures/stone.dds",
                LayerMapFilename3 = "Textures/lightdirt.dds",
                LayerMapFilename4 = "textures/snow.dds",
                BlendMapFilename  = null,
                HeightScale       = 50.0f,
                HeightMapWidth    = 2049,
                HeightMapHeight   = 2049,
                CellSpacing       = 0.5f,

                Seed         = 0,
                NoiseSize1   = 3.0f,
                Persistence1 = 0.7f,
                Octaves1     = 7,
                NoiseSize2   = 2.5f,
                Persistence2 = 0.8f,
                Octaves2     = 3,
            };

            _terrain = new Terrain();
            _terrain.Init(Device, ImmediateContext, tii);

            _camera.Height = _terrain.Height;

            AddUIElements();

            _camera.SetLens(0.25f * MathF.PI, AspectRatio, 1.0f, 1000.0f);
            _ssao = new Ssao(Device, ImmediateContext, ClientWidth, ClientHeight, _camera.FovY, _camera.FarZ);

            _whiteTex = ShaderResourceView.FromFile(Device, "Textures/white.dds");


            _sMap = new ShadowMap(Device, SMapSize, SMapSize);

            _sceneBounds = new BoundingSphere(new Vector3(), MathF.Sqrt(_terrain.Width * _terrain.Width + _terrain.Depth * _terrain.Depth) / 2);

            _minimap = new Minimap(Device, ImmediateContext, MinimapSize, MinimapSize, _terrain, _camera);

            return(true);
        }
コード例 #6
0
ファイル: VoronoiMapDemo.cs プロジェクト: mrommel/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            BuildMapGeomertryBuffers();
            return(true);
        }
コード例 #7
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }
            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _texMgr = new TextureManager();
            _texMgr.Init(Device);

            _gridModel = new BasicModel();
            _gridModel.CreateGrid(Device, 20, 20, 40, 40);
            _gridModel.Materials[0] = new Material {
                Diffuse = Color.SaddleBrown, Specular = new Color4(16, .9f, .9f, .9f)
            };
            _gridModel.DiffuseMapSRV[0] = _texMgr.CreateTexture("Textures/floor.dds");
            _gridModel.NormalMapSRV[0]  = _texMgr.CreateTexture("textures/floor_nmap.dds");

            _sphereModel = new BasicModel();
            _sphereModel.CreateSphere(Device, 0.3f, 5, 4);
            _sphereModel.Materials[0] = new Material {
                Ambient = Color.Blue, Diffuse = Color.Blue, Specular = new Color4(64.0f, 1.0f, 1.0f, 1.0f)
            };
            _sphereModel.NormalMapSRV[0] = _texMgr.CreateTexture("Textures/stones_nmap.dds");

            _cylinderModel = new BasicModel();
            _cylinderModel.CreateCylinder(Device, 1, 1, 3, 20, 20);
            _cylinderModel.Materials[0] = new Material {
                Ambient = Color.Green, Diffuse = Color.Green, Specular = new Color4(64.0f, 1.0f, 1.0f, 1.0f)
            };
            _cylinderModel.NormalMapSRV[0] = _texMgr.CreateTexture("Textures/stones_nmap.dds");

            _grid = new BasicModelInstance(_gridModel)
            {
                TexTransform = Matrix.Scaling(10, 10, 1),
                World        = Matrix.Scaling(10, 1, 10) * Matrix.Translation(0, 0, 90)
            };

            _sphere = new BasicModelInstance(_sphereModel);

            _cylinder = new BasicModelInstance(_cylinderModel)
            {
                World = Matrix.Translation(0, 1.5f, 0)
            };

            return(true);
        }
コード例 #8
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);
            Patch.InitPatchData(Terrain.CellsPerPatch, Device);

            _sky = new Sky(Device, "Textures/grasscube1024.dds", 5000.0f);

            var tii = new InitInfo {
                HeightMapFilename = null,
                LayerMapFilename0 = "textures/grass.dds",
                LayerMapFilename1 = "textures/darkdirt.dds",
                LayerMapFilename2 = "textures/stone.dds",
                LayerMapFilename3 = "Textures/lightdirt.dds",
                LayerMapFilename4 = "textures/snow.dds",
                BlendMapFilename  = null,
                HeightScale       = 50.0f,
                HeightMapWidth    = 2049,
                HeightMapHeight   = 2049,
                CellSpacing       = 0.5f,

                Seed         = 0,
                NoiseSize1   = 1.0f,
                Persistence1 = 0.7f,
                Octaves1     = 7,
                NoiseSize2   = 2.5f,
                Persistence2 = 0.8f,
                Octaves2     = 3
            };

            _terrain = new Terrain();
            _terrain.Init(Device, ImmediateContext, tii);

            _camera.Height = _terrain.Height;

            AddUIElements();

            return(true);
        }
コード例 #9
0
ファイル: AssimpModelDemo.cs プロジェクト: mrommel/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _texMgr = new TextureManager();
            _texMgr.Init(Device);

            _treeModel = new BasicModel(Device, _texMgr, "Models/tree.x", "Textures");

            _modelInstance = new BasicModelInstance(_treeModel)
            {
                World = Matrix.RotationX(MathF.PI / 2)
            };

            _stoneModel    = new BasicModel(Device, _texMgr, "Models/stone.x", "Textures");
            _stoneInstance = new BasicModelInstance(_stoneModel)
            {
                World = Matrix.Scaling(0.1f, 0.1f, 0.1f) * Matrix.Translation(2, 0, 2)
            };

            _dwarfModel = new BasicModel(Device, _texMgr, "Models/Bob.md5mesh", "Textures", true);
            for (int i = 0; i < _dwarfModel.Materials.Count; i++)
            {
                _dwarfModel.Materials[i] = new Material()
                {
                    Ambient  = Color.DarkGray,
                    Diffuse  = Color.White,
                    Specular = new Color4(128, 1f, 1.0f, 1.0f)
                };
            }

            _dwarfInstance = new BasicModelInstance(_dwarfModel)
            {
                World = Matrix.RotationX(-MathF.PI / 2) * Matrix.Scaling(0.05f, 0.05f, 0.05f) * Matrix.Translation(4, 0, 4)
            };

            return(true);
        }
コード例 #10
0
ファイル: PointLightDemo.cs プロジェクト: virus-404/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _texMgr = new TextureManager();
            _texMgr.Init(Device);

            _bunnyModel = BasicModel.LoadSdkMesh(Device, _texMgr, "Models/bunny.sdkmesh", "Textures");

            _bunnyInstance = new BasicModelInstance(_bunnyModel);

            _effect = new FowardLightingEffect(Device, "FX/ForwardLight.fxo");

            var blendDesc = new BlendStateDescription {
                AlphaToCoverageEnable  = false,
                IndependentBlendEnable = false
            };

            blendDesc.RenderTargets[0].BlendEnable           = true;
            blendDesc.RenderTargets[0].SourceBlend           = BlendOption.One;
            blendDesc.RenderTargets[0].DestinationBlend      = BlendOption.One;
            blendDesc.RenderTargets[0].BlendOperation        = BlendOperation.Add;
            blendDesc.RenderTargets[0].SourceBlendAlpha      = BlendOption.One;
            blendDesc.RenderTargets[0].DestinationBlendAlpha = BlendOption.One;
            blendDesc.RenderTargets[0].BlendOperationAlpha   = BlendOperation.Add;
            blendDesc.RenderTargets[0].RenderTargetWriteMask = ColorWriteMaskFlags.All;

            _additiveBlend = BlendState.FromDescription(Device, blendDesc);


            var passDesc = _effect.Ambient.GetPassByIndex(0).Description;

            _layout = new InputLayout(Device, passDesc.Signature, InputLayoutDescriptions.PosNormalTexTan);

            AddUIElements();

            return(true);
        }
コード例 #11
0
ファイル: FireworksDemo.cs プロジェクト: virus-404/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }
            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _sky = new Sky(Device, "Textures/grasscube1024.dds", 5000.0f);

            _texMgr = new TextureManager();
            _texMgr.Init(Device);

            _gridModel = new BasicModel();
            _gridModel.CreateGrid(Device, 20, 20, 40, 40);
            _gridModel.Materials[0] = new Material {
                Diffuse = Color.LightGray, Specular = new Color4(16, .9f, .9f, .9f)
            };
            _gridModel.DiffuseMapSRV[0] = _texMgr.CreateTexture("Textures/floor.dds");
            _gridModel.NormalMapSRV[0]  = _texMgr.CreateTexture("textures/floor_nmap.dds");

            _grid = new BasicModelInstance(_gridModel)
            {
                TexTransform = Matrix.Scaling(10, 10, 1),
                World        = Matrix.Scaling(10, 1, 10)
            };
            InitFireworksRules();
            _cylinderModel = new BasicModel();
            _cylinderModel.CreateCylinder(Device, 1, 1, 3, 20, 20);
            _cylinderModel.Materials[0] = new Material {
                Ambient = Color.Green, Diffuse = Color.Green, Specular = new Color4(64.0f, 1.0f, 1.0f, 1.0f)
            };
            _cylinderModel.DiffuseMapSRV[0] = _texMgr.CreateTexture("Textures/stones.dds");
            _cylinderModel.NormalMapSRV[0]  = _texMgr.CreateTexture("Textures/stones_nmap.dds");

            _cylinder = new BasicModelInstance(_cylinderModel)
            {
                World = Matrix.Translation(0, 1.5f, 0)
            };

            return(true);
        }
コード例 #12
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }
            Enable4XMsaa = true;
            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _sky = new Sky(Device, "Textures/grasscube1024.dds", 5000.0f);

            var tii = new InitInfo {
                HeightMapFilename = "Textures/terrain.raw",
                LayerMapFilename0 = "textures/grass.dds",
                LayerMapFilename1 = "textures/darkdirt.dds",
                LayerMapFilename2 = "textures/stone.dds",
                LayerMapFilename3 = "Textures/lightdirt.dds",
                LayerMapFilename4 = "textures/snow.dds",
                BlendMapFilename  = "textures/blend.dds",
                HeightScale       = 50.0f,
                HeightMapWidth    = 2049,
                HeightMapHeight   = 2049,
                CellSpacing       = 0.5f
            };

            Patch.InitPatchData(Terrain.CellsPerPatch, Device);
            _terrain = new Terrain();
            _terrain.Init(Device, ImmediateContext, tii);

            _randomTex = Util.CreateRandomTexture1DSRV(Device);

            _flareTexSRV = Util.CreateTexture2DArraySRV(Device, ImmediateContext, new[] { "Textures/flare0.dds" }, Format.R8G8B8A8_UNorm);
            _fire        = new ParticleSystem();
            _fire.Init(Device, Effects.FireFX, _flareTexSRV, _randomTex, 500);
            _fire.EmitPosW = new Vector3(0, 1.0f, 120.0f);

            _rainTexSRV = Util.CreateTexture2DArraySRV(Device, ImmediateContext, new[] { "Textures/raindrop.dds" }, Format.R8G8B8A8_UNorm);
            _rain       = new ParticleSystem();
            _rain.Init(Device, Effects.RainFX, _rainTexSRV, _randomTex, 10000);

            return(true);
        }
コード例 #13
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }
            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _sky = new Sky(Device, "Textures/desertcube1024.dds", 5000.0f);

            _ssao = new Ssao(Device, ImmediateContext, ClientWidth, ClientHeight, _camera.FovY, _camera.FarZ);

            BuildShapeGeometryBuffers();
            BuildSkullGeometryBuffers();
            BuildScreenQuadGeometryBuffers();

            return(true);
        }
コード例 #14
0
ファイル: ShadowsDemo.cs プロジェクト: mrommel/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }
            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _sky  = new Sky(Device, "Textures/desertcube1024.dds", 5000.0f);
            _sMap = new ShadowMap(Device, SMapSize, SMapSize);



            BuildShapeGeometryBuffers();
            BuildSkullGeometryBuffers();
            BuildScreenQuadGeometryBuffers();


            return(true);
        }
コード例 #15
0
ファイル: Program.cs プロジェクト: mrommel/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _floorDiffuseMapSRV  = ShaderResourceView.FromFile(Device, "Textures/checkboard.dds");
            _wallDiffuseMapSRV   = ShaderResourceView.FromFile(Device, "Textures/brick01.dds");
            _mirrorDiffuseMapSRV = ShaderResourceView.FromFile(Device, "Textures/ice.dds");

            BuildRoomGeometryBuffers();
            BuildSkullGeometryBuffers();

            Window.KeyDown += SwitchRenderState;

            return(true);
        }
コード例 #16
0
ファイル: Program.cs プロジェクト: mrommel/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }
            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _sky = new Sky(Device, "Textures/snowcube1024.dds", 5000.0f);

            _stoneTexSRV       = ShaderResourceView.FromFile(Device, "Textures/floor.dds");
            _brickTexSRV       = ShaderResourceView.FromFile(Device, "Textures/bricks.dds");
            _stoneNormalTexSRV = ShaderResourceView.FromFile(Device, "Textures/floor_nmap.dds");
            _brickNormalTexSRV = ShaderResourceView.FromFile(Device, "Textures/bricks_nmap.dds");

            BuildShapeGeometryBuffers();
            BuildSkullGeometryBuffers();

            Window.KeyDown += SwitchMode;

            return(true);
        }
コード例 #17
0
ファイル: GeosphereDemo.cs プロジェクト: virus-404/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }
            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _texMgr = new TextureManager();
            _texMgr.Init(Device);


            _geosphereModel = new BasicModel();
            _geosphereModel.CreateGeosphere(Device, 5, _subdivisions);
            _geosphereModel.Materials[0] = _material;

            _sphereModel = new BasicModel();
            _sphereModel.CreateSphere(Device, 5, 20, 20);
            _sphereModel.Materials[0] = new Material()
            {
                Ambient  = Color.Blue,
                Diffuse  = Color.Red,
                Specular = new Color4(16.0f, 0.75f, 0.75f, 0.75f)
            };

            _geosphere = new BasicModelInstance(_geosphereModel)
            {
                World = Matrix.Identity
            };
            _sphere = new BasicModelInstance(_sphereModel);


            return(true);
        }
コード例 #18
0
ファイル: SdkMeshLoadingDemo.cs プロジェクト: virus-404/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _texMgr = new TextureManager();
            _texMgr.Init(Device);

            _bunnyModel = BasicModel.LoadSdkMesh(Device, _texMgr, "Models/bunny.sdkmesh", "Textures");

            _bunnyInstance = new BasicModelInstance(_bunnyModel)
            {
                World = Matrix.Scaling(0.1f, 0.1f, 0.1f)
            };


            return(true);
        }
コード例 #19
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);
            Patch.InitPatchData(Terrain.CellsPerPatch, Device);

            _sky = new Sky(Device, "Textures/grasscube1024.dds", 5000.0f);

            var tii = new InitInfo {
                HeightMapFilename = null,
                LayerMapFilename0 = "textures/grass.dds",
                LayerMapFilename1 = "textures/darkdirt.dds",
                LayerMapFilename2 = "textures/stone.dds",
                LayerMapFilename3 = "Textures/lightdirt.dds",
                LayerMapFilename4 = "textures/snow.dds",
                BlendMapFilename  = null,
                HeightScale       = 50.0f,
                HeightMapWidth    = 2049,
                HeightMapHeight   = 2049,
                CellSpacing       = 0.5f,

                Seed         = 0,
                NoiseSize1   = 3.0f,
                Persistence1 = 0.7f,
                Octaves1     = 7,
                NoiseSize2   = 2.5f,
                Persistence2 = 0.8f,
                Octaves2     = 3,
            };

            _terrain = new Terrain();
            //_terrain.DebugQuadTree = true;
            _terrain.Init(Device, ImmediateContext, tii);

            _camera.Height = _terrain.Height;


            _camera.SetLens(0.25f * MathF.PI, AspectRatio, 1.0f, 1000.0f);
            _ssao = new Ssao(Device, ImmediateContext, ClientWidth, ClientHeight, _camera.FovY, _camera.FarZ);

            _whiteTex = ShaderResourceView.FromFile(Device, "Textures/white.dds");

            _sMap = new ShadowMap(Device, SMapSize, SMapSize);

            _sceneBounds = new BoundingSphere(new Vector3(), MathF.Sqrt(_terrain.Width * _terrain.Width + _terrain.Depth * _terrain.Depth) / 2);

            _minimap = new Minimap(Device, ImmediateContext, MinimapSize, MinimapSize, _terrain, _camera);

            _sphereModel = new BasicModel();
            _sphereModel.CreateSphere(Device, 0.25f, 10, 10);
            _sphereModel.Materials[0] = new Material {
                Ambient  = Color.Red,
                Diffuse  = Color.Red,
                Specular = new Color4(32, 1.0f, 1.0f, 1.0f)
            };
            _sphereModel.DiffuseMapSRV[0] = _whiteTex;

            _sphere    = new BasicModelInstance(_sphereModel);
            _spherePos = new Vector3(float.MaxValue);
            _path      = null;
            return(true);
        }
コード例 #20
0
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _sky = new Sky(Device, "Textures/grasscube1024.dds", 5000.0f);
            Patch.InitPatchData(Terrain.CellsPerPatch, Device);
            var tii = new InitInfo {
                HeightMapFilename = "Textures/terrain.raw",
                LayerMapFilename0 = "textures/grass.dds",
                LayerMapFilename1 = "textures/darkdirt.dds",
                LayerMapFilename2 = "textures/stone.dds",
                LayerMapFilename3 = "Textures/lightdirt.dds",
                LayerMapFilename4 = "textures/snow.dds",
                BlendMapFilename  = "textures/blend.dds",
                HeightScale       = 50.0f,
                HeightMapWidth    = 2049,
                HeightMapHeight   = 2049,
                CellSpacing       = 0.5f
            };

            _terrain = new Terrain();
            _terrain.Init(Device, ImmediateContext, tii);

            _camera.Height = _terrain.Height;
            _txMgr         = new TextureManager();
            _txMgr.Init(Device);
            _treeModel     = new BasicModel(Device, _txMgr, "Models/tree.x", "Textures");
            _treeInstances = new List <BasicModelInstance>();


            for (var i = 0; i < NumTrees; i++)
            {
                var good = false;
                var x    = MathF.Rand(0, _terrain.Width);
                var z    = MathF.Rand(0, _terrain.Depth);
                while (!good)
                {
                    if (_terrain.Height(x, z) < 12.0f)
                    {
                        good = true;
                    }
                    x = MathF.Rand(-_terrain.Width / 2, _terrain.Width / 2);
                    z = MathF.Rand(-_terrain.Depth / 2, _terrain.Depth / 2);
                }
                var treeInstance = new BasicModelInstance(_treeModel)
                {
                    World = Matrix.RotationX(MathF.PI / 2) * Matrix.Translation(x, _terrain.Height(x, z), z)
                };
                _treeInstances.Add(treeInstance);
            }
            BuildInstancedBuffer();

            return(true);
        }
コード例 #21
0
ファイル: SkinnedModelDemo.cs プロジェクト: virus-404/dx11
        public override bool Init()
        {
            if (!base.Init())
            {
                return(false);
            }

            Effects.InitAll(Device);
            InputLayouts.InitAll(Device);
            RenderStates.InitAll(Device);

            _texMgr = new TextureManager();
            _texMgr.Init(Device);

            _drone         = new SkinnedModel(Device, _texMgr, "Models/drone.x", "Textures", true);
            _droneInstance = new SkinnedModelInstance(
                "Attack",
                Matrix.RotationY(MathF.PI),
                _drone

                );
            foreach (var clip in _droneInstance.Clips)
            {
                _droneInstance.AddClip(clip);
            }
            _droneInstance.LoopClips = true;


            _mage = new SkinnedModel(Device, _texMgr, "Models/magician.x", "textures", true);

            _mageInstance = new SkinnedModelInstance(
                "Attack",
                Matrix.RotationY(MathF.PI) * Matrix.Translation(4.0f, 0, 0),
                _mage
                );
            foreach (var clip in _mageInstance.Clips)
            {
                _mageInstance.AddClip(clip);
            }
            _mageInstance.LoopClips = true;

            _soldier         = new SkinnedModel(Device, _texMgr, "Models/soldier.x", "Textures", true);
            _soldierInstance = new SkinnedModelInstance(
                "Attack",
                Matrix.RotationY(MathF.PI) * Matrix.Translation(10, 0, 0),
                _soldier
                );

            foreach (var clip in _soldierInstance.Clips)
            {
                _soldierInstance.AddClip(clip);
            }
            _soldierInstance.LoopClips = true;

            _grid = new BasicModel();
            _grid.CreateGrid(Device, 30, 30, 60, 60);
            _grid.DiffuseMapSRV[0] = (_texMgr.CreateTexture("Textures/floor.dds"));
            _grid.NormalMapSRV[0]  = (_texMgr.CreateTexture("Textures/floor_nmap.dds"));
            _gridInstance          = new BasicModelInstance(_grid)
            {
                World = Matrix.Translation(0, -1.5f, 0)
            };

            return(true);
        }