Announcement

Collapse
No announcement yet.

[SHELVED] Material Layering Feedback for 4.19

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

    #31
    Originally posted by Oskar Świerad View Post
    Does it peform any optimizations automatically? Like discarding bottom layers early if they're fully covered by upper layers?
    Not at the moment - but this is something we would like to look into for future updates to the feature.

    Comment


      #32
      Originally posted by MDiamond View Post
      I was trying to recreate the original MatLayerBlend functions with the new interface, starting with the Override Base Color with an option to input a texture, but for some reason the UV tiling parameter does not work when the Matterial Layer Instance is in the stack. GIFs below. Any ideas?

      Originally posted by Virtuosic View Post
      I've been using this to great effect, however there are some things that don't appear to be working as expected - for instance i'm not able to use a Transform Vector node inside of a layer blend - i get an "Invalid node used in vertex/hull/domain shader input when I use it and plug it into the Alpha of a Blend Material Attributes node.
      I passed both of these along to QA to take a look at - thanks for letting us know!

      Comment


        #33
        Originally posted by Zero-Night View Post
        Noticed something a little strange when trying to work with the new system a little bit. Putting a static switch parameter in the actual material works as normal, but putting one in the material layer itself makes it so parameters from both true and false show up in the material instance. I don't think it has any performance difference, but usability wise it does clutter things a little bit in the list.
        Yep, this is actually on my list to fix


        Originally posted by Zero-Night View Post
        Other than that though, I'm really enjoying the new system so far and plan on changing my project over to use it for a lot of things! The only thing I really wish it had was some way of reducing instructions if a pixel was 100% masked (out of concern for performance using this project wide), but I'm not sure if that can be done.
        Awesome, great to hear! The masking is something that we would like to investigate in the future, so thanks for the feedback there as well.

        Comment


          #34
          Originally posted by Zero-Night View Post
          Spent a bit more time working on it tonight and found a few bugs/problems with the layering system:

          If you tweak a material layer enough, eventually it stops updating in the world and doesn't refresh on a new compile. Requires an engine restart to fix.
          Thumbnails for instances don't update if you change the properties, leading to misleading appearances (so a thumbnail showing a red sphere may really be a green one). If you duplicate the instance however, the new generated thumbnail is correct.
          We have seen this with texture parameters and are currently investigating - if you are seeing it with other parameter types, could you upload a screenshot?

          Originally posted by Zero-Night View Post
          The parent dropdown doesn't filter the instances properly, it still lets you pick an instance from another material layer entirely. This leads to buggy results and requires a little bit of fiddling afterwards to fix it. Not sure if this is intentional, but it seems like the intent is to have it only show instances for the material layer you pick for the parent, which is a great way of filtering things. Right now though, as stated, it shows instances for every single layer, not just the selected one.
          This should be fixed in the next preview - and yes, the intended goal is for the asset dropdown to only show instances of the material in the "Parent" field. If that parent is the same in the master material/the parent of the instance you're currently working on, sticking to the filtered instances should give you more performant variations.

          Thanks so much for all the feedback, this is really useful!

          Comment


            #35
            Also, for everyone working with Material Attributes, check out the Get, Set, and Blend Material Attributes nodes. They'll make changing just a few attributes way easier than having to reconnect all the nodes of a Break to a Make. More info about them is in the 4.14 Release Notes


            Last edited by Shadow.Storm; 01-23-2018, 11:36 AM.

            Comment


              #36
              Originally posted by Shadow.Storm View Post

              We have seen this with texture parameters and are currently investigating - if you are seeing it with other parameter types, could you upload a screenshot?
              Sure! Attached is a screenshot of the broken thumbnails, these are being modified with a 3 vector, I wasn't touching any of the textures.
              Click image for larger version

Name:	
Views:	0
Size:	184.3 KB
ID:	1417514

              For the tweaking the material layer until it breaks updating, I wasn't seeing this in the material instance UI, but just in the normal material editor. I was messing with ways to pack roughness and a normal map in the same texture just to see if it could be plausibly done with the new system, and all of a sudden the engine just stopped caring about me connecting or disconnecting nodes when I applied the changes.

              Originally posted by Shadow.Storm View Post
              Thanks so much for all the feedback, this is really useful!
              Glad to be able to help!

              Originally posted by Shadow.Storm View Post
              Also, for everyone working with Material Attributes, check out the Get, Set, and Blend Material Attributes nodes. They'll make changing just a few attributes way easier than having to reconnect all the nodes of a Break to a Make. More info about them is in the 4.14 Release Notes
              Click image for larger version

