Feedback Wanted: Scriptable Render Pipelines

Also this specular occlusion from bent normal test, which I havent tried yet:

wouldnā€™t it be better though if bent normal are a realtime gbuffer just like how star citizen did for their specular occlusion?

Are there any plans to let us customize culling and instancing? How does ECS and GPU culling fit into SRP?

We can simulate and render large number of entities thanks to ECS but it only works if we manually create instanced draw calls (Graphics.DrawMeshInstanced). But we obviously want different instanced draw calls for camera frustum and for each shadow map. Graphics.DrawMeshInstanced + Unity culling is useless in this context because it will use the instanced draw calls for camera and all shadows. Making it either slow or incorrect. What is the plan for ECS rendering (or manual instanced rendering in general)?

What if we want to perform frustum and occlusion culling on the GPU for performance reasons? We will again need to create different instanced/procedural draw calls (+indirect draw calls) for camera and shadows. And possibly mix it with build-in culling for local lights. I donā€™t see any ā€œcleanā€ way how to do it in SRP now.

And maybe we simply have better understanding about the geometry in our scene and we can perform culling and instancing more efficiently than general purpose solution. Especially with ECS.

I really like the idea of SRP and ECS. And I believe we can hack it to achieve our goal. I just wish it was less of a black box or the public API was more generous.
(I have no hands-on experience with SRP, so maybe Iā€™m missing something here)

1 Like

Thanks Seb, that overview is really handy.

For us, particles and xb1 ESRAM performance are probably the only things we miss. Both things I can probably work around until support makes it in.

As we are a procedural generated destructible game, most of the baked lighting stuff isnā€™t for us so we tend to have lots of lights which is why the tile/cluster improvements are such a compelling feature to us.

You mentioned the internal teams use there own tools for the material interface stuff, do you know if they tend to use a facade over the material or a seperate tool? Ideal world iā€™d like a facade like interface so the artists can gradually upgrade to the newer style interface over time, so if there is an example of that would be interesting in taking a look even if its custom and requires reworking for us.

Iā€™ll be moving to 2018.2 very soon, so might have some more feedback its looking good.

Nice work by the team!

Deano

1 Like

ā€œDisable per object-light cullingā€ :frowning: So thatā€™s truly intended to be that way ?
Or is it just disabled because itā€™s not finished orā€¦ (in which case, any eta ?) ?

