Any plans to update the "Shader Mixer" node editing system?

linvanchenelinvanchene Posts: 1,382
edited December 2016 in Daz Studio Discussion

This post was inspired by remarks in another thread. I create a new thread in order not to go to far offtopic there.

update / edit: rephrase some sentences

 

 What are you looking for? Daz hasn't, as I recall, written any 3Delight hadrs since the Default Daz Shader - the application does support most of the newer features, we  lack shaders that use them

The underlying problem for both 3Delight and Iray in DAZ Studio is that the "Shader Mixer" is  not a user friendly node based editing system. It has not been in the past and it certainly is not anymore in 2016.

Users should be able to create their shaders easily by

- adding nodes

- connecting nodes with pins

- grouping nodes together to meta nodes or group nodes to keep the node layout manageable.

The current system is a maze of 100s of pins that can only be navigated with a lot of patience and even then it is completly unefficient and unfit to create and manage more complex shader setups.

The "lack of shaders" is a direct result of this outdated shader management system that seems to complicated for even very motivated people to keep experimenting with.

 

And yeah, Daz really ought to make or commission a better core shader to make use of newer features in some central way. Again, that's part of making a render option viable.

In 2016 in most other software "learning a render engine" means learning to create your own materials in a node based editing environment.

For new users it is great that they can buy shader products from artists and then simply click on a preset.

But for advanced users the current system of buying shaders in order to use "features" of render engines is a dead end from a creative and financial perspective.

People keep pointing out how much cheaper 3Delight and Iray are than other solutions.

Have you added together how much money you spent for shader products for both Iray and 3Delight?

Depending on how much you spent you could have purchased a full license for another 3rd party render engine that even offers a database with free material and shaders to download...

- - -

Keeping both the 3Delight and Iray node editing system  in an unuseable state and forcing people to buy shader products is from my point of view not an efficent solution.

- - -

Update /Edit:

Offtopic - Please disregard the following remarks. I do not delete them because one user allready replied.

Suggestions:

- if advanced DAZ Studio features can be provided for free then great keep it that way

if not:

- introduce again a paid DAZ Studio Pro version that offers advanced features like node based scene editing

- if necessary make an improved deal with both Nvidia and 3Delight so users can have access to advanced render engine features by paying an upgrade price

- - -

Post edited by linvanchene on