Name:	
Views:	0
Size:	81.1 KB
ID:	1417515

              Is there a difference between that and what I've done here (this is the quick dirt layer I made for this new system)? I'm not sure if there's a drawback to doing it this way, obviously I can just change it to the get/set/blend nodes if they work better.

              Comment


                #37
                Originally posted by Zero-Night View Post
                Is there a difference between that and what I've done here (this is the quick dirt layer I made for this new system)? I'm not sure if there's a drawback to doing it this way, obviously I can just change it to the get/set/blend nodes if they work better.
                The final shader should be very similar whichever method you use, the change is more in authoring the graph. When using Get/Set instead of Make/Break it generally gives you a smaller graph and will be better protected against potential future changes, e.g. new attributes can be added in later without having to re-connect an extra pin required by the Make/Break nodes. If you're using "built-in" engine functions you shouldn't need to worry.

                Comment


                  #38
                  Had less time to play with this..

                  First... system is avesome.. our master material contained 100 static switch to handle all of "our" possible requirements

                  Now finally i dont need wait 5k shader compile when new feature is requested.

                  btw, maybe i am wrong, but uv scale is not working in layers?

                  Refs:

                  https://i.imgur.com/Xg0I6Uw.png

                  https://i.imgur.com/1YJL57m.jpg

                  Comment


                    #39
                    Originally posted by AmphDev View Post
                    Had less time to play with this..

                    First... system is avesome.. our master material contained 100 static switch to handle all of "our" possible requirements

                    Now finally i dont need wait 5k shader compile when new feature is requested.

                    btw, maybe i am wrong, but uv scale is not working in layers?

                    Refs:

                    https://i.imgur.com/Xg0I6Uw.png

                    https://i.imgur.com/1YJL57m.jpg
                    Can confirm this. I have been trying to wrap my head around ML and just when I thought I had a good working example I run into this lol. The Background works fine and an exposed shared input connection works fine but once I add in an additional layer the extra layers do not honor that shared input setting for the UV tiling and the exposed parameter shows "Multiple Values" instead of what is expected. You cannot also set the value this way once this has happened.

                    Comment


                      #40
                      Hi all! We're currently looking into the UV scale issue, but the thumbnails not updating should be fixed in 4.19 Preview 2!

                      Comment


                        #41
                        Hello. I've done the Uber thingie here for those interested: https://drive.google.com/open?id=134...SdaYlI-q8xDSB3 Hope you like it

                        Comment


                          #42
                          I have an idea, tell me if it's going to work with this.

                          Have one material in wireframe mode with emmisive lighting and a vertex displacement ever so slightly inflating the model. And then another material "underneath" with just a flat color.
                          Would that work?

                          I've been trying to figure out how to render a wireframe beauty shot of models in UE4, I can do it in 3dsmax or blender sure but doing everything in engine would save me a bunch of time.

                          Comment


                            #43
                            I keep getting crashes whenever I try to open a material with the feature enabled, but I'm also running off code from the 4.19 branch in GitHub, not the preview build; either way, I'll toss up a callstack and use case to the bug reporter a bit later.
                            Trent Polack (@mittense)
                            Personal Site | Development Blog | Joy Machine

                            Comment


                              #44
                              In 4.19 Preview3 when I click and start dragging the material layer in the editor's content browser I get instant crash. Cannot open any of the materials done in 4.19 preview2, unfortunately cannot use it as it is. By the way, I've updated today the Uber shader I did few days ago, see the link in my post #41 Is there a way to reverse the engine to preview2 for now?

                              Comment


                                #45
                                Originally posted by SmartPolygon View Post
                                In 4.19 Preview3 when I click and start dragging the material layer in the editor's content browser I get instant crash. Cannot open any of the materials done in 4.19 preview2, unfortunately cannot use it as it is. By the way, I've updated today the Uber shader I did few days ago, see the link in my post #41 Is there a way to reverse the engine to preview2 for now?
                                We'll check on click and dragging, but there were a few crash fixes just submitted that unfortunately missed the cutoff for Preview 3.

                                Comment

                                Working...
                                X