public ShadowTechniqueItem(ShadowTechniques technique, string text)
 {
     this.technique = technique;
     this.text      = text;
 }
        private void ChangeToBetterDefaultSettings()
        {
            bool shadowTechniqueInitialized = false;
            bool shadowTextureSizeInitialized = false;

            if (!string.IsNullOrEmpty(EngineApp.ConfigName))
            {
                string error;
                TextBlock block = TextBlockUtils.LoadFromRealFile(
                    VirtualFileSystem.GetRealPathByVirtual(EngineApp.ConfigName), out error);
                if (block != null)
                {
                    TextBlock blockVideo = block.FindChild("Video");
                    if (blockVideo != null)
                    {
                        if (blockVideo.IsAttributeExist("shadowTechnique"))
                            shadowTechniqueInitialized = true;
                        if (blockVideo.IsAttributeExist("shadowDirectionalLightTextureSize"))
                            shadowTextureSizeInitialized = true;
                    }
                }
            }

            //shadowTechnique
            if (!shadowTechniqueInitialized)
            {
                //configure optimal settings for this computer
                if (RenderSystem.Instance.HasShaderModel3() && RenderSystem.Instance.Capabilities.HardwareRenderToTexture)
                {
                    shadowTechnique = ShadowTechniques.ShadowmapHigh;

                    //if( RenderSystem.Instance.GPUIsGeForce() )
                    //{
                    //   if( RenderSystem.Instance.GPUCodeName >= GPUCodeNames.GeForce_NV10 &&
                    //      RenderSystem.Instance.GPUCodeName <= GPUCodeNames.GeForce_NV40 )
                    //   {
                    //      shadowTechnique = ShadowTechniques.ShadowmapLow;
                    //   }
                    //   if( RenderSystem.Instance.GPUCodeName == GPUCodeNames.GeForce_G70 )
                    //      shadowTechnique = ShadowTechniques.ShadowmapMedium;
                    //}

                    //if( RenderSystem.Instance.GPUIsRadeon() )
                    //{
                    //   if( RenderSystem.Instance.GPUCodeName >= GPUCodeNames.Radeon_R100 &&
                    //      RenderSystem.Instance.GPUCodeName <= GPUCodeNames.Radeon_R400 )
                    //   {
                    //      shadowTechnique = ShadowTechniques.ShadowmapLow;
                    //   }
                    //   if( RenderSystem.Instance.GPUCodeName == GPUCodeNames.Radeon_R500 )
                    //      shadowTechnique = ShadowTechniques.ShadowmapMedium;
                    //}

                    //if( RenderSystem.Instance.GPUIsIntel() )
                    //{
                    //   if( RenderSystem.Instance.GPUCodeName == GPUCodeNames.Intel_HDGraphics )
                    //      shadowTechnique = ShadowTechniques.ShadowmapHigh;
                    //}
                }
                else
                    shadowTechnique = ShadowTechniques.None;
            }

            //shadow texture size
            if (!shadowTextureSizeInitialized)
            {
                if (RenderSystem.Instance.GPUIsGeForce())
                {
                    if (RenderSystem.Instance.GPUCodeName >= GPUCodeNames.GeForce_NV10 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.GeForce_G70)
                    {
                        shadowDirectionalLightTextureSize = 1024;
                        shadowSpotLightTextureSize = 1024;
                        shadowPointLightTextureSize = 512;
                    }
                }
                else if (RenderSystem.Instance.GPUIsRadeon())
                {
                    if (RenderSystem.Instance.GPUCodeName >= GPUCodeNames.Radeon_R100 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.Radeon_R500)
                    {
                        shadowDirectionalLightTextureSize = 1024;
                        shadowSpotLightTextureSize = 1024;
                        shadowPointLightTextureSize = 512;
                    }
                }
                else if (RenderSystem.Instance.GPUIsIntel())
                {
                    if (RenderSystem.Instance.GPUCodeName != GPUCodeNames.Intel_HDGraphics)
                    {
                        shadowDirectionalLightTextureSize = 1024;
                        shadowSpotLightTextureSize = 1024;
                        shadowPointLightTextureSize = 512;
                    }
                }
                else
                {
                    shadowDirectionalLightTextureSize = 1024;
                    shadowSpotLightTextureSize = 1024;
                    shadowPointLightTextureSize = 512;
                }
            }
        }
