コード例 #1
0
        static void Main(string[] args)
        {
            ApplicationDX11 application = new ApplicationDX11(1000, 1000);

            Camera.Main.m_transform.LookAt(new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 0.0f, -2.0f));
            Entity entity = new Entity();

            entity.AddComponent <KmeanBehavior>();
            application.Run();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            ApplicationDX11 application = new ApplicationDX11(1000, 1000);

            Camera.Main.m_transform.LookAt(new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 0.0f, -2.0f));
            Camera.Main.SetProjection(new OrthoProjection(2, 2, 0, 100));
            //Camera.Main.Entity.AddComponent<Trackview>();
            Entity entity = new Entity();

            entity.AddComponent <DelaunayBehaviour>();
            application.Run();
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: ulisses177/Work
        static void Main()
        {
            ApplicationDX11 application = new ApplicationDX11(1280, 720);

            Camera.Main.Entity.transform_.LookAt(new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, -1.0f));

            Entity enti = new Entity();

            enti.AddComponent <LSystemBehavior>();

            application.Run();
        }
コード例 #4
0
        static void Main()
        {
            System.Windows.Forms.Application.EnableVisualStyles();
            System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);

            ApplicationDX11 application = new ApplicationDX11(512, 512);

            application.Isglowing = false;


            Troll3D.View.Main.AddBehavior <Trackview>().Init(10.0f, 0.01f, 0.01f);
            application.scene_.Append(new BitmapImage("Lenna.png")).AddBehavior(new ImageBehaviour());
            application.Run();
        }
コード例 #5
0
        static void Main(string[] args)
        {
            ApplicationDX11 application = new ApplicationDX11(1280, 720);

            Camera.Main.SetProjection(new OrthoProjection(1.6f, 0.9f, 0.0f, 100.0f));
            Camera.Main.m_transform.LookAt(new Vector3(0.0f, 0.0f, 1.0f), Vector3.Zero);

            Camera.Main.Entity.AddComponent <Trackview>();

            Entity entity = new Entity();

            entity.AddComponent <PerlinBehaviour>().Init(1280, 720);

            application.Run();
        }
