feat(srp): add shader pass selection for scene draws

- let DrawingSettings carry an optional shaderPassName across managed and native scene draw APIs
- allow RenderObjectsRendererFeature to author explicit ForwardLit or Unlit scene draws
- exercise the new scene draw pass selection seam in the project render pipeline probe
This commit is contained in:
2026-04-20 22:58:08 +08:00
parent 0319680954
commit cd6f9aa4cf
9 changed files with 134 additions and 17 deletions

View File

@@ -782,7 +782,8 @@ namespace XCEngine
ulong nativeHandle,
int scenePhase,
ref Rendering.RendererListDesc rendererListDesc,
string overrideMaterialPath);
string overrideMaterialPath,
string shaderPassName);
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern bool

View File

@@ -3,16 +3,22 @@ namespace XCEngine.Rendering
public struct DrawingSettings
{
public string overrideMaterialPath;
public string shaderPassName;
public bool hasOverrideMaterial =>
!string.IsNullOrEmpty(
overrideMaterialPath);
public bool hasShaderPassName =>
!string.IsNullOrEmpty(
shaderPassName);
public static DrawingSettings CreateDefault()
{
return new DrawingSettings
{
overrideMaterialPath = string.Empty
overrideMaterialPath = string.Empty,
shaderPassName = string.Empty
};
}
}

View File

@@ -107,6 +107,8 @@ namespace XCEngine.Rendering
(int)scenePhase,
ref rendererListDesc,
drawingSettings.overrideMaterialPath ??
string.Empty,
drawingSettings.shaderPassName ??
string.Empty);
}