示例#3
0
        void ChangeToBetterDefaultSettings()
        {
            bool shadowTechniqueInitialized   = false;
            bool shadowTextureSizeInitialized = false;

            if (!string.IsNullOrEmpty(EngineApp.ConfigName))
            {
                string    error;
                TextBlock block = TextBlockUtils.LoadFromRealFile(
                    VirtualFileSystem.GetRealPathByVirtual(EngineApp.ConfigName), out error);
                if (block != null)
                {
                    TextBlock blockVideo = block.FindChild("Video");
                    if (blockVideo != null)
                    {
                        if (blockVideo.IsAttributeExist("shadowTechnique"))
                        {
                            shadowTechniqueInitialized = true;
                        }
                        if (blockVideo.IsAttributeExist("shadowDirectionalLightTextureSize"))
                        {
                            shadowTextureSizeInitialized = true;
                        }
                    }
                }
            }

            //shadowTechnique
            if (!shadowTechniqueInitialized)
            {
                if (RenderSystem.Instance.GPUIsGeForce())
                {
                    if (RenderSystem.Instance.GPUCodeName >= GPUCodeNames.GeForce_NV10 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.GeForce_NV40)
                    {
                        shadowTechnique = ShadowTechniques.ShadowmapLow;
                    }
                    if (RenderSystem.Instance.GPUCodeName == GPUCodeNames.GeForce_G70)
                    {
                        shadowTechnique = ShadowTechniques.ShadowmapMedium;
                    }
                }

                if (RenderSystem.Instance.GPUIsRadeon())
                {
                    if (RenderSystem.Instance.GPUCodeName >= GPUCodeNames.Radeon_R100 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.Radeon_R400)
                    {
                        shadowTechnique = ShadowTechniques.ShadowmapLow;
                    }
                    if (RenderSystem.Instance.GPUCodeName == GPUCodeNames.Radeon_R500)
                    {
                        shadowTechnique = ShadowTechniques.ShadowmapMedium;
                    }
                }

                if (!RenderSystem.Instance.HasShaderModel2())
                {
                    shadowTechnique = ShadowTechniques.None;
                }
            }

            //shadow texture size
            if (!shadowTextureSizeInitialized)
            {
                if (RenderSystem.Instance.GPUIsGeForce())
                {
                    if (RenderSystem.Instance.GPUCodeName >= GPUCodeNames.GeForce_NV10 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.GeForce_G70)
                    {
                        shadowDirectionalLightTextureSize = 1024;
                        shadowSpotLightTextureSize        = 1024;
                        shadowPointLightTextureSize       = 512;
                    }
                }
                else if (RenderSystem.Instance.GPUIsRadeon())
                {
                    if (RenderSystem.Instance.GPUCodeName >= GPUCodeNames.Radeon_R100 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.Radeon_R500)
                    {
                        shadowDirectionalLightTextureSize = 1024;
                        shadowSpotLightTextureSize        = 1024;
                        shadowPointLightTextureSize       = 512;
                    }
                }
                else
                {
                    shadowDirectionalLightTextureSize = 1024;
                    shadowSpotLightTextureSize        = 1024;
                    shadowPointLightTextureSize       = 512;
                }
            }
        }
