Announcement

Collapse
No announcement yet.

[SHELVED] Material Layering Feedback for 4.19

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    For interested here is my Uber shader: https://drive.google.com/open?id=1AN...Ahevz2ETk0uETg
    Feel free to use it as you please.

    Comment


      Quick question, maybe it's a easy one but i did not found some technical answer for that. In the Paragon pipeline for texturing they use texture mask for blended materials, using material functions and changing some parameters values, in the substance atlantis, they use some few master materials and work more with textures instead using materials blended together, is there a lot of difference in the cost of both way? In paragon the main reason for that is sacrificing some cost to be able to quick make skins / new models? Another reason i see is that working with materials is that i can use less textures, but i need a lot more of shaders instruction for that, is there a way to found out wich one would e better to work with? Thanks

      Comment


        I noticed that different Material instances with the same layers are compiled separately. This should be optimized. If Layers and LayerBlends are the same, it should reuse them instead of compiling new Shaders

        Comment


          Originally posted by Raildex_ View Post
          I noticed that different Material instances with the same layers are compiled separately. This should be optimized. If Layers and LayerBlends are the same, it should reuse them instead of compiling new Shaders
          The cause can be very simple. You have to un-tick the checkboxes in layer instances (see image below). This way you will use default settings from the instances, otherwise the material will overwrite the original settings and treat the layers as entirely new instances. This is actually annoying since the checkboxes are set as true when you drop the layers to slots, and that should be addressed as a bug.

          Click image for larger version  Name:	ticks.jpg Views:	1 Size:	88.6 KB ID:	1469626
          Last edited by SmartPolygon; 05-01-2018, 03:20 PM.

          Comment


            Originally posted by Luccas Machado View Post
            Quick question, maybe it's a easy one but i did not found some technical answer for that. In the Paragon pipeline for texturing they use texture mask for blended materials, using material functions and changing some parameters values, in the substance atlantis, they use some few master materials and work more with textures instead using materials blended together, is there a lot of difference in the cost of both way? In paragon the main reason for that is sacrificing some cost to be able to quick make skins / new models? Another reason i see is that working with materials is that i can use less textures, but i need a lot more of shaders instruction for that, is there a way to found out wich one would e better to work with? Thanks
            This is actually good question. All depends on what platform you're aiming and how much your game/project can afford of disk space, and what video card it will have to run.

            Definitely material layering is not a good idea for mobile devices, where you have very limited image samplers, and shader instructions.
            It's better to lerp single textures, and limit lerping to only what you have to, in a single not overly complicated material.

            On the other hand it's a good idea to use material layering for PC games, where you don't care that much for shader instructions. Also when game should be streamed/stored online and you are tight on space and with limited internet connection, so amount of disk space is very important, then you would want to use the same textures all over and over again.

            About the Substance, I don't really know much what they do in their plugin, and how expensive performance it has?
            Not everyone can buy it, and i think you can obtain similar results with material layering at the end...

            This is what I think at least.
            Last edited by SmartPolygon; 05-01-2018, 03:27 PM.

            Comment


              I'm having an issue with parameters embedded in material functions not being editable with the new system. The options are exposed and you can visually see the changes in the small material view port, but the changes don't take on the asset it self. Anyone have any idea how to make this work with the material function?

              If I take what is in the material function and place everything in the material layer like normal it works... but it breaks once I use a material function.

              Here you can see the change take place in the material viewport, but not on the asset itself.


              Here is the material function within the material layer.

              Here is how the material function is laid out.

              Comment


                I'm noticing in the 4.19.2 update that I'm not seeing the checkbox for enabling Material Layering under experimental? Has this been moved/removed. I do not have the option to create Material layer assets.

                Click image for larger version  Name:	nomateriallayer.png Views:	2 Size:	105.7 KB ID:	1470854Click image for larger version

Name:	nomateriallayer02.png
Views:	237
Size:	420.6 KB
ID:	1470856

                Did I miss something?
                Attached Files
                Last edited by SkunkSkeleton; 05-03-2018, 07:02 PM. Reason: added screenshots

                Comment


                  Originally posted by MMessnerACC View Post
                  I'm noticing in the 4.19.2 update that I'm not seeing the checkbox for enabling Material Layering under experimental? Has this been moved/removed. I do not have the option to create Material layer assets.

                  Did I miss something?
                  It has been moved to Project Settings while ago, see the image:

                  Click image for larger version

Name:	Settings.jpg
Views:	143
Size:	146.1 KB
ID:	1471054

                  Comment


                    Hi team, any plans to make it possible to sample landscape layers in layerblend assets?

                    Or alternatively make it possible to access an individual layer outside of the stack? ( so for example, you know a layer will be present somehwhere in master node-graph, you just don't know which layer yet - in a similar way to textures)

                    I feel like if there was a material layer parameter node that would be a great solution that would slot in perfectly with the old workflow.
                    Work Tutorials

                    Comment


                      Tim Hobson

                      I found a new Issue in conjunction with Landscapes.

                      You can only paint Landscape Layers, if the original Default Layer Stack utilizes Landscape Layers. If only Material Instances utilize Landscpae Layers (Default Layer Stack empty for example), they are not recognized.

                      Comment


                        Looks like that answers my question!
                        Work Tutorials

                        Comment


                          Should I put my feedback here on in UDN? So far I'm going to leave it here.

                          I'm missing that the TexCoord node doesn't have a parameter version, so I cannot make that exposed in the layer.
                          The shader compilation gets negative numbers so you never know when it's going to finish.
                          Also you cannot expose uvs variables(vector2) so to deal with uv I have to expose 2 scalars or 1 vector. Not cool.
                          The process of creating new material layers and material layers blend should be done from the material isntance with simple buttons to create default ones in the current folder (or where the material lives). I spend too much time duplicating my stuff for the new layers...
                          It would be good to see an overview of the cost of the final shader.

                          That's all for now

                          Comment


                            Is there a way to view the finalized layer stack material graph? I feel like this would be a good debug feature to add so we can make sure the layer stack output is sufficiently optimized

                            Comment


                              Hi there,

                              Just an organisational issue I've come across.

                              When making a layer I am trying to use static bool switches to keep parameters of a similar type organised. But unlike with a standard material instance, all the parameters are shown instead of those under the in-active branch being invisible.

                              So a standard instance works like so:

                              Click image for larger version

Name:	Normal-Instance.png
Views:	134
Size:	88.7 KB
ID:	1480003

                              But the same behavior doesn't occur in a layer stack:

                              Click image for larger version

Name:	Layer-Switch.png
Views:	143
Size:	166.7 KB
ID:	1480004

                              Just thought it necessary to flag in case this hasn't been picked up. Because it goes a long way to keeping things in order.

                              Comment


                                I assume that the current Layer Stack implementation is completely static, ie. it can only compile what's in the Material Layer Stack, and not what's in the Material Instances

                                Comment

                                Working...
                                X