0

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

  1. 默认情况下不加载任何纹理(我想手动执行此操作)
  2. 使用“ RenderGBuffer.fx ”作为默认着色器而不是 BasicEffect

以下是迄今为止的工作:

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);
   }
}
4

0 回答 0