C# XNA延迟着色器,替换基本效果

C# XNA延迟着色器,替换基本效果,c#,xna,xna-4.0,deferred-rendering,C#,Xna,Xna 4.0,Deferred Rendering,我在我的XNA4.0项目中实现了延迟着色,这意味着我需要所有对象从同一着色器“RenderGBuffer.fx”开始。如何使用自定义内容处理器来: 默认情况下不加载任何纹理(我想手动执行此操作) 使用“RenderGBuffer.fx”作为默认着色器,而不是基本效果 以下是迄今为止的工作: public class DeferredModelProcessor : ModelProcessor { EffectMaterialContent deferredShader; publ

我在我的XNA4.0项目中实现了延迟着色,这意味着我需要所有对象从同一着色器“RenderGBuffer.fx”开始。如何使用自定义内容处理器来:

  • 默认情况下不加载任何纹理(我想手动执行此操作)
  • 使用“RenderGBuffer.fx”作为默认着色器,而不是基本效果
  • 以下是迄今为止的工作:

    public class DeferredModelProcessor : ModelProcessor
    {
       EffectMaterialContent deferredShader;
    
       public DeferredModelProcessor()
       {
    
       }
    
       protected override MaterialContent ConvertMaterial(MaterialContent material, ContentProcessorContext context)
       {
           deferredShader = new EffectMaterialContent();
           deferredShader.Effect = new ExternalReference<EffectContent>("DeferredShading/RenderGBuffer.fx");         
    
           return context.Convert<MaterialContent, MaterialContent>(deferredShader, typeof(MaterialProcessor).Name);
       }
    }
    
    公共类延迟ModelProcessor:ModelProcessor
    {
    有效材料含量;
    公共延迟模型处理器()
    {
    }
    受保护的替代MaterialContent ConvertMaterial(MaterialContent材质、ContentProcessor上下文)
    {
    deferredShader=新的EffectMaterialContent();
    deferredShader.Effect=newexternalreference(“DeferredShading/RenderGBuffer.fx”);
    返回context.Convert(deferredShader,typeof(MaterialProcessor).Name);
    }
    }
    
    请显示一些代码。。。你试过什么?到底什么是不起作用的?我添加了一些代码,感谢您指出费率。我怀疑您的问题可能会在许多专家关注的地方得到更多的关注……感谢您的提示,我将在那里尝试。以下是未来读者的链接: