浏览代码
Lw/api review v2 (#1892)
Lw/api review v2 (#1892)
* RenderingData is now readonly. * renderer is cleared up before calling setup. This way there's no need to an IRendererSetup call clear. * Removed GC.Alloc from LWRP. The only remaining ones are due to the GetComponent bug. Change functions from static to member. * Added requires depth prepass to RenderingData. Moved CanCopyDepth to LWRP. * Made static functions from ScriptableRenderer member functions * Removed LightweightForwardPass. Added RenderObjectsWithError to renderer. * Moved RenderPostProcess to renderer * Added cullResults to RenderingData. Change ScriptableRenderPass and IRenderer interface. * Moved rendering methods from Core to Renderer. Made LWRP class sealed. * Changed camera sorting to use lambda. * Run autoformat tool * updated release notes * Changed ScriptableRenderer functions that don't use class members to static. * LWRP functions have to be static due to the ability to render a.../main
GitHub
6 年前
当前提交
2d2ce5c3
共有 41 个文件被更改,包括 422 次插入 和 504 次删除
-
8com.unity.render-pipelines.lightweight/CHANGELOG.md
-
56com.unity.render-pipelines.lightweight/LWRP/DefaultRendererSetup.cs
-
2com.unity.render-pipelines.lightweight/LWRP/IAfterDepthPrePass.cs
-
2com.unity.render-pipelines.lightweight/LWRP/IAfterOpaquePass.cs
-
2com.unity.render-pipelines.lightweight/LWRP/IAfterOpaquePostProcess.cs
-
2com.unity.render-pipelines.lightweight/LWRP/IAfterRender.cs
-
2com.unity.render-pipelines.lightweight/LWRP/IAfterSkyboxPass.cs
-
2com.unity.render-pipelines.lightweight/LWRP/IAfterTransparentPass.cs
-
4com.unity.render-pipelines.lightweight/LWRP/IRendererSetup.cs
-
49com.unity.render-pipelines.lightweight/LWRP/LightweightPipeline.cs
-
92com.unity.render-pipelines.lightweight/LWRP/LightweightPipelineCore.cs
-
4com.unity.render-pipelines.lightweight/LWRP/LightweightShadowUtils.cs
-
2com.unity.render-pipelines.lightweight/LWRP/MaterialHandles.cs
-
6com.unity.render-pipelines.lightweight/LWRP/Passes/BeginXRRenderingPass.cs
-
16com.unity.render-pipelines.lightweight/LWRP/Passes/CopyColorPass.cs
-
14com.unity.render-pipelines.lightweight/LWRP/Passes/CopyDepthPass.cs
-
13com.unity.render-pipelines.lightweight/LWRP/Passes/CreateLightweightRenderTexturesPass.cs
-
10com.unity.render-pipelines.lightweight/LWRP/Passes/DepthOnlyPass.cs
-
23com.unity.render-pipelines.lightweight/LWRP/Passes/DirectionalShadowsPass.cs
-
19com.unity.render-pipelines.lightweight/LWRP/Passes/DrawSkyboxPass.cs
-
6com.unity.render-pipelines.lightweight/LWRP/Passes/EndXRRenderingPass.cs
-
8com.unity.render-pipelines.lightweight/LWRP/Passes/FinalBlitPass.cs
-
31com.unity.render-pipelines.lightweight/LWRP/Passes/LocalShadowsPass.cs
-
11com.unity.render-pipelines.lightweight/LWRP/Passes/OpaquePostProcessPass.cs
-
48com.unity.render-pipelines.lightweight/LWRP/Passes/RenderOpaqueForwardPass.cs
-
42com.unity.render-pipelines.lightweight/LWRP/Passes/RenderTransparentForwardPass.cs
-
4com.unity.render-pipelines.lightweight/LWRP/Passes/SceneViewDepthCopy.cs
-
18com.unity.render-pipelines.lightweight/LWRP/Passes/ScreenSpaceShadowResolvePass.cs
-
6com.unity.render-pipelines.lightweight/LWRP/Passes/ScriptableRenderPass.cs
-
4com.unity.render-pipelines.lightweight/LWRP/Passes/SetupForwardRenderingPass.cs
-
44com.unity.render-pipelines.lightweight/LWRP/Passes/SetupLightweightConstanstPass.cs
-
12com.unity.render-pipelines.lightweight/LWRP/Passes/TransparentPostProcessPass.cs
-
15com.unity.render-pipelines.lightweight/LWRP/RenderTargetHandle.cs
-
2com.unity.render-pipelines.lightweight/LWRP/RenderTargetHandles.cs
-
2com.unity.render-pipelines.lightweight/LWRP/SampleCount.cs
-
2com.unity.render-pipelines.lightweight/LWRP/SceneViewDrawMode.cs
-
214com.unity.render-pipelines.lightweight/LWRP/ScriptableRenderer.cs
-
12com.unity.testing.srp.lightweight/Tests/Scenes/045_CustomLWPipe/CustomLWPipe.cs
-
23com.unity.testing.srp.lightweight/Tests/Scenes/052_LWCallbacks/CameraCallbackTests.cs
-
11com.unity.render-pipelines.lightweight/LWRP/Passes/LightweightForwardPass.cs.meta
-
83com.unity.render-pipelines.lightweight/LWRP/Passes/LightweightForwardPass.cs
|
|||
fileFormatVersion: 2 |
|||
guid: 55fe4224e5c9e3a499307d28ede17d2b |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System.Collections.Generic; |
|||
using System.Diagnostics; |
|||
using UnityEngine.Rendering; |
|||
|
|||
namespace UnityEngine.Experimental.Rendering.LightweightPipeline |
|||
{ |
|||
public abstract class LightweightForwardPass : ScriptableRenderPass |
|||
{ |
|||
private RenderTargetHandle colorAttachmentHandle { get; set; } |
|||
private RenderTargetHandle depthAttachmentHandle { get; set; } |
|||
private RenderTextureDescriptor descriptor { get; set; } |
|||
protected ClearFlag clearFlag { get; set; } |
|||
protected Color clearColor { get; set; } |
|||
|
|||
List<ShaderPassName> m_LegacyShaderPassNames; |
|||
protected RendererConfiguration rendererConfiguration; |
|||
protected bool dynamicBatching; |
|||
|
|||
protected LightweightForwardPass() |
|||
{ |
|||
m_LegacyShaderPassNames = new List<ShaderPassName>(); |
|||
m_LegacyShaderPassNames.Add(new ShaderPassName("Always")); |
|||
m_LegacyShaderPassNames.Add(new ShaderPassName("ForwardBase")); |
|||
m_LegacyShaderPassNames.Add(new ShaderPassName("PrepassBase")); |
|||
m_LegacyShaderPassNames.Add(new ShaderPassName("Vertex")); |
|||
m_LegacyShaderPassNames.Add(new ShaderPassName("VertexLMRGBM")); |
|||
m_LegacyShaderPassNames.Add(new ShaderPassName("VertexLM")); |
|||
|
|||
RegisterShaderPassName("LightweightForward"); |
|||
RegisterShaderPassName("SRPDefaultUnlit"); |
|||
} |
|||
|
|||
public void Setup( |
|||
RenderTextureDescriptor baseDescriptor, |
|||
RenderTargetHandle colorAttachmentHandle, |
|||
RenderTargetHandle depthAttachmentHandle, |
|||
ClearFlag clearFlag, |
|||
Color clearColor, |
|||
RendererConfiguration configuration, |
|||
bool dynamicbatching) |
|||
{ |
|||
this.colorAttachmentHandle = colorAttachmentHandle; |
|||
this.depthAttachmentHandle = depthAttachmentHandle; |
|||
this.clearColor = clearColor; |
|||
this.clearFlag = clearFlag; |
|||
descriptor = baseDescriptor; |
|||
this.rendererConfiguration = configuration; |
|||
this.dynamicBatching = dynamicbatching; |
|||
} |
|||
|
|||
protected void SetRenderTarget(CommandBuffer cmd, RenderBufferLoadAction loadOp, RenderBufferStoreAction storeOp, ClearFlag clearFlag, Color clearColor) |
|||
{ |
|||
SetRenderTarget( |
|||
cmd, |
|||
colorAttachmentHandle.Identifier(), |
|||
loadOp, |
|||
storeOp, |
|||
depthAttachmentHandle.Identifier(), |
|||
loadOp, |
|||
storeOp, |
|||
clearFlag, |
|||
clearColor, |
|||
descriptor.dimension); |
|||
} |
|||
|
|||
[Conditional("DEVELOPMENT_BUILD"), Conditional("UNITY_EDITOR")] |
|||
protected void RenderObjectsWithError(ScriptableRenderer renderer, ref ScriptableRenderContext context, ref CullResults cullResults, Camera camera, FilterRenderersSettings filterSettings, SortFlags sortFlags) |
|||
{ |
|||
Material errorMaterial = renderer.GetMaterial(MaterialHandles.Error); |
|||
if (errorMaterial != null) |
|||
{ |
|||
DrawRendererSettings errorSettings = new DrawRendererSettings(camera, m_LegacyShaderPassNames[0]); |
|||
for (int i = 1; i < m_LegacyShaderPassNames.Count; ++i) |
|||
errorSettings.SetShaderPassName(i, m_LegacyShaderPassNames[i]); |
|||
|
|||
errorSettings.sorting.flags = sortFlags; |
|||
errorSettings.rendererConfiguration = RendererConfiguration.None; |
|||
errorSettings.SetOverrideMaterial(errorMaterial, 0); |
|||
context.DrawRenderers(cullResults.visibleRenderers, ref errorSettings, filterSettings); |
|||
} |
|||
} |
|||
} |
|||
} |
撰写
预览
正在加载...
取消
保存
Reference in new issue