Comments

  • Users should be able to create their shaders easily by

    - adding nodes

    - connecting nodes with pins

    - grouping nodes together to meta nodes or group nodes to keep the node layout manageable.

    Shader Mixer has all of these. The grouping of selected bricks and collapsing are handled by the right-click menu.

  • The problem with shader mixer, RSL-wise, isn't even ease of use. It's that there are various bugs and "features" (limitations) in it. If you're wondering, I could enumerate the ones that have been found. Most of them have been "bug-reported", some a few times, but nothing changed =(

    To be honest, DAZ did fix a number of crippling bugs in shader builder popping up in some beta versions very very fast when we reported them. Which I personally value much more - because in theory, it's possible to make new, non-buggy shader mixer blocks using shader builder, but without shader builder making all-new DS shaders is extremely tedious (while possible).

  • wolf359wolf359 Posts: 3,837

    "Suggestions:

    - if advanced DAZ Studio features can be provided for free then great keep it that way

    if not:

    - introduce again a paid DAZ Studio Pro version that offers advanced features like node based scene editing"


    Hi agree with you on most points here except I dont see why there needs to be a Paid entire version of Studio proper, to have access to a more modernized shader Node system. 

    This could be just an optional paid addon like the Decimator or the full version of animate2, Mimic live, or the Grapmate and keymate plugins for us animators who find the Default tools in this area far too limiting

    In  my opinion, Blenders  Shader node system should be the model to emulate it as is quite elegant.

  • linvanchenelinvanchene Posts: 1,382
    edited December 2016

    @ Shader Mixer 

     Shader Mixer has all of these. The grouping of selected bricks and collapsing are handled by the right-click menu.

    I merely listed how a node system works so unfamiliar users get a basic idea.

    Obviously, pins and nodes are there.

    The issue is how those elements are implemented.

    What is missing:

    Scene base node editing system

    - The shader mixer is not scene based

     A scene base node editing system means that for every singe element in the scene there is a node. There also may be nodes for render settings, cameras etc.

    Examples:

    - If you have 10 objects you have 10 object nodes with pins for each surface.

    You create one material node and drag a pin connection to each surface that material should be applied.

    This works great for light emitting surfaces when you can set up one light and then link it to any surface in the scene.

    - - -

    live node editing system

    -> Currently you have to "import" one material from the scene and then try to edit it.

    Users should be able to click on any element of the scene in the node graph and then make changes that show up in the live viewport immediately.

    - - -

    Clear seperation of nodes for different render engines

    Nodes for 3Delight and Iray are currently availabe in a shared node graph system.

    While this has some benefits I wonder if the old way how 3Delight nodes were linked is best suited for Iray as well.

    ->  I would not mind separate node editing systems for each render engine when this makes it possible to work with Iray in the most efficient way possible.

    In addition an updated node graph editing system for Iray could also be more suiteable for use with other 3rd party render engines.

    - - -

    - - -

     

    @ plugins vs DAZ Studio key features

     


    Hi agree with you on most points here except I dont see why there needs to be a Paid entire version of Studio proper, to have access to a more modernized shader Node system. 

    This could be just an optional paid addon like the Decimator or the full version of animate2, Mimic live, or the Grapmate and keymate plugins for us animators who find the Default tools in this area far too limiting

    In  my opinion, Blenders  Shader node system should be the model to emulate it as is quite elegant.

    The shorter answer:

    The node graph editing system should not be a separately sold plugin by a 3rd party.

    It needs to be part of the official DAZ Studio SDK so other 3rd party developers can use it.

    Example:

    OctaneRender has a scene base node graph editing system.

    But without any changes to the DAZ Studio API a huge amount of OctaneRender features can not anymore be supported in the DAZ Studio plugin for OctaneRender

    compare:

    https://docs.otoy.com/manuals/products/standalone/v3/program-overview/the-graph-editor

    https://docs.otoy.com/#60The%20Graph%20Editor

     

    edit:

    links are forwarding to the landing section. Please search for the "Graph Editor" in the V3 manual to see some screenshots and further information about a scene based node graph.

    - - -

    update/edit:

    removed several paragraphs about the general state of the free DAZ Studio version and its limitations for advanced or professional workflows with 3rd party tools 

    Reason:

    trying to keep the discussion on the Shader Mixer.

     

    Post edited by linvanchene on
  • Clear seperation of nodes for different render engines

    Nodes for 3Delight and Iray are currently availabe in a shared node graph system.

    While this has some benefits I wonder if the old way how 3Delight nodes were linked is best suited for Iray as well.

    The Brickyard panel has a button at the top alowing you to choose which bricks - RSL or MDL or all - are shown.

  • wolf359wolf359 Posts: 3,837

    "The shorter answer:
    The node graph editing system should not be a separately sold plugin by a 3rd party.
    It needs to be part of the official DAZ Studio SDK so other 3rd party developers can use it."

     

     I agree however it would not have to be from a third party to be an optional paid add on

    We have the limited basic mimic plugin that Ships free with Studio
    and the Paid mimic live both owned/sold  by DAZ
    http://www.daz3d.com/mimic-live

  • Oso3DOso3D Posts: 15,042

    I would love some kind of brick search.

  • The brick grouping function in S/M is quite handy, especially as a way to store small algorithms (like the conversion from RGB to CMYK, or the optimized Disp/Bump/Normal set) for frequent use.  It's biggest drawback, though, is that grouped bricks rarely seem to work as well (if at all, sometimes!) as the same bricks ungrouped and spread across a third or more of the S/M workspace.

  • hphoenixhphoenix Posts: 1,335
    edited December 2016

    I would love some kind of brick search.

    +∞

    (I usually have the MDL reference open in a browser and do Find searches in the page to try to locate stuff.  But just being able to search by name would be a big help....)

     

    And the ability to take a block selection and easily turn it into a new custom brick.....I know there is a long frustrating way to do this, but there should be an easier way.  It would make it so much easier to design shaders and not have the screen filled with spaghetti and overlapping boxes.....

     

    Post edited by hphoenix on
  • mjc1016mjc1016 Posts: 15,001
    hphoenix said:

    I would love some kind of brick search.

    +∞

    (I usually have the MDL reference open in a browser and do Find searches in the page to try to locate stuff.  But just being able to search by name would be a big help....)

     

    And the ability to take a block selection and easily turn it into a new custom brick.....I know there is a long frustrating way to do this, but there should be an easier way.  It would make it so much easier to design shaders and not have the screen filled with spaghetti and overlapping boxes.....

     

    What we really need is a 'Node Wrangler'...like Blender has.  It makes working with Blender's node editor 100x easier.

  • hphoenix said:

    I would love some kind of brick search.

    +∞

    (I usually have the MDL reference open in a browser and do Find searches in the page to try to locate stuff.  But just being able to search by name would be a big help....)

     

    And the ability to take a block selection and easily turn it into a new custom brick.....I know there is a long frustrating way to do this, but there should be an easier way.  It would make it so much easier to design shaders and not have the screen filled with spaghetti and overlapping boxes.....

    There's obviously adding the code, and hooking it up to inputs and outputs, but in Shader Mixer you can - if you already have the code - do that in a single node. Once saved as a macro or function turning that into a custom brick for Shader Mixer is pretty straight-forward, though:

    once per shader brick:

    1. open Shader Builder and create a new shader (so that you have access to the Block Repostory)
    2. right-click on the function or macro and choose export

    to use the new brick in Shader Mixer

    1. Go to add a new brick and select Insert > Bricks (Default) > Functions > Utility > Shader Builder Block
    2. In the brick's option menu, click Set macro or Function
    3. Select the item exported from Shader Builder
  • hphoenixhphoenix Posts: 1,335
    hphoenix said:

    I would love some kind of brick search.

    +∞

    (I usually have the MDL reference open in a browser and do Find searches in the page to try to locate stuff.  But just being able to search by name would be a big help....)

     

    And the ability to take a block selection and easily turn it into a new custom brick.....I know there is a long frustrating way to do this, but there should be an easier way.  It would make it so much easier to design shaders and not have the screen filled with spaghetti and overlapping boxes.....

    There's obviously adding the code, and hooking it up to inputs and outputs, but in Shader Mixer you can - if you already have the code - do that in a single node. Once saved as a macro or function turning that into a custom brick for Shader Mixer is pretty straight-forward, though:

    once per shader brick:

    1. open Shader Builder and create a new shader (so that you have access to the Block Repostory)
    2. right-click on the function or macro and choose export

    to use the new brick in Shader Mixer

    1. Go to add a new brick and select Insert > Bricks (Default) > Functions > Utility > Shader Builder Block
    2. In the brick's option menu, click Set macro or Function
    3. Select the item exported from Shader Builder

    Precisely.  This is cumbersome.  It should be possible (in a perfect world) to simply select a set of bricks in mixer, right click and create a 'macro' or 'composite' block, that has the inputs leading in from outside the block selection, and the outputs that are leading out from the block selection.  It isn't actually a 'block', but simply a single block-size replacement for a network of blocks.  Would make developing reusable blocks (and sharing them!) much easier.  Then you just hook THOSE up.  And any 'composite' block could be right-clicked and select 'un-composite' and it would be replaced by the original block network.

    Of course, this isn't ALWAYS useful, as any inputs/outputs inside the network that aren't attached when you 'composite' them wouldn't be exposed, but a quick 'uncomposite' would re-expose them, then you could connect them, then re-composite the network.

    Especially since cuting and pasting between shader networks doesn't work.  You can C&P within a shader, but not cut a set of blocks from one, open a new one, then paste them.  Or at least it was broken last time I tried it.....

     

  • hphoenix said:

    It should be possible (in a perfect world) to simply select a set of bricks in mixer, right click and create a 'macro' or 'composite' block, that has the inputs leading in from outside the block selection, and the outputs that are leading out from the block selection.  It isn't actually a 'block', but simply a single block-size replacement for a network of blocks.  Would make developing reusable blocks (and sharing them!) much easier.  Then you just hook THOSE up.  And any 'composite' block could be right-clicked and select 'un-composite' and it would be replaced by the original block network.

    Of course, this isn't ALWAYS useful, as any inputs/outputs inside the network that aren't attached when you 'composite' them wouldn't be exposed, but a quick 'uncomposite' would re-expose them, then you could connect them, then re-composite the network.

    Especially since cuting and pasting between shader networks doesn't work.  You can C&P within a shader, but not cut a set of blocks from one, open a new one, then paste them.  Or at least it was broken last time I tried it.....

    Select the algorithm you want to reuse, then go under ShaderMixer's Edit menu to "Group Selected Bricks".  SM will compress them all into a single block, with input and output blocks where you left them (sometimes it helps to include a [Dead End] brick to eliminate unused output nodes).  Then, in the new brick's options menu, set the title to whatever you want to name it, and then (from the same menu) select "Save As Custom Brick" and export.  Make sure the Custom Bricks menu is pointing at the directory you've saved it to, and you can use it in as many shaders as you want.  (I find the custom bricks work best when expanded after import, but that might just be a habit held over from earlier versions of DS4.)

     

Sign In or Register to comment.