示例#4
0
			public ShadowTechniqueItem( ShadowTechniques technique, string text )
			{
				this.technique = technique;
				this.text = text;
			}
        void ChangeToBetterDefaultSettings()
        {
            bool shadowTechniqueInitialized = false;
            bool shadowTextureSizeInitialized = false;

            if( !string.IsNullOrEmpty( EngineApp.ConfigName ) )
            {
                string error;
                TextBlock block = TextBlockUtils.LoadFromRealFile(
                    VirtualFileSystem.GetRealPathByVirtual( EngineApp.ConfigName ), out error );
                if( block != null )
                {
                    TextBlock blockVideo = block.FindChild( "Video" );
                    if( blockVideo != null )
                    {
                        if( blockVideo.IsAttributeExist( "shadowTechnique" ) )
                            shadowTechniqueInitialized = true;
                        if( blockVideo.IsAttributeExist( "shadow2DTextureSize" ) )
                            shadowTextureSizeInitialized = true;
                    }
                }
            }

            //shadowTechnique
            if( !shadowTechniqueInitialized )
            {
                if( RenderSystem.Instance.GPUIsGeForce() )
                {
                    if( RenderSystem.Instance.GPUCodeName >= GPUCodeNames.GeForce_NV10 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.GeForce_NV40 )
                    {
                        shadowTechnique = ShadowTechniques.ShadowmapLow;
                    }
                    if( RenderSystem.Instance.GPUCodeName == GPUCodeNames.GeForce_G70 )
                        shadowTechnique = ShadowTechniques.ShadowmapMedium;
                }

                if( RenderSystem.Instance.GPUIsRadeon() )
                {
                    if( RenderSystem.Instance.GPUCodeName >= GPUCodeNames.Radeon_R100 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.Radeon_R400 )
                    {
                        shadowTechnique = ShadowTechniques.ShadowmapLow;
                    }
                    if( RenderSystem.Instance.GPUCodeName == GPUCodeNames.Radeon_R500 )
                        shadowTechnique = ShadowTechniques.ShadowmapMedium;
                }

                if( !RenderSystem.Instance.HasShaderModel2() )
                    shadowTechnique = ShadowTechniques.None;
            }

            //shadow texture size
            if( !shadowTextureSizeInitialized )
            {
                if( RenderSystem.Instance.GPUIsGeForce() )
                {
                    if( RenderSystem.Instance.GPUCodeName >= GPUCodeNames.GeForce_NV10 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.GeForce_G70 )
                    {
                        shadow2DTextureSize = 1024;
                    }
                }
                else if( RenderSystem.Instance.GPUIsRadeon() )
                {
                    if( RenderSystem.Instance.GPUCodeName >= GPUCodeNames.Radeon_R100 &&
                        RenderSystem.Instance.GPUCodeName <= GPUCodeNames.Radeon_R500 )
                    {
                        shadow2DTextureSize = 1024;
                    }
                }
                else
                    shadow2DTextureSize = 1024;
            }
        }
示例#6
0
        void ChangeToBetterDefaultSettings()
        {
            bool shadowTechniqueInitialized = false;
            bool shadowTextureSizeInitialized = false;

            string error;
            TextBlock block = TextBlockUtils.LoadFromRealFile( EngineApp.ConfigName, out error );
            if( block != null )
            {
                TextBlock blockVideo = block.FindChild( "Video" );
                if( blockVideo != null )
                {
                    if( blockVideo.IsAttributeExist( "shadowTechnique" ) )
                        shadowTechniqueInitialized = true;
                    if( blockVideo.IsAttributeExist( "shadowTextureSize" ) )
                        shadowTextureSizeInitialized = true;
                }
            }

            //shadowTechnique
            if( !shadowTechniqueInitialized )
            {
                if( RenderSystem.Instance.GPUIsGeForce() &&
                    RenderSystem.Instance.GPUCodeName >= GPUCodeNames.GeForce_NV10 &&
                    RenderSystem.Instance.GPUCodeName <= GPUCodeNames.GeForce_NV40 )
                {
                    shadowTechnique = ShadowTechniques.ShadowmapLow;
                }
                if( RenderSystem.Instance.GPUIsRadeon() &&
                    RenderSystem.Instance.GPUCodeName >= GPUCodeNames.Radeon_R100 &&
                    RenderSystem.Instance.GPUCodeName <= GPUCodeNames.Radeon_R400 )
                {
                    shadowTechnique = ShadowTechniques.ShadowmapLow;
                }
            }

            //shadow texture size
            if( !shadowTextureSizeInitialized )
            {
                if( RenderSystem.Instance.GPUIsGeForce() &&
                    RenderSystem.Instance.GPUCodeName >= GPUCodeNames.GeForce_G80 )
                {
                    shadow2DTextureSize = 2048;
                }
                if( RenderSystem.Instance.GPUIsRadeon() &&
                    RenderSystem.Instance.GPUCodeName >= GPUCodeNames.Radeon_R600 )
                {
                    shadow2DTextureSize = 2048;
                }
            }
        }