我在我的 XNA 4.0 项目中实现了延迟着色,这意味着我需要所有对象以相同的着色器“ RenderGBuffer.fx ”开始。如何使用自定义内容处理器:
- 默认情况下不加载任何纹理(我想手动执行此操作)
- 使用“ 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);
}
}