Also, I wondered if that was a bug while using LWRP: light culled by specific layers is disabled/not working. (Iā€™m not sure itā€™s the same feature as 'per object light or unrelatedā€¦)
Thereā€™s no feedback in the light inspector about the rest of the layers being disabledā€¦or is it a bug ?

Note that the issue doesnā€™t show up if: the shadows are disabled, or that ā€˜Nothingā€™ culled mask is used.

Some other frustrating note, regarding the Github of SRP ā€œWe are migrating reported issues to fogbugz. Please log issues there.ā€

  1. Have no idea what ā€˜hereā€™ means in that context
  2. fogbugz ā†’ okay, seems like JIRA type thingy, didnā€™t found any unity thing related, only way to connect to fogbugz is apparently creating a ā€˜manuscript accountā€™ that is ā€˜freeā€™ for 14 days ? What Iā€™m supposed to do to be able to submit bugs or follow the ones that were created on the github ??

Thanks for your reply.

This is the system where your bug report discussion is tracked, afaik you are not supposed to use the system directly yourself. All bug reports you make with Unityā€™s own bug report tool show up in fogbugz system and further input is provided via email. More info here:

For us, particles and xb1 ESRAM performance are probably the only things we miss.
Certainly not what you are waiting for, but currently Shuriken unlit particles work.
Shuriken lit particles work too (with a lit shader) if you donā€™t use Shuriken feature (i.e donā€™t use vertex color or related)ā€¦

There is a plan for a new nodal GPU VFX editor to come for HDRP, itā€™s in progress.

You mentioned the internal teams use there own tools for the material interface stuff,
it is usually a script launch on the whole game data, or a script executed at import time with some naming convention. nothing fancy or elaborate.

Cheers

Hi,

ā€œDisable per object-light cullingā€ :frowning: So thatā€™s truly intended to be that way ?
We donā€™t use it in HDRP and it was wasting CPU performance, what was your intented usage?

  1. Have no idea what ā€˜hereā€™ means in that context
    Poke @Tim-C

@SebLagarde , I probably confused it with ā€˜per layer-lightā€™ culling, my bad. I suppose itā€™s not the same thing ?
I intend to use light culling mask/layer in LWRP but it doesnā€™t seem to work properly (as explained in picture above), but again, I donā€™t know if itā€™s disabled intentionaly or a bug.

How does one select these filters on HDRP? I tried looking out everywhere but I canā€™t find any place on the editor where these could be set. Iā€™m mainly interested on trying out recently added PCSS on HDRP (using HDRP 2.0.5-preview from staging).

Itā€™s through code to change it.
3560373--286809--upload_2018-7-11_12-59-9.png

1 Like

Ah thanks, I missed that line. Curious still, are they going to expose the settings in editor on default scripts / assets? I makes very little sense to make people write custom scripts just to set the shadow filtering.

Also, wonder how you are supposed to control it via code, I made this short test script (need to be attached to a light source) but it doesnā€™t change anything visual, so Iā€™m probably missing something:

using System.Collections;
using UnityEngine;
using UnityEngine.Experimental.Rendering;

[RequireComponent(typeof(AdditionalShadowData))]
public class ShadowFilter : MonoBehaviour {
    int shadowAlgo = 0;

    void Start()
    {
        StartCoroutine(SwapShadowAlgo());
    }

    IEnumerator SwapShadowAlgo()
    {
        AdditionalShadowData data = GetComponent<AdditionalShadowData>();
        while (enabled)
        {
            int shadowDataFormat;
            int[] shadowData = data.GetShadowData(out shadowDataFormat);
            data.SetShadowAlgorithm(shadowAlgo, (int)ShadowVariant.V0, (int)ShadowPrecision.High, shadowDataFormat, shadowData);
            Debug.Log("Shadow Algorith: " + (ShadowAlgorithm)shadowAlgo);
            shadowAlgo++;
            if (shadowAlgo > 4) { shadowAlgo = 0; }
            yield return new WaitForSeconds(1);
        }
    }
}

Using HD Pipeline, i still have to update Shader Graph last version from Package Manager in order to stay up to date? Or the HD Render Pipeline package will be aligned with the last supported Shader Graph version?

Thanks!

It should give you the latest when you update, same goes for LWRP.

I believe the same applies for the Post Porcessing package, right?
Saw a commit that says ā€œrevert post process version for nowā€ on ScriptableRenderPipeline git.

Thanks!

Hi! Iā€™m not finding any subforum so Iā€™m asking here.

I wanted to follow a video tutorial about the shader editor and Iā€™m having trouble with 2018.2:
1 - I create a new project (3D with Highend Scriptable Pipeline)
2 - The default scene eventually loads all fine
3 - I import a model/prefab from the asset store
4 - All I see on the model is pink

The materials seem to be all wrong, how come?

Because those models and prefabs are still using materials that use traditional Unity shaders such as the Standard Shader. The new scriptable render pipelines use their own shaders and old shaders are not compatible.

Unity have provided some menu options that will upgrade existing materials, so long as they are based on Standard Shader etc rather than specialised custom shaders. Go to the Edit menu in Unity, then Render Pipeline, then Upgrade Project Materials to High Definition Materials. Or, to just upgrade one or several specific materials in particular, select them and then Edit->Render Pipeline->Upgrade Selected Materials to High Definition Materials.

1 Like

Ooooh! Thank you, I think this is what I needed! Thanks a lot!

1 Like

Hello there,
on a slightly different note the file https://github.com/Unity-Technologies/ScriptableRenderPipeline/blob/build/automation/TestProjects/GraphicsTests/Packages/manifest.json is not available anymore.
What can be used otherwise ?

I love the concept of ScriptableRenderPipeline, even if in my case I want a complete control of every pass and shader by writing from scratch.
But this is an amazing addition and at least gives the flexibility to create your pipeline!
Thanks!

Hey guys.

I am struggling a little with Antialiasingā€¦ i have a default (template) HD Pipe scene, with the Traption Guard imported from Adam samples.
No matter how much i change the Temporal AA settings, i always end up with some noticeable jittering (specially on smooth surfaces / edges being lit by light)ā€¦

Any advice to improve AA in Unity, specially on HD pipe?

Thanks a lot!

PS: in the picture the problem is not noticeable, i only attached to clearly show the kind of asset i am working on. In that plates on the head the jittering is worstā€¦