Skip to content

Commit 256bb42

Browse files
committed
Updated project and SRLs to use new GraphicsSettings registration interface.
In order to register a scriptable render loop goto GraphicsSettings and set there.
1 parent 38b327a commit 256bb42

15 files changed

Lines changed: 125 additions & 286 deletions

Assets/BasicRenderLoopTutorial/BasicRenderLoop.cs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using UnityEngine;
22
using UnityEngine.Rendering;
33
using UnityEngine.Experimental.Rendering;
4+
using UnityEngine.Experimental.ScriptableRenderLoop;
45

56
// Very basic scriptable rendering loop example:
67
// - Use with BasicRenderLoopShader.shader (the loop expects "BasicPass" pass type to exist)
@@ -10,24 +11,27 @@
1011
// - This loop also does not setup lightmaps, light probes, reflection probes or light cookies
1112

1213
[ExecuteInEditMode]
13-
public class BasicRenderLoop : MonoBehaviour
14+
public class BasicRenderLoop : ScriptableRenderLoop
1415
{
15-
private ShaderPassName shaderPassBasic;
1616

17-
public void OnEnable ()
17+
#if UNITY_EDITOR
18+
[UnityEditor.MenuItem("Renderloop/CreateBasicRenderLoop")]
19+
static void CreateBasicRenderLoop()
1820
{
19-
shaderPassBasic = new ShaderPassName ("BasicPass");
20-
RenderLoop.renderLoopDelegate += Render;
21+
var instance = ScriptableObject.CreateInstance<BasicRenderLoop>();
22+
UnityEditor.AssetDatabase.CreateAsset(instance, "Assets/basicrenderloop.asset");
2123
}
24+
#endif
25+
26+
private ShaderPassName shaderPassBasic;
2227

23-
public void OnDisable ()
28+
public override void Initialize()
2429
{
25-
RenderLoop.renderLoopDelegate -= Render;
30+
shaderPassBasic = new ShaderPassName("BasicPass");
2631
}
2732

28-
2933
// Main entry point for our scriptable render loop
30-
bool Render (Camera[] cameras, RenderLoop loop)
34+
public override void Render(Camera[] cameras, RenderLoop loop)
3135
{
3236
foreach (var camera in cameras)
3337
{
@@ -66,8 +70,6 @@ bool Render (Camera[] cameras, RenderLoop loop)
6670

6771
loop.Submit ();
6872
}
69-
70-
return true;
7173
}
7274

7375

Assets/BasicRenderLoopTutorial/BasicRenderLoopScene.unity

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ RenderSettings:
3737
m_ReflectionIntensity: 0.5
3838
m_CustomReflection: {fileID: 0}
3939
m_Sun: {fileID: 0}
40-
m_IndirectSpecularColor: {r: 0.090675384, g: 0.11147798, b: 0.14205901, a: 0.5}
40+
m_IndirectSpecularColor: {r: 0.09067501, g: 0.11147752, b: 0.14205909, a: 0.5}
4141
--- !u!157 &3
4242
LightmapSettings:
4343
m_ObjectHideFlags: 0
@@ -139,6 +139,7 @@ MeshRenderer:
139139
m_AutoUVMaxAngle: 89
140140
m_LightmapParameters: {fileID: 0}
141141
m_SortingLayerID: 0
142+
m_SortingLayer: 0
142143
m_SortingOrder: 0
143144
--- !u!135 &261580744
144145
SphereCollider:
@@ -220,6 +221,7 @@ MeshRenderer:
220221
m_AutoUVMaxAngle: 89
221222
m_LightmapParameters: {fileID: 0}
222223
m_SortingLayerID: 0
224+
m_SortingLayer: 0
223225
m_SortingOrder: 0
224226
--- !u!136 &531853422
225227
CapsuleCollider:
@@ -333,6 +335,7 @@ MeshRenderer:
333335
m_AutoUVMaxAngle: 89
334336
m_LightmapParameters: {fileID: 0}
335337
m_SortingLayerID: 0
338+
m_SortingLayer: 0
336339
m_SortingOrder: 0
337340
--- !u!64 &1280249097
338341
MeshCollider:
@@ -416,6 +419,7 @@ MeshRenderer:
416419
m_AutoUVMaxAngle: 89
417420
m_LightmapParameters: {fileID: 0}
418421
m_SortingLayerID: 0
422+
m_SortingLayer: 0
419423
m_SortingOrder: 0
420424
--- !u!135 &1405931299
421425
SphereCollider:
@@ -461,7 +465,6 @@ GameObject:
461465
- component: {fileID: 1447851828}
462466
- component: {fileID: 1447851827}
463467
- component: {fileID: 1447851826}
464-
- component: {fileID: 1447851831}
465468
m_Layer: 0
466469
m_Name: Main Camera
467470
m_TagString: MainCamera
@@ -539,17 +542,6 @@ Transform:
539542
m_Father: {fileID: 0}
540543
m_RootOrder: 0
541544
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
542-
--- !u!114 &1447851831
543-
MonoBehaviour:
544-
m_ObjectHideFlags: 0
545-
m_PrefabParentObject: {fileID: 0}
546-
m_PrefabInternal: {fileID: 0}
547-
m_GameObject: {fileID: 1447851825}
548-
m_Enabled: 0
549-
m_EditorHideFlags: 0
550-
m_Script: {fileID: 11500000, guid: 22228a1bd982b864ea6c84db2fc11dd1, type: 3}
551-
m_Name:
552-
m_EditorClassIdentifier:
553545
--- !u!1 &1485985477
554546
GameObject:
555547
m_ObjectHideFlags: 0
@@ -598,6 +590,7 @@ MeshRenderer:
598590
m_AutoUVMaxAngle: 89
599591
m_LightmapParameters: {fileID: 0}
600592
m_SortingLayerID: 0
593+
m_SortingLayer: 0
601594
m_SortingOrder: 0
602595
--- !u!136 &1485985479
603596
CapsuleCollider:
@@ -680,6 +673,7 @@ MeshRenderer:
680673
m_AutoUVMaxAngle: 89
681674
m_LightmapParameters: {fileID: 0}
682675
m_SortingLayerID: 0
676+
m_SortingLayer: 0
683677
m_SortingOrder: 0
684678
--- !u!135 &1596459101
685679
SphereCollider:
@@ -824,6 +818,7 @@ MeshRenderer:
824818
m_AutoUVMaxAngle: 89
825819
m_LightmapParameters: {fileID: 0}
826820
m_SortingLayerID: 0
821+
m_SortingLayer: 0
827822
m_SortingOrder: 0
828823
--- !u!136 &1714697414
829824
CapsuleCollider:
@@ -906,6 +901,7 @@ MeshRenderer:
906901
m_AutoUVMaxAngle: 89
907902
m_LightmapParameters: {fileID: 0}
908903
m_SortingLayerID: 0
904+
m_SortingLayer: 0
909905
m_SortingOrder: 0
910906
--- !u!135 &1749252041
911907
SphereCollider:
@@ -1113,6 +1109,7 @@ MeshRenderer:
11131109
m_AutoUVMaxAngle: 89
11141110
m_LightmapParameters: {fileID: 0}
11151111
m_SortingLayerID: 0
1112+
m_SortingLayer: 0
11161113
m_SortingOrder: 0
11171114
--- !u!135 &2031315347
11181115
SphereCollider:

Assets/Editor/Tests/RenderloopTests/CullResultsTest.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ void InspectCullResults(Camera camera, CullResults cullResults, RenderLoop rende
3131
public void TestReflectionProbes()
3232
{
3333
UnityEditor.SceneManagement.EditorSceneManager.OpenScene("Assets/Editor/Tests/TestScene.unity");
34-
35-
// Asserts.ExpectLogError("Boing");
36-
3734
RenderLoopTestFixture.Run(InspectCullResults);
3835
}
3936
}

Assets/Editor/Tests/RenderloopTests/RenderloopTestFixture.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@
44
using UnityEditor;
55
using UnityEngine.Experimental.Rendering;
66
using NUnit.Framework;
7+
using UnityEngine.Experimental.ScriptableRenderLoop;
8+
using UnityEngine.Rendering;
79

810
[ExecuteInEditMode]
9-
public class RenderLoopTestFixture : MonoBehaviour
11+
public class RenderLoopTestFixture : ScriptableRenderLoop
1012
{
1113
public delegate void TestDelegate(Camera camera, CullResults cullResults, RenderLoop renderLoop);
1214
private static TestDelegate s_Callback;
1315

14-
public static void Render(RenderLoopWrapper wrapper, Camera[] cameras, RenderLoop renderLoop)
16+
private static RenderLoopTestFixture m_Instance;
17+
18+
public override void Render(Camera[] cameras, RenderLoop renderLoop)
1519
{
1620
foreach (var camera in cameras)
1721
{
@@ -21,22 +25,25 @@ public static void Render(RenderLoopWrapper wrapper, Camera[] cameras, RenderLoo
2125

2226
CullResults cullResults = CullResults.Cull(ref cullingParams, renderLoop);
2327

24-
s_Callback(camera, cullResults, renderLoop);
28+
if (s_Callback != null)
29+
s_Callback(camera, cullResults, renderLoop);
2530
}
2631

2732
renderLoop.Submit();
2833
}
2934

3035
public static void Run(TestDelegate renderCallback)
3136
{
37+
if (m_Instance == null)
38+
{
39+
m_Instance = ScriptableObject.CreateInstance<RenderLoopTestFixture>();
40+
}
41+
3242
var sceneCamera = Camera.main;
3343
var camObject = sceneCamera.gameObject;
3444

35-
var instance = camObject.AddComponent<RenderLoopWrapper>();
36-
instance.callback = Render;
45+
GraphicsSettings.SetScriptableRenderLoop(m_Instance);
3746
s_Callback = renderCallback;
38-
instance.enabled = true;
39-
4047
Transform t = camObject.transform;
4148

4249
// Can't use AlignViewToObject because it animates over time, and we want the first frame
@@ -45,14 +52,7 @@ public static void Run(TestDelegate renderCallback)
4552
float camDist = size / Mathf.Tan(fov * 0.5f * Mathf.Deg2Rad);
4653
SceneView.lastActiveSceneView.LookAtDirect(t.position + t.forward * camDist, t.rotation, size);
4754

48-
// Invoke renderer
49-
try
50-
{
51-
sceneCamera.Render();
52-
}
53-
finally
54-
{
55-
Object.DestroyImmediate(instance);
56-
}
55+
sceneCamera.Render();
56+
GraphicsSettings.SetScriptableRenderLoop(null);
5757
}
5858
}

Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.cs

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,6 @@ public TilePass.LightLoop tilePassLightLoop
226226
TextureCache2D m_CookieTexArray;
227227
TextureCacheCubemap m_CubeCookieTexArray;
228228

229-
void OnEnable()
230-
{
231-
Rebuild();
232-
}
233-
234229
void OnValidate()
235230
{
236231
m_Dirty = true;
@@ -299,7 +294,19 @@ public override void Rebuild()
299294
m_Dirty = false;
300295
}
301296

302-
void OnDisable()
297+
public override void Initialize()
298+
{
299+
#if UNITY_EDITOR
300+
UnityEditor.SupportedRenderingFeatures.active = new UnityEditor.SupportedRenderingFeatures
301+
{
302+
reflectionProbe = UnityEditor.SupportedRenderingFeatures.ReflectionProbe.Rotation
303+
};
304+
#endif
305+
306+
Rebuild();
307+
}
308+
309+
public override void CleanUp()
303310
{
304311
m_LitRenderLoop.OnDisable();
305312
m_SinglePassLightLoop.OnDisable();
@@ -313,6 +320,10 @@ void OnDisable()
313320
m_CubeCookieTexArray.Release();
314321

315322
m_SkyRenderer.OnDisable();
323+
324+
#if UNITY_EDITOR
325+
UnityEditor.SupportedRenderingFeatures.active = UnityEditor.SupportedRenderingFeatures.Default;
326+
#endif
316327
}
317328

318329
void NewFrame()
@@ -995,17 +1006,5 @@ public override void Render(Camera[] cameras, RenderLoop renderLoop)
9951006

9961007
// Post effects
9971008
}
998-
999-
#if UNITY_EDITOR
1000-
public override UnityEditor.SupportedRenderingFeatures GetSupportedRenderingFeatures()
1001-
{
1002-
var features = new UnityEditor.SupportedRenderingFeatures
1003-
{
1004-
reflectionProbe = UnityEditor.SupportedRenderingFeatures.ReflectionProbe.Rotation
1005-
};
1006-
1007-
return features;
1008-
}
1009-
#endif
10101009
}
10111010
}

Assets/ScriptableRenderLoop/ScriptableRenderLoop.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

Assets/ScriptableRenderLoop/ScriptableRenderLoop.cs.meta

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)