Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Shader Forge - A visual, node-based shader editor

Discussion in 'Works In Progress' started by Acegikmo, Jul 20, 2013.

Thread Status:
Not open for further replies.
  1. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Possibly, yeah!
    I've considered making an advanced mode that essentially makes the entire editor fully custom multi-pass based instead, with a color output only for each pass, which, would allow you to do that. However, I might make a special node output intended for outlines specifically, just like distortion is a multi-pass effect.

    Yes!
     
  2. Chaoss

    Chaoss

    Joined:
    Jul 8, 2011
    Posts:
    327
    I'll definitely be getting this as soon as it's released/in beta
     
  3. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Spent some time making new lighting features! This is coming in 0.07, which should be ready within a few hours :)

     
  4. spraycanmansam

    spraycanmansam

    Joined:
    Nov 22, 2012
    Posts:
    247
    Dammit! Missed the alpha signup.. definitely keen on this as soon as it reaches release stage! :D
     
  5. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    The alpha signup is still open :)
     
  6. Thomas-Pasieka

    Thomas-Pasieka

    Moderator

    Joined:
    Sep 19, 2005
    Posts:
    2,118

    Very cool Ace! Looking forward to build 0.07!
     
  7. Julinoleum

    Julinoleum

    Joined:
    Aug 31, 2011
    Posts:
    39
    Where do we sign up?
     
  8. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
  9. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Alpha 0.07 is now out! Plenty of neat updates in this, be sure to check out the changelog at the bottom :)

     
  10. SOULSSAGA

    SOULSSAGA

    Joined:
    May 6, 2012
    Posts:
    69
    HI !

    I WOULD LIKE TO ALPHA TEST SHADER FORGE PLEASE !
    ( My Mail is SoulsSaga@gmail.com / do i need to register and Request at polycount or somewere else ? )

    By the way : It is possible to add Some Nodes to:

    - Physical Based Shader Defenitions .
    - IBL - Image based Lightning
    - Triplanar Shadding
    - Layers With Photoshop Style Models
    - Relief Shading
    - Terrain Shader Support

    ??

    This SHaderForge IS becoming the Most Innovational Plugin in Unity !

    My deepest Congratulations !

    SIlva DInis
    / SOULSSTUDIO
     
    Last edited: Sep 12, 2013
  11. TechnicalArtist

    TechnicalArtist

    Joined:
    Jul 9, 2012
    Posts:
    725
    Very cool;)
     
  12. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    0.08 is now out! Here's a changelog:

     
  13. QuantumTheory

    QuantumTheory

    Joined:
    Jan 19, 2012
    Posts:
    1,072
    Acegikmo, this is looking fantastic.

    I'm a technically-minded artist but shader programming is a huge hole in my skillset. Where would you recommend going to people who wanted to learn cgfx or hlsl? I've been searching and I can't find anything that is thorough but easy to understand.
     
  14. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    If you want to do do code-based shader programming, I recommend taking a look at Unity's built-in shaders, available on the far right here: http://unity3d.com/unity/download/archive
    Modify them, see how things work together, compare them to each other etc, and then take a look at Unitys shader lab reference docs: http://docs.unity3d.com/Documentation/Components/SL-Reference.html

    If you haven't used UDKs Material editor (or Shader Forge) before, that can also help a lot in figuring out the most essential math parts of shaders :)
    What node-based shader editors generally do, is to auto-generate a lot of code you would have to write manually if coding the shader yourself.
     
  15. Parallel_

    Parallel_

    Joined:
    Dec 9, 2012
    Posts:
    90
  16. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Alpha 0.09 is now out!

     
  17. Taryndactyl

    Taryndactyl

    Joined:
    Jan 26, 2013
    Posts:
    16
    The rate at which you release dot updates is just awesome man!
    I'll definitely come back to this if (when) I need it and can afford it.
    Great product.
     
  18. TechnicalArtist

    TechnicalArtist

    Joined:
    Jul 9, 2012
    Posts:
    725
    "Just one word, awesome"
     
  19. khellstr

    khellstr

    Joined:
    Feb 16, 2012
    Posts:
    72
    Hey, where can I get this Shade Forge? Looks awesome.
    I got impression that if alpha is out, then I can download it somewhere, but can't find any link.
     
  20. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    You can sign up by following the instructions here :)
     
  21. - Tilveran -

    - Tilveran -

    Joined:
    Jun 4, 2013
    Posts:
    12
    This looks really, really good.

    I'm most used to working in world editors as principally I'm a designer, but I also have to be able to think like a coder or an artist for various things (especially when I'm writing C# or creating art - lol!) Since I first used one of these types of shader editors in the Unreal3 editor I have to say I much prefer it to writing shader code, especially if I can see how the shader is working node by node to match it with my expectations.

    Good work!
     
  22. Thomas-Pasieka

    Thomas-Pasieka

    Moderator

    Joined:
    Sep 19, 2005
    Posts:
    2,118
    You're doing a fantastic job Ace! Keeps getting better and better!
     
  23. smiljan66

    smiljan66

    Joined:
    Jun 9, 2010
    Posts:
    610
    One big question can this have real time reflections of the enviroment? not cube maps but the real time reflections? this would be very important
     
  24. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,999
    This is getting more and more impressive... I am guessing the normal map is used to drive the refraction...
     
  25. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Possibly, I haven't looked into it yet

    Thanks! And yes, that particular example used the normal map to determine the refraction. Refraction is a screen space UV offset in which to render the background :)

    Thank you!
     
    Last edited: Sep 24, 2013
  26. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Edit: Accidentally double-posted

    Might as well take this opportunity to name a few things new in 0.10 so far:

    - You can now edit the shader path
    - You can now select which renderers to compile for
    - Added node: World Position
    - Added node: Object Position
    - Added node: Light Position
     
    Last edited: Sep 24, 2013
  27. sgtkoolaid

    sgtkoolaid

    Joined:
    May 11, 2010
    Posts:
    858
    absolutely impressive. this will come in very handy for me a level designer and artist. :)
     
  28. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,999
    This is KILLER... and will definitely be worth the money :)... If you are still planning the skin, could you perhaps have a special graph just for that? Mainly for epidermal, subdermal, and a depth map just to avoid confusion... simple because Skin Shaders are more or less not lambert...
     
  29. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    It might be possible to do it with the present custom lighting support. Do you have any good resources on how to implement the type of SSS you're talking about?
     
  30. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,999
    The only ones I can think of are the Pre-Integrated Skin Shaders from Penners Paper (I am not a programmer) and TSD... would be nice to emulate the SSS from CryEngine 3
     
    Last edited: Sep 24, 2013
  31. showoff

    showoff

    Joined:
    Apr 28, 2009
    Posts:
    272
    I apologize if this has already been asked.
    Here is a list of things which I instantly notice and it would make using your tool a little easier.
    1. The ability to copy and paste single or multiple nodes with or without shortcuts i.e. (command-C(copy)(Mac) then command-V(paste)(Mac) or control-C(copy)(PC) then control-V(paste)(PC))
    2. The ability to duplicate nodes i.e. (command-D(Mac) or control-D(PC))
    3. With my limited knowledge for shaders I think it would be cool if your tool could have support for deferred lighting. I test several of the samples shaders and I notice that in deferred the shader only supports a max of 3 light sources. Maybe put a node which allows the shader to support deferred lighting.
    4. The ability to select multiple nodes at once in the editor by clicking and dragging.
    5. Breaking node connections by maybe (right mouse clicking) or even clicking on the lines connect between the nodes to break the link.
     
  32. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,999
    These two are DEFINITELY important...
     
  33. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Node multi-selection and copy/paste etc is planned, it's just a low priority thing :)

    Deferred rendering is a tricky one, because it's heavily undocumented, and nobody makes deferred shaders it seems! It will probably take a long time to get that working properly.

    Easier line breaking is planned! I have to consider a lot of different cases though for inputs, as RMB currently is for creating nodes, I wouldn't want to force you to have to "dodge" connections when you want to open the context menu.
     
  34. the_motionblur

    the_motionblur

    Joined:
    Mar 4, 2008
    Posts:
    1,738
    Stupid question: What is the difference between regular and deferred rendeing in regards to shader construction?

    I was under the impression that shader setups work for both rendering paths without much limitation except for pointlight shadows in forward rendering.
    The number of lights affecting a surface in forward rendering is set in the quality settings but how come there should be a limit to the number of lights in deferred rendering? I thought that was the whole point to deferred rendering: no limitation in number of lights and shadowcasters?
     
  35. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    I haven't done enough research on deferred yet, so take this with a grain of salt:
    You can mix rendering paths. When you are using a camera set to the deferred rendering path, it will render the shaders that support it with deferred rendering, and those that doesn't, with forward rendering, so those are still limited by the quality settings in that regard.

    The tricky part is that deferred is so, fragmented. It splits stuff up into buffers, and batch renders things together in screen space.
    The troublesome part (I think) is to pass information while processing all those buffers. Somewhere there has to be information regarding gloss, spec, anisotropy etc, which requires data passing. I think this is done by passing it through unused color channels. So for example, you may only use the G and A channels for the normal buffer, so you have R and B left to save information like gloss and spec. But then again, I need to do more research on it before I can say for sure how it works in Unity :)
     
  36. smiljan66

    smiljan66

    Joined:
    Jun 9, 2010
    Posts:
    610
    I think realtime reflections are a very important fact to get AAA quality this tool must have that i think is a must ,also more pople will buy it if you add that , so metallic and reflective surface will give AAA look for architectual ,or games visualization i hope you can add that , if you do that will be a +.
     
  37. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,999
    Deferred rendering is a beast to work with... and another beast that I work with, is Linear Rendering... Will your shader automatically send texture information in linear colour space?
     
  38. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Alpha 0.10 is now out :)
    (Click to see larger)



    @Neptune_Imaging: I'm not sure how the linear workflow would look with SF, but it should be trivial to support it :)
     
  39. Chaoss

    Chaoss

    Joined:
    Jul 8, 2011
    Posts:
    327
    Having had a long play with the alpha I can quite happily say that this is one of the best shader editors I've ever used, and I've used many! Please keep up development :)
     
  40. showoff

    showoff

    Joined:
    Apr 28, 2009
    Posts:
    272
    Node Panner Bug. The uv's will not pan in play mode but only in editor mode or in forge editor. I voted for it on the feedback forums. I also attach a example of the my liquid shader with the panner apply to it as a example.
     

    Attached Files:

  41. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    It's a known issue, but thanks a lot for providing the file!
    It has to do with Time, not the panner node specifically, here's why:

    The Unity built-in shader time, called _Time, only runs when you have started the game (Pressed play or in a build).
    So if you're in SF, with the game not running, and the shader is using _Time, you won't see it animate in the preview window, because _Time isn't running.
    I tried setting _Time to a value every frame manually in SF, which didn't work, so I had to define a new variable.
    I created an _EditorTime that runs while the SF window is open, so you can actually see your shader animate, without having to press play.
    However, _EditorTime is set every frame by SF, so it won't work in-game.


    Currently I see two possible solutions, but they aren't flawless:

    1. Have both _Time and _EditorTime, and just add them together in the shader. This sounds good in practice, but it adds an instruction, which it really shouldn't do. This means your shaders are one instruction more expensive, for something that makes no difference whatsoever in the final build.

    2. Compile two shaders, one for the preview, and one for the game. This is the best solution, but it will double the compile time, which, for some complex shaders, will be rather annoying.


    I'm waiting with it until I figure out a better way of doing it, but at the moment I'm working on implementing the bigger features.
    There might be some neat #ifdef you can use, but we'll see :)
     
  42. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Alpha 0.11 is now out! Just one feature this time, but it's quite a big one

     
  43. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Alpha 0.11b is now out. Alpha 0.11 had a major issue where the shader didn't compile if you were using textures and didn't have a UV Coordinate node in your shader, this has now been fixed :)
     
  44. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,999
    This is a beauty... I am definitely gonna keep my eye on this :)
     
  45. donzen

    donzen

    Joined:
    Oct 24, 2009
    Posts:
    54
    Is possible to see a video with the editor in action?
     
  46. FlatCube

    FlatCube

    Joined:
    Sep 29, 2013
    Posts:
    17
    Looks really great, very similar to UDK's Material Editor, which I really miss in Unity.
     
  47. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    Alpha 0.12 is now out! DX11 Tessellation Displacement and Vertex offset/animation is now implemented :)



     
  48. Yoska

    Yoska

    Joined:
    Nov 14, 2012
    Posts:
    188
    And why hasn't Unity hired you yet? Hint, hint. I would take this over new GUI and 2D updates. Delicious stuff. :cool:
     
  49. halley

    halley

    Joined:
    Aug 26, 2013
    Posts:
    737
    I've sent you an email just in case you've still got room for more Forge testers. I have a weird shader idea in mind and wonder if this node thing is able to express it, since I can't code shaders directly.

    Is this only able to do DirectX, or are some mobile shaders possible too?
     
    Last edited: Oct 6, 2013
  50. Acegikmo

    Acegikmo

    Joined:
    Jun 23, 2011
    Posts:
    1,246
    You can definitely make mobile shaders!
    Only Tessellation and Displacement is DX11 only, the rest should work in any case :)
     
Thread Status:
Not open for further replies.
unityunity