Search Unity

Feedback Wanted: Scriptable Render Pipelines

Discussion in 'Graphics Experimental Previews' started by Tim-C, May 9, 2017.

  1. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    >--> Specular AA
    Currently we support geometric filtering. It only improve specular AA for dense mesh (i.e usually those not using normal map). This can reduce sparkle but not full elimination.

    We still have to support texture filtering.

    With geometric + texture filtering you reduce sparkling effect.

    >--> Hair shader is listed for 2018.3... what about skin shader / eye shader / fabric shader (we saw it in the Windup >demo at GDC).

    Windup was an experiment, nothing is ship from it in the main line.
    You can already do skin in current main line. Of course we plan Hair, Eye and Fabric but ETA is fuzzy as depends on when resource are available. We expect to deliver something for Hair and Fabric in 2018.3

    >--> A little off topic, but do you have info on GPU lightmapper?
    Will be release as experimental in 2018.3
     
    elbows likes this.
  2. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    561
    You can get the newer versions of LWRP or HDRP from the Package Manager in 2018.2 beta or from Github if you want to mess with the latest.
     
  3. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    Book of the dead don't do special rendering, Veselin just mention that they have write a scattering tools, but this still rely on GPU instancing from Unity.
     
  4. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    561
    This works for me
    upload_2018-6-23_9-53-23.png
     
  5. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    SSR was suppose to be deliver in 2018.2. However we have currently disable it. We are not happy with the performance and quality. We are continuing working on it, but due to other priority it is delayed to 2018.3.

    There is a mode of SSR that is available that is call Proxy Volume that work, but the other mode name HiZ that is the regular SSR that you may think about is disabled.
     
    candycat likes this.
  6. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    Not supported yet.
     
  7. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    None of these features will be port in official HDRP, except for the sky occlusion system that could be deliver as a plugin for HDRP in the future.
     
  8. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    Yes, our area light don't support texture currently. We hope to give more love to area light in a near future.
     
    elbows likes this.
  9. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    No plan for that. There is asset store plugin that allow it.
     
  10. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    Support mean you will never use the feature in the game. It allow us to never allocate memory or shader variant.

    FrameSettings can be change at runtime or on different camera.

    LEt's take the example of Decal.

    Support decal mean we will not allocate memory for DBuffer and remove Decal shader variant;

    Frame Settings decal mean we will not render decal inside current camera. So you can disable decal rendering for planar reflection for example. It save GPU rendering cost but don't save memory.
     
    rizu likes this.
  11. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    Regarding area light shadow, it is not supported. We hope to put more love in area light in near future.
     
    rizu and elbows like this.
  12. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    Nope, for 2018.3 HDRP will still be experimental too. To be consider as production ready we need Terrain support, VFX editor support, VR support, console performance ready etc... We are not there yet :(
     
  13. elbows

    elbows

    Joined:
    Nov 28, 2009
    Posts:
    2,365
    Thanks so much for the info :)

    Do you think there are plans to add more types of lighting support to volumetric fog at some future unknown stage?

    I'm thinking about area lights, but also some kinds of baked lighting and maybe even emissive materials?

    I know some of these are harder to achieve than others, and that some things might not make sense if they dont support shadows yet. Or maybe some already work in some limited way already that I havent realised. You can probably tell that I lack the technical knowledge to know which light types it is practical to support in the volumetric system, so sorry if any of these are silly questions!

    As for area light shadows, I know this is one of the areas where progress has been made at the 'research end' of things this year (not pipeline research, general graphics research shared with the world), so I really look forward to the later time when this stuff goes from theory & stand-alone demo project to something in HDRP! If anyone is interested in this area light shadow research (again, not Unity or HDRP version), I think a demo was released the other day: http://casual-effects.com/research/Heitz2018Shadow/index.html
     
  14. petersx

    petersx

    Joined:
    Mar 5, 2015
    Posts:
    217
    No - SSS is not working, even on one monitor, when game window is undocked
     
    Last edited: Jun 23, 2018
  15. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    561
    Which version of HDRP are you on because in some older versions SSS would only show in one view if you have both scene and game view open. That's fixed now with the 2.x.x versions
     
  16. konsic

    konsic

    Joined:
    Oct 19, 2015
    Posts:
    697
  17. petersx

    petersx

    Joined:
    Mar 5, 2015
    Posts:
    217
    beta9 and hdrp 2.0.4
     
  18. petersx

    petersx

    Joined:
    Mar 5, 2015
    Posts:
    217
    it's weird - but now sss is working on every other monitor - I think there's a bug with it
     
  19. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    I was thinking about Aurora https://assetstore.unity.com/packages/vfx/particles/environment/aurora-80189
    But I may have misunderstand the question. You asked if volumetric will work with builtin Unity, but then you said plugin on builtin will not work on HDRP :), so guess you are looking for something that work on both builtin and HDRP. This isn't something we will work on.
     
  20. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    Of course everything is on the roadmap. But no ETA. Depends on resources, priority etc...
    So yes, in an undefined future, volumetric fog will work with area light.
    To work with indirect diffuse (emissive or lightmap/lightprobe), we need a volumetric lightmap. It is on the (far) roadmap but no ETA.

    Regarding the paper you mention, it is our Research department (Unity Labs). And this paper refer to path traced shadow. So incompatible with our rasterizer approach.
     
    elbows likes this.
  21. elbows

    elbows

    Joined:
    Nov 28, 2009
    Posts:
    2,365
    Thanks again for the info :)

    Regarding this last point, yes I have been following Erics work since he first presented the original area lights technique (without proper shadows) via Unity Labs a few years ago (actually I forget how long ago that was exactly). And yes, I should not have made it sound like the shadow research was a natural fit for your work/systems, and it is much too early I guess to know just what will happen with a 'mixed approach' era we might get in game engines in general. ie some of the approaches shown with ray and path tracing at GDC, which I understood to be hybrids where entire scene isnt raytraced, there is still rasterization, but with raytracing (and lots of denoise stuff) used for some specific features only. It might take a long time for this stuff to evolve, and there is so much left to do in HDRP with traditional approaches to realtime graphics, I should not get this far ahead into the unknown future!
     
  22. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    Yep, that the point of the paper. It target DXR / Hybrid rendering :)
     
    elbows likes this.
  23. Onigiri

    Onigiri

    Joined:
    Aug 10, 2014
    Posts:
    87
    @SebLagarde is it worth to support forward and deferred renderers in one pipeline? I'm not a rendering engineer and I had the impression that modern forward renderer is much more faster than deferred and also can handle more complex materials and vr. Also its very hard and time consuming to make everything work for both forward and deferred. I heard that forward cant handle many lights but I saw demos on youtube with hundreds of thousands dynamic lights implemented with some new forward technique(cant remember exact name). Can you elaborate about this?
     
  24. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    Hi, the only thing that mater regarding forward vs deferred is to measure it for your context, not what people say :)

    For example for our Fontainbleau demo, deferred path is faster of about 2ms on PS4 @ 1080p.
    All depends on how heavy is your geometry, how complex are your material etc...

    We have develop the HDRP so that you can chose between deferred and forward solely based on performance (in practice this is not fully true. We guarantee feature parity, but not feature quality parity).

    Full forward come with constain in term of performance, you benefit from implicit material classification as the compiler know what you render, but you can't do light classificaiton. Deferred can do both (but due to variant explosion can only do a subset of material classification). So the usual answer is always: profile for your game. And the benefit of HDRP is that you can switch between one or the other and measure.

    The reason why people chose forward for VR is because of MSAA, as MSAA is painful to support with deferred renderer. And usually people do very simple material with few light in forward (valve) to reach the required 11ms. So in this context forward doesn't mean complex material, but very simple one.

    >Also its very hard and time consuming to make everything work for both forward and deferred
    In HDRP this is transparent (from artist point of view). So you don't need to care about it.

    >I heard that forward cant handle many lights
    Never heard that :). Tile/cluster rendering allow many lights, either defered or forward. This is what we have in HDRP.
     
    syscrusher likes this.
  25. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,177
    I was bit surprised of this comment, I was expecting forward only mode to have only limited features. Are you planning to support things like SSR, decals (and mesh decals) on forward only?
     
  26. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    This is already supported: Decal, SSAO, SSS, Screen Space shadow work in deferred and forward mode.
    SSR in its current state work in deferred and forward for Proxy mode but we plan a full refactor for perf and quality reasons.

    So as I said: we have feature parity between deferred and forward.

    However in the future we will not have feature quality parity. In forward we have access to more information (like having the ambient occlusion to avoid double occlusion with SSAO), and it would be unfair to not use this information because the deferred path don't support it. So we will add quality improvement for forward mode when possible.
     
    rizu likes this.
  27. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,177
    Thanks for the reply. You mentioned current state of SSR, I've seen the new settings on Scene Settings but they don't really do anything on latest 2018.2.0b10 and 2.0.4-preview. Is it supposed to work already or is it still waiting for some changes from the engine side?

    edit-> seems like I'm not the only one wondering about this: https://forum.unity.com/threads/screen-space-reflection.536885/
     
  28. elbows

    elbows

    Joined:
    Nov 28, 2009
    Posts:
    2,365
    The answer is not much earlier in this thread: #706
     
    rizu likes this.
  29. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,177
    Ah, I missed it, thanks :) Kinda bummer we need to wait till 2018.3, hope we get it at least on 2018.3 betas soon :)
     
  30. Korindian

    Korindian

    Joined:
    Jun 25, 2013
    Posts:
    446
    @SebLagarde Some more questions regarding the 2.0.4 release of HD SRP:

    1. In the legacy pipeline, for reflection probes there are options for "Clear Flags" and "Background Color". In HD SRP those options are missing. If I remove the skybox material (which comes back no matter what), set the Camera "Clear Mode" to "Background Color" with a color of black, add a reflection probe, then the reflection probe background color is blue no matter what settings I change. Will those options come back in the future?

    2. In the legacy pipeline, there is an option to force reflection probes to be forward-only (by setting the Deferred Reflections shader to "No Support" in the Graphics Settings tab). This option was added in 2015 after a change was made in Unity 5.2.
    See this thread.
    Will there be an option to choose whether a Mesh Renderer is affected by reflection probes or not in deferred? Currently, setting a Mesh Renderer's Reflection Probes to "Off" does nothing.

    Thanks.
     
  31. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    1. Yes, we need to bring back clear option for reflection and planar, currently there is an issue.

    >If I remove the skybox material (which comes back no matter what),
    Never do that, HDRP use a volume settings system for environment https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/sky-and-fog. In a future version we will hide all environemnt lighting section on the lighting panel.

    2. we will bring framesetting option to reflection probe like for planar refleciton in the future. Framesettings allow to control deferred and forward. But be careful, in case of HDRP deferred or forward is the same. We need to provide a simple forward mode for the case of reflection

    >Will there be an option to choose whether a Mesh Renderer is affected by reflection probes or not in deferred?
    No, applicaiton of reflection probe is different than legacy. If you want to kill reflection probe like this, you need to provide an AO of 0 currently in the material inputs (later specular occlusoin will be expose in shader graph and you will be able to kill refleciton without killing GI).

    > Currently, setting a Mesh Renderer's Reflection Probes to "Off" does nothing.
    Thanks for the report, we will hide this parameter.
     
    Korindian likes this.
  32. cfree

    cfree

    Joined:
    Sep 30, 2014
    Posts:
    65
    IMHO it sounds like fight "sparkling effect" on smooth surfaces should be addressed as soon as possible (top prority, as everything hehe).
    Right now, even on a simple scene with smooth objects, or with water puddles, what catch the eyes is this "sparkling effect", specially when bloom enabled.
    Other than that the scene is very beautiful in HD pipeline, thats the reason i am counting the seconds to get rid of this sparkles on my scenes :)
     
  33. sirbrialliance

    sirbrialliance

    Joined:
    Sep 2, 2013
    Posts:
    12
    Some critical feedback here. I tried adapting a plugin I have to work under one of the pipelines. (LRP v1.1.11-preview)

    SRP still needs a lot of work if it wants to succeed. It's really not extensible, it seems you'd have to hand-write new features you want into a given pipeline by hand instead of using universal hooks and object-attached code.

    Specific things that don't work:
    • Camera.current is null in OnWillRenderObject
    • Don't get onPreCull, OnPreCull, OnPreRender, OnPostRender camera events
    • Calling Camera.Render() while rendering blanks out the rendered view. (And remember, you can't get the latest VR pose until you are already rendering.)

    If the answer here is "SRP shouldn't support things like that, it needs to be built into the specific pipeline" then:
    • Don't ask Asset Store authors to support SRP. We can't write something that's generally compatible without some common standards and good API hooks.
    • Don't expect third-party plugins that can augment any sort of visual capabilities in Unity.
    • Don't expect most people to be using any SRP pipeline in future.

    SRP should be a way to alter the way things like Camera.Render() work, not a regression of rendering systems toward the days when you wrote your own from scratch and had to hand-cobble in every special rendering feature you need.
     
  34. discofhc

    discofhc

    Joined:
    Dec 18, 2017
    Posts:
    39
    Hey guys, please help.
    The "Procedural Sky" values in the Volume settings are causing strange lighting behavior on indoor areas... the inside walls (even if i reduce smoothness to almost zero) are getting what appears to be strange reflections where should be dark (attached image)... disabling the sky eliminate the problem, but obviously is not an option.

    In vanilla Unity i can aliviate this same behavior decreasing the values on the "Environment Reflections"... where are this settings on HD Pipeline?

    Any other tip?
     

    Attached Files:

    Last edited: Jun 29, 2018
  35. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    For such a thing you must put a reflection probe inside your room (the reflection probe will take precedence over the sky and give you correct reflection indoor)
     
  36. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,627
    Since HDRP and Shader graph, there is little to zero augmentation required. HDRP for me, offers AAA rendering capabilities with similar performance. What is there you would do, that an AAA engine cannot?

    Funny joke.

    If you are making rendering tools, then it's sufficient (IMHO) to support LWRP and HDRP. I don't see what the big deal is. Studios and individuals have been asking for something that can compare with AAA for years. That comes at a price I willingly pay.
     
  37. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,177
    Shader Graph doesn't solve all shader needs. We still need custom solutions and that's pretty tedious process atm due to how SRP is built.
     
  38. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,627
    We are rapidly finding we do not need more, really. Just nudging existing stuff. Still finding it impossible to see what AAA is doing, that we presently cannot do within HDRP + shader graph. I even have great water. What is missing that *you* personally require?
     
  39. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,177
    Who is "we" in this context? Today, Shader Graph is far from feature complete but even when they get it all done, it still can't do everything people do today with custom Unity shaders. If you look what happens on other engines, UE4's materials allow pretty complex things but they still have their limitations and you still need custom approaches for some things.

    Water is one example as it's pretty complex thing when you do it "right". I've seen some impressive water shaders done in node graphs but most realistic ones have always been done with custom code.

    You could also look at Book Of The Dead, it's shaders are modified from the stock HDRP instead of building new ones with Shader Graph. In fact, they even removed the whole Shader Graph from the SRP on it because they didn't use it.
     
  40. GameDevCouple_I

    GameDevCouple_I

    Joined:
    Oct 5, 2013
    Posts:
    1,977
    @hippocoder @rizu I have to agree that custom solutions are needed. Or perhaps not always -needed-, but prefarable for sure! I love shadergraph, but I also want writing custom master nodes for it to be easier. I dont really care about the custom node workflow, as long as master nodes are not so difficult.
     
  41. IgnisIncendio

    IgnisIncendio

    Joined:
    Aug 16, 2017
    Posts:
    114
    Newbie here. So you're meaning that if SRP wouldn't support hooks and extension points, we'll start seeing things like "HDRP 1.0.4 Custom Water Fork" and "HDRP 1.1.2 Realtime GI Fork", making using and merging custom features a nightmare?
     
  42. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,627
    Exactly what I said, our studio, or "me". We are doing a complex 3D title that benefits from all the stuff you would normally find in an AAA complex 3D title. Environment. Characters. Effects (Indie budget, just saying - HDRP brings AAA rendering features to me)

    For example, today with HDRP you can make a clone of Uncharted 4, God of War, Latest Battlefield. Any Dice title (as far as rendering goes).

    What exotic thing do you want to make that isn't covered by these titles? Whatever it is you guys are making, it's going to have to be pretty custom I guess.

    With old builtin renderer I would have been totally in agreement, but HDRP is really, really good when you dig in. It's hard to figure out what is missing.

    But if you can totally nail what is missing, it would be best for it to be advertised so that it can be included in the graph or HDRP.

    If it's guessing at theoretical maybes, then I'm going to have to say that I don't need more than the above mentioned blockbuster titles.
     
    sqallpl likes this.
  43. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    561
    HDRP has/will have everything would you need to just make a high-quality game graphically. Book of the Dead was made before HDRP shader graph was out so it would be using a custom Lit shader rather than a Shader Graph shader. Anything too custom that is being mentioned is probably an SRP thing rather than HDRP. Meaning you might be thinking of a custom SRP otherwise, it's just asking for extra nodes in shader graph or just asking for a better way to just write shader code (which the devs know about) for those who prefer to do things that way if you don't want to use shader graph.

    upload_2018-7-4_19-40-32.png

    Being able to easily write custom master nodes will be nice as well. When HDRP is fully feature set matching what the Standard Lit Shader can do with all the lighting models present and yet to come (cloth, subsurface etc) that will be good for pretty much every situation.

    So from what I'm seeing it just comes down to more custom nodes/a way to easily make custom master nodes which will be for specific use cases (so that's a per project thing), an easier way to customize or write the Lit/Shader Graph shaders.

    I would say wait for Shader Graph to be finished before worrying about what's missing on the HDRP side of it since this will be the version that will have the most options per material.
     
    Reanimate_L and sqallpl like this.
  44. discofhc

    discofhc

    Joined:
    Dec 18, 2017
    Posts:
    39
    I am quoting another thread above, to contextualize...

    I ran into that shadow atlas size issue (error "Shadow allocation failed in the ReserveFinalize step").
    The only light on scene is a Directional Light (mixed) with shadow resolution at 2048... if i add any light (spot or point, low resolution - 128) to the scene i get the error and no shadows anymore. If i increase the shadow atlas height / width (to 8192) in HDRP settings the error goes away.

    My concern is that my scene is VERY small and very simple... i wonder if i will need to crank up to a much higher value the shadow atlas in bigger scenes, in order to accomodate more lights / high res shadows....
     
    Last edited: Jul 5, 2018
  45. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,374
    you might want to utilize per light shadow fading distance
     
    hippocoder likes this.
  46. Tim-C

    Tim-C

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    2,093
    Regarding hook points discussions:

    Right now we are working on a prototype for adding hookpoints to LWRP. This will allow for a subset of rendering plugins to be created, some we may ship with (like water).

    Due to the nature of all SRP's being different we can't provide a generic interface to this (incoming / outgoing data is different), but we will provide pipeline specific hook points starting with LW pipeline.
     
    DMeville, elbows, chiapet1021 and 2 others like this.
  47. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    976
    I started experimenting yesterday with HDRP under Unity 2018.2 latest beta. The results in the demo scene look pretty good on my 4K monitor, but I've run into some questions about architecture. I realize SRP in general and HDRP in particular are very early in development, but I'm looking ahead as to how best to make my Asset Store editor extension compatible. It's an edit-time tool primarily, and generates (and renders procedurally) meshes with a custom unlit shader that uses barycentric coordinates for wireframe highlighting as well as some other features.

    The rendered meshes are very small and simple, and rendering in the game mode is NOT intended to be a common thing -- it's for short-term use during debugging or for a very small number of meta-game objects such as quest targets or map markers. So my emphasis is on flexible configuration and easy deployment, not necessarily raw performance at runtime. (The point here is that I'm not doing draw-call-per object out of ignorance, but as a conscious choice allowed by the specialized nature of the tool.)

    My extension actually -- and to me somewhat surprisingly -- works correctly in the Scene View even in an HDRP project, but as I expected the objects are invisible in the game view.

    Of course I've read the wonderful post about the changed callbacks (thanks for that!) and have adapted an experimental version of my code to intercept the new beginCameraRendering event, and I've verified that I'm receiving those callbacks. Where I'm still in the dark is, how do I actually inject the drawing of the mesh into the new SRPs, without writing my own custom pipeline? If the only way to do an "immediate draw" in game cameras is through forcing people to use my custom pipeline for their whole project, then that's not viable. I've read some of the example code on Github and also the relevant posts on this forum, and so far I'm not seeing any way to inject a mesh draw without a custom render pipeline -- but I've got to believe I'm overlooking something.

    Currently the draws are happening with Graphics.DrawMeshNow(). Is there a general equivalent of this under SRP?

    One other thing I could do, if the SRP architecture allows it, is to inject the meshes into the render buffer, but I'm not clear on how to do that in a way that does not depend on the pipeline in use.

    I'm not asking Unity to write my code for me, and I'm also not needing to solve this right away since it's obviously going to be months before HDRP is "production ready". I'm just trying to get ahead of the curve a bit so I can gradually swing my asset's code base in a direction that allows me to maintainably support builtin rendering, LWRP, HDRP, and other people's custom SRPs.

    Is there documentation on how to add a custom node to the ShaderGraph? I'm considering whether it's worth implementing some of my existing shader's custom features as ShaderGraph nodes.

    Mainly what I'm asking for here is pointers to information I may not yet have found on the SRP Wiki and the rest of this forum, or if anyone else has solved this problem. (If you have, and your help gets me across this hump, I'll gladly "comp" you a copy of my asset!)
     
  48. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    976
    Some ShaderGraph feedback, since "feedback wanted" is in the forum topic:
    • It's pretty easy to use overall. I started watching an hour-long tutorial from Unite Berlin, but got antsy and started playing on my own even before the tutorial finished (although the tutorial is quite good...no offense to the presenter!).
    • I had an intermittent bug where the blackboard sub-window would "stick to" my mouse cursor and not let go. This usually happened if I was adding a Property input to it, and seemed to be related to trying to move the mouse out of the area of the blackboard while the current field was one of the data fields within the new Property rather than the blackboard window itself. I initially hit this under Unity 2018.1.6 with the latest SRP and SG from Package Manager. I haven't seen it as much under Unity 2018.2 beta, again with latest SRP and SG from Package Manager, so maybe it's a bug that has been fixed. (Closing the ShaderGraph window and reopening it on the same graph reliably resets away from the problem.)
    • One problem I've found with SG is that its asset files appear to have the same extension as regular custom-written shader source code. This makes for a conflict with third-party text editors such as Flipbook Games' excellent ScriptInspector 3. Since the option to export shader source from SG makes it very clear that a ShaderGraph asset is not just regular source code, it would be very helpful if SG assets were named differently from regular shader source so external tools can tell them apart. I've also reported this to the developer of SI3 to see if he can work around it.
    • You've got a lot of interesting nodes in SG, and I know more are being added. One thing that is very cumbersome to do right now is to select one of many inputs (of arbitrary type -- Vector, Color, Boolean, Texture/Map...) based on an integer value. I got it working with a string of branch nodes, but it's "chalky and unpleasant tasting" in the extreme. How about adding a generic Multiplexor node that can have an arbitrary number of data inputs and a single data output, with an integer selector input that chooses which one is routed?
    • It appears to me that your Vector1 type is roughly equivalent to a Float. Is this actually the case internally? If so, it might be clearer to rename Vector1 to Float or to clarify the equivalence in some other way.
    • This may be a reach, but it could also be useful to have some kind of enumerated input property. In my custom shader, for example, I accept a primary color as an input and also an integer that determines one of four algorithms by which a secondary color is determined (three are differently computed from the primary, and the fourth overrides the computation from a secondary color input). I can't be the only one who needs to do something like that. :)
    • It would be really useful to have some sort of corner/edge detection node built in, either barycentryc or similar, for things like wireframe effects or edge highlighting. If that's already present, I didn't see it. I tried experimenting with derivatives of normal and tangent direction, etc., but you don't get the same kind of result.
    • When time permits, please add to the SRP Wiki an example of how to make a custom ShaderGraph node type. :)
    • In the output preview, if one is using a custom mesh, there doesn't seem to be a way to actually move the preview viewport, just rotate and zoom it. This can be a problem if the custom mesh has its origin at the bottom or somewhere else that's not near its center, as would be the case with many architectural objects.
    Thanks for providing this feature. I think it's going to make a lot of designers and technical artists very happy.
     
  49. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    450
    As an ex-Frostbite guy I can't let say that :).
    Unity + HDRP is not there yet, even based solely on the rendering aspect. Considering only GPU rendering, we just start our journey. HDRP miss several steps (think about sky, particles, terrain etc... for example) but have few strength not found in other engines already.
     
    m4d, cfree, rizu and 1 other person like this.
  50. Snapshot

    Snapshot

    Joined:
    May 9, 2018
    Posts:
    5
    Hi Seb and Tim,

    So some quick notes after a few days evaluating SRP: HD for a large indie game (Pheonix Point). Still on 2018.1 as I'm testing on PC and XB1 currently, so my comments might be out of date a little. Focus for me is whether we can consider use it in production for a game releasing 2019.

    Performance and quality is pretty good on both PC and XB1, however there are places its lacking.

    Auto upgrade and texture packing from Standard to HD is nice.

    Shader graph is coming on well but bit worried by performance (note I wrote AMD's RadeonRay to UE shader graph translator a year or two ago, so I might be a bit paranoid about this ;) ).

    The material upgrade tools are great but it would be awesome to have the functionality available on a material (so for example letting the artists use single channel textures and auto-pack them on change). SRP:HD has a very different art interface (texture channels etc.) and ideally we could provide a custom input layer for the common cases (i.e. they are used to using Standard shader inputs)

    Structurally its not very modular or indeed scriptable itself, instead of having a base handling most geometry/shaders with bolt on fancy features, its an all or nothing approach.

    It seems to be focussed on new features rather than making it production ready. The underlying tile/cluster rendering is something we really benefit from and tbh I'd be happy with just the features unity currently supports at a production level with SRP:HD. No ETA on the basics part being production ready makes it hard to decide go/no go. Currently it seems we have to either use the existing and relatively slow default unity path or basically accept maintaining a custom renderer based on current SRP:HD.

    So my current thinking is that it would be possible to ship with it, but requires an experienced renderer/optimisation person/team that treat it as a 'drop' and then maintain/merge/fix over the product lifetime. The big gain for us would be performance rather than new features, so we stuck in the middle gap. Old Unity pipeline quality is okay if we accept low performance where SRP: HD has the performance but seems to be focused on new features.

    Anyway hope those thoughts are useful :)

    Thanks,
    DeanoC @ Snapshot Games