コード例 #1
0
        private void CreateShadowMaterial(MaterialContent material)
        {
            var materialData = new MyreMaterialData();

            materialData.EffectName = Path.GetFullPath("DefaultShadows.fx");
            materialData.Technique  = "ViewLength";

            var shadowMaterial = context.Convert <MyreMaterialData, MyreMaterialContent>(materialData, "MyreMaterialProcessor");

            processedMaterials[material].Add("shadows_viewlength", shadowMaterial);

            materialData            = new MyreMaterialData();
            materialData.EffectName = Path.GetFullPath("DefaultShadows.fx");
            materialData.Technique  = "ViewZ";

            shadowMaterial = context.Convert <MyreMaterialData, MyreMaterialContent>(materialData, "MyreMaterialProcessor");
            processedMaterials[material].Add("shadows_viewz", shadowMaterial);
        }
コード例 #2
0
        private void CreateGBufferMaterial(MaterialContent material, MeshContent mesh)
        {
            //System.Diagnostics.Debugger.Launch();
            var diffuseTexture  = FindDiffuseTexture(mesh, material);
            var normalTexture   = FindNormalTexture(mesh, material);
            var specularTexture = FindSpecularTexture(mesh, material);

            if (diffuseTexture == null)
            {
                return;
            }

            var materialData = new MyreMaterialData();

            materialData.EffectName = Path.GetFullPath("DefaultGBuffer.fx");
            materialData.Technique  = "ClipAlpha";//IsOpaque(diffuseTexture) ? "Default" : "ClipAlpha";
            materialData.Textures.Add("DiffuseMap", diffuseTexture);
            materialData.Textures.Add("NormalMap", normalTexture);
            materialData.Textures.Add("SpecularMap", specularTexture);

            var gbufferMaterial = context.Convert <MyreMaterialData, MyreMaterialContent>(materialData, "MyreMaterialProcessor");

            processedMaterials[material].Add("gbuffer", gbufferMaterial);
        }