コード例 #6
0
        static void Main()
        {
            ApplicationDX11 application = new ApplicationDX11(1280, 720);

            Camera.Main.SetProjection(new OrthoProjection(1.0f, 1.0f, 0.0f, 100.0f));

            Camera.Main.m_transform.Update();;

            Entity       entity = new Entity();
            MazeBehavior mb     = (MazeBehavior)entity.AddComponent(new MazeBehavior());

            mb.Initialize();

            application.Run();
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: ulisses177/Work
        static void Main()
        {
            ApplicationDX11 application = new ApplicationDX11(1000, 1000);

            Camera.Main.SetProjection(new OrthoProjection(1.0f, 1.0f, 0.0f, 100.0f));
            Camera.Main.m_transform.LookAt(new Vector3(0.0f, 0.0f, 1.0f), Vector3.Zero);

            Entity    entity       = new Entity();
            Texture2D tilesetImage = ( Texture2D )Texture2D.FromFile(ApplicationDX11.Instance.Device, "E:\\dev\\c#\\Work\\Resources\\tilesetAStar.png");
            TileSet   tileset      = new TileSet(tilesetImage, 32, 32);

            TileMap tm = entity.AddComponent <TileMap>();

            tm.SetTileMap(10, 10, tileset, 0.1f, 0.1f);

            MaterialDX11 material = new MaterialDX11();

            PathfindingBehavior mb = entity.AddComponent <PathfindingBehavior>();

            application.Run();
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: ulisses177/Work
        static void Main()
        {
            ApplicationDX11 application = new ApplicationDX11(1000, 1000);

            Entity light = new Entity();

            light.transform_.Translate(10.0f, 10.0f, 0.0f);
            light.AddComponent <PointLight>();

            //Camera.Main.m_transform.LookAt( new Vector3( 0.0f, 0.0f, 1.0f ), new Vector3( 0.0f, 0.0f, -2.0f ) );
            Camera.Main.Entity.AddComponent <Trackview>();

            Entity entity = new Entity();

            entity.AddComponent <OBB>();
            MeshRenderer mr = entity.AddComponent <MeshRenderer>();

            mr.material_ = new MaterialDX11("vDefault.cso", "pDiffuse.cso", "gDefault.cso");
            mr.model_    = Cube.Mesh;
            mr.material_.SetMainColor(0.0F, 1.0f, 0.0f, 1.0f);
            entity.AddComponent <FirstCube>();


            Entity entity2 = new Entity();

            // Petit fix de mon soucis actuel, lors de la première frame, la transformation de
            // l'entité n'est pas mise à jour et la boite de collision se croit donc en (0,0,0)
            entity2.transform_.Translate(3.0f, 0.0f, 0.0F);
            entity2.transform_.Update();
            entity2.AddComponent <OBB>();
            MeshRenderer mr2 = entity2.AddComponent <MeshRenderer>();

            mr2.material_ = new MaterialDX11("vDefault.cso", "pDiffuse.cso", "gDefault.cso");
            mr2.model_    = Cube.Mesh;
            mr2.material_.SetMainColor(0.0f, 0.0F, 1.0f, 1.0f);
            entity2.AddComponent <PickableCube>();
            application.Run();
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: ulisses177/Work
        static void Main(string[] args)
        {
            ApplicationDX11 application = new ApplicationDX11(1980, 1020);

            DynamicCubemap cubemap = new DynamicCubemap(1000);

            Trackview tv = Camera.Main.Entity.AddComponent <Trackview>();

            tv.WheelSpeed = 0.002f;
            //Camera.Main.Entity.transform_.LookAt( new Vector3( 0.0f, 0.0f, 0.0f ), new Vector3( 0.0f, 5.0f, -5.0f ) );
            Camera.Main.Skybox = new Skybox(Camera.Main.Entity);

            cubemap.AddSkybox(Camera.Main.Skybox);
            Entity     light = new Entity();
            PointLight pl    = light.AddComponent <PointLight>();

            light.transform_.Translate(3.0f, 4.0f, 0.0f);
            pl.SetSpecularIntensity(40.0f);
            pl.SetIntensity(1.0F);

            Entity entity = new Entity();
            // entity.AddComponent<RotateCube>();
            MeshRenderer mr = entity.AddComponent <MeshRenderer>();

            mr.material_ = new MaterialDX11("vDefault.cso", "pEmap.cso");
            mr.material_.AddShaderResourceView(cubemap.SRV);
            mr.model_ = Sphere.Mesh(1.0f, 50, 50);
            //mr.model_ = MeshManager.LoadObj( "StanfordBunny.obj" );
            //mr.model_ = MeshManager.LoadObj( "dragon.obj" );
            //mr.model_ = MeshManager.LoadObj( "UtahTeapot.obj" );
            //mr.model_ = MeshManager.LoadObj( "Trex.OBJ" );
            //mr.model_ = MeshManager.LoadObj( "Predator.OBJ" );
            entity.transform_.SetScale(1.0f, 1.0f, 1.0f);

            SamplerState state = new SamplerState(ApplicationDX11.Instance.Device, new SamplerStateDescription()
            {
                AddressU           = TextureAddressMode.Wrap,
                AddressV           = TextureAddressMode.Wrap,
                AddressW           = TextureAddressMode.Wrap,
                BorderColor        = new Color4(0.0f, 1.0f, 0.0f, 1.0f),
                ComparisonFunction = Comparison.LessEqual,
                Filter             = Filter.MinLinearMagMipPoint,
                MaximumAnisotropy  = 0,
                MaximumLod         = 0,
                MinimumLod         = 0,
                MipLodBias         = 0
            });

            Entity       floor   = new Entity();
            MeshRenderer mrfloor = floor.AddComponent <MeshRenderer>();

            mrfloor.material_ = new MaterialDX11("vDefault.cso", "pDiffuse.cso");
            mrfloor.material_.AddTexture("E:\\dev\\c#\\Work\\Resources\\ConcreteFloor.jpg");
            mrfloor.model_ = Quad.GetMesh();

            mrfloor.material_.samplers.Add(state);
            floor.transform_.SetPosition(0.0f, -5.0f, 0.0f);
            floor.transform_.RotateEuler(0.0f, 3.1415f / 2.0f, 0.0f);
            floor.transform_.SetScale(15.0f, 15.0f, 15.0f);
            mrfloor.material_.SetTextureWidth(2.0f);
            mrfloor.material_.SetTextureHeight(2.0f);

            entity.transform_.SetPosition(0.0f, 0.0f, 0.0f);


            Entity caisse = new Entity();

            caisse.AddComponent <OBB>();
            MeshRenderer mrcaisse = caisse.AddComponent <MeshRenderer>();

            mrcaisse.material_ = new MaterialDX11("vDefault.cso", "pDiffuse.cso");
            mrcaisse.model_    = Cube.Mesh;

            mrcaisse.material_.samplers.Add(state);
            mrcaisse.material_.SetMainColor(1.0f, 0.0f, 1.0f, 1.0F);
            caisse.transform_.SetPosition(-2.0f, 0.0f, -2.0f);
            caisse.transform_.SetScale(1.0f, 1.0f, 1.0f);

            caisse.AddComponent <Crate>();

            Entity caisse2 = new Entity();

            caisse2.AddComponent <OBB>();
            MeshRenderer mrcaisse2 = caisse2.AddComponent <MeshRenderer>();

            mrcaisse2.material_ = new MaterialDX11("vDefault.cso", "pDiffuse.cso");
            mrcaisse2.material_.SetMainColor(1.0f, 0.0f, 0.0f, 1.0F);
            mrcaisse2.model_ = Cube.Mesh;

            mrcaisse2.material_.samplers.Add(state);
            caisse2.transform_.SetPosition(2.0f, 0.0f, -2.0f);
            caisse2.transform_.SetScale(1.0f, 1.0f, 1.0f);
            caisse2.AddComponent <Crate>();

            Entity caisse3 = new Entity();

            caisse3.AddComponent <OBB>();
            MeshRenderer mrcaisse3 = caisse3.AddComponent <MeshRenderer>();

            mrcaisse3.material_ = new MaterialDX11("vDefault.cso", "pDiffuse.cso");
            mrcaisse3.material_.SetMainColor(0.0f, 0.0f, 1.0f, 1.0F);
            mrcaisse3.model_ = Cube.Mesh;

            mrcaisse3.material_.samplers.Add(state);
            caisse3.transform_.SetPosition(-2.0f, 0.0f, 2.0f);
            caisse3.transform_.SetScale(1.0f, 1.0f, 1.0f);
            caisse3.AddComponent <Crate>();


            Entity caisse4 = new Entity();

            caisse4.AddComponent <OBB>();
            MeshRenderer mrcaisse4 = caisse4.AddComponent <MeshRenderer>();

            mrcaisse4.material_ = new MaterialDX11("vDefault.cso", "pDiffuse.cso");
            mrcaisse4.material_.SetMainColor(0.0f, 1.0f, 0.0f, 1.0F);
            mrcaisse4.model_ = Cube.Mesh;

            mrcaisse4.material_.samplers.Add(state);
            caisse4.transform_.SetPosition(2.0f, 0.0f, 2.0f);
            caisse4.transform_.SetScale(1.0f, 1.0f, 1.0f);
            caisse4.AddComponent <Crate>();


            application.Run();
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: ulisses177/Work
        static void Main()
        {
            ApplicationDX11 application = new ApplicationDX11(1280, 720);

            Camera.Main.Entity.AddComponent <Trackview>();

            RenderTexture renderTexture = new RenderTexture(1280, 720);

            Entity newCamera = new Entity();
            Camera cam       = newCamera.AddComponent <Camera>();

            cam.Initialize(new FrustumProjection(3.141592f / 3.0f, Troll3D.Screen.Instance.GetRatio(), 0.1f, 1000.0f));
            cam.SetRenderTarget(renderTexture);
            cam.Entity.AddComponent <Trackview>();

            // Pour éviter des soucis avec le code existant, pour l'instant, je rajoute
            // manuellement ma renderTexture à la liste des RenderTextures à mettre à jour

            ApplicationDX11.Instance.RenderTextures.Add(renderTexture);

            ////newCamera.AddComponent<CameraBehaviour>();

            ////cam.IsActive = false;
            ////cam.AddRenderTexture(100, 100);

            ////MeshRenderer mr = newCamera.AddComponent<MeshRenderer>();

            //mr = new MeshRenderer( );
            //mr.material_ = new MaterialDX11();
            //mr.model_ = ProjectionMesh.GetModel( cam.GetProjection() ) ;
            //mr.material_.SetMainColor( 1.0F, 1.0f, 1.0f, 1.0f );
            //mr.SetFillMode( SharpDX.Direct3D11.FillMode.Wireframe );

            MaterialDX11 renderMaterial = new MaterialDX11("vDefault.cso", "pUnlit.cso");

            renderMaterial.SetMainColor(0.1f, 0.3f, 0.1f, 1.0f);
            renderMaterial.AddShaderResourceView(renderTexture.SRV);

            MaterialDX11 projectorMaterial = new MaterialDX11("vDefault.cso", "pDiffuse.cso", "gDefault.cso");

            projectorMaterial.samplers.Add
            (
                new SamplerState
                (
                    ApplicationDX11.Instance.Device,
                    new SamplerStateDescription()
            {
                AddressU           = TextureAddressMode.Border,
                AddressV           = TextureAddressMode.Border,
                AddressW           = TextureAddressMode.Border,
                BorderColor        = new Color4(1.0f, 0.0f, 0.0f, 1.0f),
                ComparisonFunction = Comparison.LessEqual,
                Filter             = Filter.MinMagMipPoint,
                MaximumAnisotropy  = 0,
                MaximumLod         = sizeof(float),
                MinimumLod         = 0,
                MipLodBias         = 0
            }
                )
            );

            //MaterialDX11 testRender = new MaterialDX11("vDefault.cso", "pShowAlphaValue.cso", "gDefault.cso");

            Entity     pointLight = new Entity();
            PointLight pl         = pointLight.AddComponent <PointLight>();

            pl.SetSpecularIntensity(0.01f);
            pl.SetIntensity(1.0f);
            pointLight.transform_.SetPosition(0.0f, 20.0f, 0.0f);

            Entity cube = new Entity();

            cube.AddComponent <RotateCube>();
            MeshRenderer cubemr = cube.AddComponent <MeshRenderer>();

            cubemr.material_ = projectorMaterial;
            cubemr.material_.SetMainColor(0.5f, 0.5f, 0.5f, 1.0F);
            cubemr.model_ = Cube.Mesh;
            cube.transform_.Translate(1.0f, 0.5f, 0.0f);
            cube.transform_.SetScale(4.0f, 4.0f, 4.0f);


            Entity       sphere   = new Entity();
            MeshRenderer spheremr = sphere.AddComponent <MeshRenderer>();

            spheremr.material_ = projectorMaterial;
            spheremr.model_    = Sphere.Mesh(1.0f, 30, 30);

            Entity cube4 = new Entity();

            cube4.AddComponent <RotateCube>();
            MeshRenderer cube4mr = cube4.AddComponent <MeshRenderer>();

            cube4mr.material_ = projectorMaterial;
            cube4mr.material_.SetMainColor(0.5f, 0.5f, 0.5f, 1.0F);
            cube4mr.model_ = Cube.Mesh;
            cube4.transform_.Translate(1.0f, 5.5f, 0.0f);
            cube4.transform_.SetScale(4.0f, 4.0f, 4.0f);


            sphere.transform_.Translate(10.0f, 7.0f, 7.0f);
            sphere.transform_.RotateEuler(0.0f, 3.141592f / 2.0f, 0.0f);
            sphere.transform_.SetScale(3.0f, 3.0f, 3.0f);

            Entity       floor   = new Entity();
            MeshRenderer floormr = floor.AddComponent <MeshRenderer>();

            floormr.material_ = projectorMaterial;
            floormr.model_    = Quad.GetMesh();

            floor.transform_.RotateEuler(0.0f, 3.141592f / 2.0f, 0.0f);
            floor.transform_.SetScale(40.0f, 40.0f, 40.0f);
            floor.transform_.Translate(0.0f, 0.0f, 0.0f);

            Entity       wallN   = new Entity();
            MeshRenderer wallNmr = wallN.AddComponent <MeshRenderer>();

            wallNmr.material_ = projectorMaterial;
            wallNmr.model_    = Quad.GetMesh();
            wallN.transform_.RotateEuler(0.0f, 0.0f, 0.0f);
            wallN.transform_.SetScale(40.0f, 40.0f, 40.0f);
            wallN.transform_.Translate(0.0f, 20.0f, 20.0f);

            Entity       wallS   = new Entity();
            MeshRenderer wallSmr = wallS.AddComponent <MeshRenderer>();

            wallSmr.material_ = projectorMaterial;
            wallSmr.model_    = Quad.GetMesh();

            wallS.transform_.RotateEuler(3.141592f, 0.0f, 0.0f);
            wallS.transform_.SetScale(40.0f, 40.0f, 40.0f);
            wallS.transform_.Translate(0.0f, 20.0f, -20.0f);

            Entity       wallE   = new Entity();
            MeshRenderer wallEmr = wallE.AddComponent <MeshRenderer>();

            wallEmr.material_ = projectorMaterial;
            wallEmr.model_    = Quad.GetMesh();


            wallE.transform_.RotateEuler(-3.141592f / 2.0f, 0.0f, 0.0f);
            wallE.transform_.SetScale(40.0f, 40.0f, 40.0f);
            wallE.transform_.Translate(-20.0f, 20.0f, 0.0f);

            Entity    frontQuad = new Entity();
            FrontQuad fq        = frontQuad.AddComponent <FrontQuad>();

            fq.SetQuad(0, 0, 300, 300);
            fq.Material.SetMainColor(1.0f, 0.0f, 0.0f, 1.0f);
            fq.Material.AddShaderResourceView(renderTexture.SRV);



            ////application.scene_.Append(new BitmapImage(application.shadowmap.shaderResourceView_, testRender));

            //Entity proj = new Entity();


            //    (new Projector(
            //    cam.GetRenderTextureSRV(),
            //    new FrustumProjection(3.141592f / 3.0f,

            //        cam.GetViewport().Width / (float)cam.GetViewport().Height, 1, 80.0f))

            //    );
            //proj.transform_.Translate(0.0f, 10.0f, -10.0f);
            //proj.AddComponent<ProjectorBehavior>();
            application.Run();
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: ulisses177/Work
        static void Main()
        {
            ApplicationDX11 application = new ApplicationDX11(1280, 720);

            Camera.Main.Entity.AddComponent <Trackview>();

            MaterialDX11 projectorMaterial = new MaterialDX11("vDefault.cso", "pProjector.cso", "gDefault.cso");

            projectorMaterial.samplers.Add
            (
                new SamplerState
                (
                    ApplicationDX11.Instance.Device,
                    new SamplerStateDescription()
            {
                AddressU           = TextureAddressMode.Border,
                AddressV           = TextureAddressMode.Border,
                AddressW           = TextureAddressMode.Border,
                BorderColor        = new Color4(1.0f, 0.0f, 0.0f, 1.0f),
                ComparisonFunction = Comparison.LessEqual,
                Filter             = Filter.MinMagMipPoint,
                MaximumAnisotropy  = 0,
                MaximumLod         = sizeof(float),
                MinimumLod         = 0,
                MipLodBias         = 0
            }
                )
            );

            //MaterialDX11 testRender = new MaterialDX11("vDefault.cso", "pShowAlphaValue.cso", "gDefault.cso");

            Entity           pointLight = new Entity();
            DirectionalLight pl         = pointLight.AddComponent <DirectionalLight>();

            pl.SetSpecularIntensity(0.01f);
            pl.SetIntensity(1.0f);
            pointLight.transform_.SetPosition(0.0f, 20.0f, 0.0f);
            pointLight.transform_.RotateEuler(0.0f, 3.141592f / 1.5f, 0.0f);

            Entity       sphere   = new Entity();
            MeshRenderer spheremr = sphere.AddComponent <MeshRenderer>();

            spheremr.material_ = projectorMaterial;
            spheremr.model_    = Sphere.Mesh(1.0f, 30, 30);

            Entity       cube4   = new Entity();
            MeshRenderer cube4mr = cube4.AddComponent <MeshRenderer>();

            cube4mr.material_ = projectorMaterial;
            cube4mr.material_.SetMainColor(0.5f, 0.5f, 0.5f, 1.0F);
            cube4mr.model_ = Cube.Mesh;
            cube4.transform_.Translate(1.0f, 5.5f, 0.0f);
            cube4.transform_.SetScale(4.0f, 4.0f, 4.0f);

            sphere.transform_.Translate(10.0f, 7.0f, 7.0f);
            sphere.transform_.RotateEuler(0.0f, 3.141592f / 2.0f, 0.0f);
            sphere.transform_.SetScale(3.0f, 3.0f, 3.0f);

            Entity       floor   = new Entity();
            MeshRenderer floormr = floor.AddComponent <MeshRenderer>();

            floormr.material_ = projectorMaterial;
            floormr.model_    = Quad.GetMesh();

            floor.transform_.RotateEuler(0.0f, 3.141592f / 2.0f, 0.0f);
            floor.transform_.SetScale(40.0f, 40.0f, 40.0f);
            floor.transform_.Translate(0.0f, 0.0f, 0.0f);

            Entity       wallN   = new Entity();
            MeshRenderer wallNmr = wallN.AddComponent <MeshRenderer>();

            wallNmr.material_ = projectorMaterial;
            wallNmr.model_    = Quad.GetMesh();
            wallN.transform_.RotateEuler(0.0f, 0.0f, 0.0f);
            wallN.transform_.SetScale(40.0f, 40.0f, 40.0f);
            wallN.transform_.Translate(0.0f, 20.0f, 20.0f);

            Entity       wallS   = new Entity();
            MeshRenderer wallSmr = wallS.AddComponent <MeshRenderer>();

            wallSmr.material_ = projectorMaterial;
            wallSmr.model_    = Quad.GetMesh();

            wallS.transform_.RotateEuler(3.141592f, 0.0f, 0.0f);
            wallS.transform_.SetScale(40.0f, 40.0f, 40.0f);
            wallS.transform_.Translate(0.0f, 20.0f, -20.0f);

            Entity       wallE   = new Entity();
            MeshRenderer wallEmr = wallE.AddComponent <MeshRenderer>();

            wallEmr.material_ = projectorMaterial;
            wallEmr.model_    = Quad.GetMesh();


            wallE.transform_.RotateEuler(-3.141592f / 2.0f, 0.0f, 0.0f);
            wallE.transform_.SetScale(40.0f, 40.0f, 40.0f);
            wallE.transform_.Translate(-20.0f, 20.0f, 0.0f);

            ////application.scene_.Append(new BitmapImage(application.shadowmap.shaderResourceView_, testRender));

            Entity    proj      = new Entity();
            Projector projector = proj.AddComponent <Projector>();

            projector.SetProjection
            (
                new FrustumProjection
                (
                    3.141592f / 3.0f,
                    1.0f,
                    0.1f, 1000.0f
                )
            );

            projector.SetImage(ResourceManager.GetImageFromFile("blastoise.png"));

            MeshRenderer mrProjector = proj.AddComponent <MeshRenderer>();

            mrProjector.model_    = ProjectionMesh.GetModel(projector.Projection);
            mrProjector.material_ = new MaterialDX11();
            mrProjector.material_.SetMainColor(0.0f, 0.0f, 1.0f, 1.0f);
            mrProjector.SetFillMode(FillMode.Wireframe);


            //    )



            //    (new Projector(
            //    cam.GetRenderTextureSRV(),
            //    );
            //proj.transform_.Translate(0.0f, 10.0f, -10.0f);
            //proj.AddComponent<ProjectorBehavior>();
            application.Run();
        }
コード例 #12
0
        static void Main()
        {
            ApplicationDX11 application = new ApplicationDX11(1920, 1080);

            Camera.Main.Entity.AddComponent <Trackview>();

            //Troll3D.View.Main.AddStencilTexture(100, 100);

            Entity lightEntity = new Entity();

            DirectionalLight dl = lightEntity.AddComponent <DirectionalLight>();

            dl.SetSpecularIntensity(1.0f);
            dl.SetIntensity(1.0F);
            dl.SetAmbiantColor(new Vector4(0.0f, 0.0f, 0.0f, 1.0f));

            lightEntity.transform_.RotateEuler(0.0f, 3.141592f / 2.0f, 0.0f);
            lightEntity.transform_.SetPosition(0.0f, 50.0f, 50.0f);

            dl.AddProjection(new OrthoProjection(200.0f, 200.0f, 0.1f, 150.0f));
            dl.AddShadowMap(4000, 4000);

            lightEntity.AddComponent <LightBehaviour>();

            MaterialDX11 floorMaterial = new MaterialDX11("vDefault.cso", "pShadowMapping.cso", "gDefault.cso");

            floorMaterial.SetMainColor(0.5f, 0.5f, 0.5f, 1.0F);

            floorMaterial.samplers.Add
            (
                new SamplerState
                (
                    ApplicationDX11.Instance.Device,
                    new SamplerStateDescription()
            {
                AddressU           = TextureAddressMode.Border,
                AddressV           = TextureAddressMode.Border,
                AddressW           = TextureAddressMode.Border,
                BorderColor        = new Color4(0.0f, 0.0f, 1.0f, 1.0f),
                ComparisonFunction = Comparison.LessEqual,
                Filter             = Filter.MinMagLinearMipPoint,
                MaximumAnisotropy  = 0,
                MaximumLod         = sizeof(float),
                MinimumLod         = 0,
                MipLodBias         = 0
            }
                )
            );

            Entity cube = new Entity();

            cube.AddComponent <RotateCube>();
            MeshRenderer cubeRenderer = cube.AddComponent <MeshRenderer>();

            cubeRenderer.material_ = floorMaterial;
            cubeRenderer.model_    = Cube.Mesh;

            cube.transform_.Translate(-10.0f, 5.5f, 5.0f);
            cube.transform_.SetScale(4.0f, 4.0f, 4.0f);

            Entity       sphere   = new Entity();
            MeshRenderer sphereMr = sphere.AddComponent <MeshRenderer>();

            sphereMr.material_ = floorMaterial;
            sphereMr.model_    = Sphere.Mesh(1.0f, 30, 30);

            sphere.transform_.Translate(10.0f, 7.0f, 7.0f);
            sphere.transform_.RotateEuler(0.0f, 3.141592f / 2.0f, 0.0f);
            sphere.transform_.SetScale(3.0f, 3.0f, 3.0f);


            Entity       cube2             = new Entity();
            MeshRenderer cubeMeshRenderer2 = cube2.AddComponent <MeshRenderer>();

            cubeMeshRenderer2.material_ = floorMaterial;
            cubeMeshRenderer2.model_    = Cube.Mesh;
            cube2.transform_.Translate(20.0f, 7.0f, 2.0f);
            cube2.transform_.RotateEuler(0.0f, 3.141592f / 2.0f, 0.0f);
            cube2.transform_.SetScale(2.0f, 2.0f, 10.0f);

            Entity       floor             = new Entity();
            MeshRenderer floorMeshRenderer = floor.AddComponent <MeshRenderer>();

            floorMeshRenderer.material_ = floorMaterial;
            floorMeshRenderer.model_    = Cube.Mesh;
            floor.transform_.SetScale(80.0f, 1.0f, 80.0f);
            floor.transform_.Translate(0.0f, 0.0f, 0.0f);

            Entity Obj = new Entity();

            Obj.AddComponent <RotateCube>();
            MeshRenderer ObjMeshRenderer = Obj.AddComponent <MeshRenderer>();

            ObjMeshRenderer.material_ = floorMaterial;
            ObjMeshRenderer.model_    = MeshManager.LoadObj("StanfordBunny.obj");
            Obj.transform_.SetScale(80.0f, 80.0f, 80.0f);
            Obj.transform_.Translate(10.0f, 10.0f, 0.0f);

            Entity dragon = new Entity();

            dragon.AddComponent <RotateCube>();
            MeshRenderer dragonr = dragon.AddComponent <MeshRenderer>();

            dragonr.material_ = floorMaterial;
            dragonr.model_    = MeshManager.LoadObj("dragon.obj");
            dragon.transform_.SetScale(2.0f, 2.0f, 2.0f);
            dragon.transform_.Translate(-25.0f, 3.0f, 10.0f);



            Entity       Wall             = new Entity();
            MeshRenderer WallMeshRenderer = Wall.AddComponent <MeshRenderer>();

            WallMeshRenderer.material_ = floorMaterial;
            WallMeshRenderer.model_    = Cube.Mesh;

            Wall.transform_.SetScale(80.0f, 30.0f, 2.0f);
            Wall.transform_.Translate(0.0f, 15.0f, 40.0f);

            Entity    frontQuad = new Entity();
            FrontQuad fq        = frontQuad.AddComponent <FrontQuad>();

            fq.m_meshRenderer.material_ = new MaterialDX11("vDefault.cso", "pOneChannel.cso");
            fq.SetQuad(0, 0, 300, 300);
            fq.Material.SetMainColor(1.0f, 0.0f, 0.0f, 1.0f);
            fq.m_meshRenderer.material_.AddShaderResourceView(dl.shadowmap_.shaderResourceView_);

            application.Run();
        }