Home Adobe Substance

Substance Designer - Master Thread

18911131454

Replies

  • Froyok
    Offline / Send Message
    Froyok greentooth
    ZacD wrote: »
    If it's compression it's coming from substance bakes and not from messing with files or Unreal Engine.
    What file format do you use to bake your normal map ?
    TGA is limited to 8bits/Channel in Designer, try PNG instead.
  • NicolasW
    Offline / Send Message
    NicolasW polycounter lvl 13
    luthyn wrote: »
    Hey guys, so I'm playing around with FX maps trying to optimize some of the default noises that come with Substance.

    However, I've noticed that there is no 'Display Timing' options within the Quadrant nodes of the FX Map.

    lxKRqJ1.jpg?2

    - Inside the Quadrant Nodes, no times shown -

    5gCrBWY.jpg?1

    - In the regular graph, times shown. -

    I've checked under the little i icon in the top, but the only option available to display is the connector names.

    Is this a function that could be added or is it not able to be calculated?

    Bascially, I would like to see what part of of the Functions I'm making are causing the times to go up..if that makes sense.

    Functions are evaluated quite quickly, but they are evaluated for each drawn pattern. So displaying the timing for a single evaluation would not make sense..

    The computation time will be directly linked to the amount of patterns you want to draw + the complexity of the function.

    One thing to know : the functions are evaluated on the CPU but the patterns are drawn on the GPU, it means that the functions data are transfered from the CPU memory to the GPU memory (which can be quite slow as soon as the memory is not unified on our current hardware).
  • Harbinger
    Offline / Send Message
    Harbinger polycounter lvl 8
    I apologize if this has been covered, but my searching only yielded old results from last year.

    What options, if any, does Substance support for tangent basis? I just started playing with my copy of the software this morning and I'm doing some test bakes. My testing with cage-based bakes in Substance aren't quite as good as a cage bake with my traditional workflow in Maya. I'm trying to get the normals synced correctly in Substance's 3D viewport with no luck. I don't see any options on my low poly mesh, but I am using .fbx and my viewport shader is set to use OpenGL normals.
  • Jerc
    Offline / Send Message
    Jerc interpolator
    There are currently only 2 options for tangent basis.
    The default behavior is that if your fbx has tangents in it, we will use that and not recompute anything for both the baking and the display in the viewport, which means that if your game engines takes the tangent of the FBX too without recomputing them, you should get perfectly synced normals.

    Then you can choose to recompute tangents in the Preferences and in that case they will be recomputed using the Unity tangent basis and you'll get synced with that engine.

    We are planning on allowing the creation of plugins to use specific tangent basis in the future though.
  • Harbinger
    Offline / Send Message
    Harbinger polycounter lvl 8
    Jerc wrote: »
    There are currently only 2 options for tangent basis.
    The default behavior is that if your fbx has tangents in it, we will use that and not recompute anything for both the baking and the display in the viewport, which means that if your game engines takes the tangent of the FBX too without recomputing them, you should get perfectly synced normals.

    Then you can choose to recompute tangents in the Preferences and in that case they will be recomputed using the Unity tangent basis and you'll get synced with that engine.

    We are planning on allowing the creation of plugins to use specific tangent basis in the future though.

    Perfect, thanks!
  • Jeza87
    I have a question about the multi-material blend node.
    when u plug my graphs into it using the compact connections (green one) it dosen't want to connect and i find myself having to expand it every time to plug the 4 seperate nodes into their respective slots.
    I have reordered the outputs in each graph so they line up (Diff,Norm,Spec,Gloss)
    Is it because i changed all the outputs in my graphs to be RGB insted of the default RGBA and the M-MB node wants RGBA?
    Thanks!
  • luthyn
    Offline / Send Message
    luthyn polycounter lvl 8
    Jeza87 wrote: »
    I have a question about the multi-material blend node.
    when u plug my graphs into it using the compact connections (green one) it dosen't want to connect and i find myself having to expand it every time to plug the 4 seperate nodes into their respective slots.
    I have reordered the outputs in each graph so they line up (Diff,Norm,Spec,Gloss)
    Is it because i changed all the outputs in my graphs to be RGB insted of the default RGBA and the M-MB node wants RGBA?
    Thanks!

    From what I've found, it only likes to cooperate with RGBA but I don't know why. It's not just you though! :)
    NicolasW wrote: »
    Functions are evaluated quite quickly, but they are evaluated for each drawn pattern. So displaying the timing for a single evaluation would not make sense..

    The computation time will be directly linked to the amount of patterns you want to draw + the complexity of the function.

    One thing to know : the functions are evaluated on the CPU but the patterns are drawn on the GPU, it means that the functions data are transfered from the CPU memory to the GPU memory (which can be quite slow as soon as the memory is not unified on our current hardware).

    Also, thank you Nicolas, that helps a lot! So, would it make sense for the Quadrants themselves to have timings on them? Or would that also not make sense? I'm just trying to figure out which elements are the heaviest or take the most time so that I can make the most efficient nodes possible and steer away from elements that cost too much time.
  • TheBeardedBerry
    I have been looking a lot at Functions recently. One thing I keep finding myself wanting to see is a bit more feedback from the nodes themselves. Most of these things can be solved by doing tests and viewing the changes in the 2D/3D view but it would be nice to have (and quicker to iterate) some other feedback.

    - Is it possible to show some of the data flowing through the function graph? For example:
    TIJSRqJ.png

    I don't care about seeing the data update in realtime (would be wildly impractical) but it would be nice to see data update once when you make changes. My main concern is seeing an example of the data to check my work.

    - From what I can tell (please correct me if I am wrong) each function expects a specific type of output however when you are within the function graph its hard to tell what that output should be. You can usually get a good idea of what that output should be by looking at the widget (or if you understand how that sort of data usually flows). However, when you create a function it removes the widget which would normally tell you what the output should be.

    E1MaoSQ.png

    I bring these up because while I can see the results of my functions in the 3D and 2D viewports there are time when I would like to be able to debug the function logic at a slightly lower level. From time to time it feels a little like flying blind when you are working with raw numbers but can only see the output in the texture context.
  • ZacD
    Offline / Send Message
    ZacD ngon master
    Froyok wrote: »
    What file format do you use to bake your normal map ?
    TGA is limited to 8bits/Channel in Designer, try PNG instead.

    Yeah it was a TGA issue, there should really be a warning!
  • TheBeardedBerry
    NicolasW wrote: »
    Functions are evaluated quite quickly, but they are evaluated for each drawn pattern. So displaying the timing for a single evaluation would not make sense..

    The computation time will be directly linked to the amount of patterns you want to draw + the complexity of the function.

    One thing to know : the functions are evaluated on the CPU but the patterns are drawn on the GPU, it means that the functions data are transfered from the CPU memory to the GPU memory (which can be quite slow as soon as the memory is not unified on our current hardware).

    Thanks for this Nicolas, its always super helpful to know how the data flows through the system and which elements push your hardware the most! :)
  • ZacD
    Offline / Send Message
    ZacD ngon master
    More testing!

    This issue is because of problems both with UE4 and with Substance Designer, I documented the issues for Unreal Engine and Substance designer.

    I have a high poly model and a low poly model I'm baking with Substance Designer.

    3wfWyyv.png




    UE4 being broken
    If I bake normal map as a png in substance and import it into UE4, it's not automatically detected as a normal map, and there's some compression artifacts that are created in/by UE4. Using uncompressed settings in UE4 does not help.

    YAxZCZY.png

    yXFoWSF.png



    Substance Designer being broken
    If I bake a normal map as a tga, substance doesn't have 16 bit TGA support so there's similar artifacts to importing the png.

    wmNT2I2.png



    Photoshop being semi-broken and requiring work arounds, best quality solution
    If I bake a normal map as a png, open it with photoshop, save as a TGA for UE4, it has minimal artifacts. The problem with reopening and saving is that it adds an extra step, and for whatever reason, photoshop makes me have to open an existing TGA and save that file, I cannot just re-save the png or create a new file and save as TGA. I have no idea why I'm having that issue with photoshop. Would ideally prefer not to have to play with each file in photoshop in order to get them to save correctly.

    czI3lom.png



    So basically I'd just like Substance Designer to generate 16 bit TGA files for normal maps, so these issues can be avoided.

    Here's a zip file with all the files in question. (42mb)
    https://drive.google.com/file/d/0B7m3EkWf1vh6STByVFFUTmdIc2M/edit?usp=sharingit?usp=sharing[/url]
  • luthyn
    Offline / Send Message
    luthyn polycounter lvl 8
    Yea, 16 bit TGAs would be amazing. So Zac, there is no way to get Photoshop to batch that process for you? :/
  • iniside
    Offline / Send Message
    iniside polycounter lvl 6
    Why would you use 16 bit TGA for normal ?
    When it is imported to engine it get squashed to two 8-bit channels (3dc) anyway.
  • Froyok
    Offline / Send Message
    Froyok greentooth
    iniside wrote: »
    Why would you use 16 bit TGA for normal ?
    When it is imported to engine it get squashed to two 8-bit channels (3dc) anyway.

    Baking on an 8bits texture can produce dirty banding, while doing 16bits (and then convert back to 8bits uncompressed) can prevent this problem. Of course in the end the texture is compressed in the engine.
  • Goobatastic
    Offline / Send Message
    Goobatastic polycounter lvl 8
    A detail normal map can help with covering up the normal map banding issue but obviously at an extra cost.
  • hooblegooblin
    Offline / Send Message
    hooblegooblin polycounter lvl 5
    Can Substance Designer outputs be brought into Substance Painter as material presets?
  • luthyn
    Offline / Send Message
    luthyn polycounter lvl 8
    Hey, I don't know if it just my computer being silly, but ever since I updated to 4.2, the shift + click and drag outputs from one node to another isn't working. It is still working for my friend who is on 4.1 if I'm not mistaken.

    Is anyone else experiencing this problem?
  • dtschultz
    Offline / Send Message
    dtschultz polycounter lvl 12
    Hey, I'm sorry if this has been posted before, but I could not find it if it has: I am trying to figure out if the color mask for the Multi Material Blend has to be an SVG or can it be a bitmap? I have a bitmap hooked up and it seems to be doing the trick, but I just wanted to see if I need to convert the bitmap somehow. If so, what's the best way to do this? I don't want to bake in Substance, because I have a lot of high poly meshes I am baking down to, and I do not see a way to have multiple high poly sources in the bake to mesh panel.

    The other problem I am having is that the normals from my materials do not seem to be combining with my original baked normal map. I have tried the normal combine and the normal blend, and I am just not seeing any change. This could be tied to my SVG issue above, because I have not had this issue with my non multi material substances.

    Thanks.
  • Jerc
    Offline / Send Message
    Jerc interpolator
    @luthyn: This may have been a bug in 4.2. The next update will solve this issue though.

    @hooblegooblin: Absolutely!

    @dtschultz: You can use a bitmap as mask as soon as the separation between your materials is super sharp, like it would be on a svg.
    How are you trying to combine your normal maps? The way I do it is that I blend everything together and then blend the output of the multi-blend with my original normal map using a Normal Combine.
  • dtschultz
    Offline / Send Message
    dtschultz polycounter lvl 12
    Jerc wrote: »

    @dtschultz: You can use a bitmap as mask as soon as the separation between your materials is super sharp, like it would be on a svg.
    How are you trying to combine your normal maps? The way I do it is that I blend everything together and then blend the output of the multi-blend with my original normal map using a Normal Combine.

    Yeah, that's exactly what I tried. The normal map info from the multi-material is just showing up on the areas of the map outside of my baked map information, if that makes sense- so just in the borders. I can't figure out why. I tried flipping which map was in the input/output, but that didn't fix it. If this is unclear, I can post up screenshots tonight.
  • dtschultz
    Offline / Send Message
    dtschultz polycounter lvl 12
    Never mind -t his was complete user error on my part. I thought that the edge wear effects from the hot rod car would have normal detail to reflect the wear, but it's just a flat normal. I've fixed it now to do what I want.
  • Xoliul
    Offline / Send Message
    Xoliul polycounter lvl 16
    Hey ZacD, try using the ner linear output setting in SD, to make sure your normalmap is exported as linear and not srgb, that might make a difference.
  • EArkham
    Offline / Send Message
    EArkham polycounter lvl 9
    Does the Sun Bleach mask generator not work correctly? I don't seem to be able to get anything out of it except solid black.
  • garcellano
    Offline / Send Message
    garcellano greentooth
    Does anyone happen to know if there's a way to redirect the main Resources folder in an .sbs file?

    There's a few times where my SD would crash and when I open it, the assets in the Resources folder are unlinked. I end up relocating the files back to where it's linked.
  • EArkham
    Offline / Send Message
    EArkham polycounter lvl 9
    Couple of minor wishlist things for preferences:

    • It'd be great if we could set the format of exported images in preferences or somewhere. It's a little annoying to have to toggle it off bmp to something I actually use like tga. Also, it'd be great if it would remember the last folder where files were exported. Usually I export to a project folder that is located nowhere near the substance designer default folder.
    • Likewise, it'd be really nice if we could set the defaults for the 3d preview in preferences. After dragging in a mesh, I have to change the lights, the background, turn off the grid, etc. Not a big deal when you're dealing with one or two meshes, but it gets tedious when you're working with a dozen.
    • Remembering the last folder applies to baking options, too. Would be really nice to not always end up in the substance designer default folder. Also, being able to select one folder for ALL of the current baking options at once rather than one at a time would be really nice.
  • ZacD
    Offline / Send Message
    ZacD ngon master
    Xoliul wrote: »
    Hey ZacD, try using the ner linear output setting in SD, to make sure your normalmap is exported as linear and not srgb, that might make a difference.

    I'm just using the files straight from the baking part of substance designer, and I'm not seeing a linear/srgb option.
  • Jerc
    Offline / Send Message
    Jerc interpolator
    @EArkham Having global options for the bakers is a short term task.
    The rest is not scheduled yet but we could at least change the default settings to something more useful, such as having TGA by default as file format.
  • Janvdweg
    Here are some patterns and textures in various stages of completion I've been working on. For simplicity's sake I've upped them into a single imgur album: http://imgur.com/a/4yFhB Everything is generated in SD, no external resources used.
  • ZacD
    Offline / Send Message
    ZacD ngon master
    How do you make the material instance drop down box seen here? @19:45

    [ame="http://www.youtube.com/watch?v=LP7HgIMv4Qo"]Physically Based Rendering in Substance - YouTube[/ame]
  • Jerc
    Offline / Send Message
    Jerc interpolator
    You create an Integer Input for your graph, set its widget to "Drop down", then you can use switches/blends in your graph to switch between your materials depending on the index of the selected element in the drop down.
    You will probably have to create a custom function for that though.
  • Janvdweg
    EArkham wrote: »
    Does the Sun Bleach mask generator not work correctly? I don't seem to be able to get anything out of it except solid black.

    Works fine here. Sunbleach works on the green channel of the worldspace normals.

    Some patterns/textures I've been working on in various stages of completion: http://imgur.com/a/4yFhB It's really easy to go overboard with substance customization.
  • EArkham
    Offline / Send Message
    EArkham polycounter lvl 9
    Jerc wrote: »
    @EArkham Having global options for the bakers is a short term task.
    The rest is not scheduled yet but we could at least change the default settings to something more useful, such as having TGA by default as file format.

    That would be awesome.
    Janvdweg wrote: »
    Works fine here. Sunbleach works on the green channel of the worldspace normals.

    Ah, I see. I was working on a vertical stone wall. Guess I'll need to rotate it before baking world space.

    Speaking of bakes, does any other program bake a position map like SD (specifically on the Y or top-to-bottom)? I usually try to bake everything in Topogun from a high poly, but it has no option for position maps.

    SD is pretty fast with the bakes, so not a huge deal, but it'd be convenient to more easily organize the resulting files.
  • Jerc
    Offline / Send Message
    Jerc interpolator
    Substance Designer 4.2.1 is now available.

    This release is mostly about bug fixes (a lot of them) but we also rebuilt the thumbnails for all the filters in the library with easier to read previews and icons.

    You can find the full changelist over there.

    RUvFTvB.png
  • Computron
    Offline / Send Message
    Computron polycounter lvl 7
    What tangent space does Substance bake to? Unreal is synched with Mikktspace (xNormal) so it would most excellent if Substance had the option to bake to it.
  • cman2k
    Offline / Send Message
    cman2k polycounter lvl 17
    Xoliul wrote: »
    Hey Neox: Substance uses whatever normals are inside the mesh, so "explicit" like they are in UDK. You can tell it to override though. On your screenshot it looks like you just need to flip green though (they call it DirectX <> OpenGL normals).

    Here was the quote from earlier in the thread on this issue.
  • Janvdweg
    EArkham wrote: »
    That would be awesome.

    Ah, I see. I was working on a vertical stone wall. Guess I'll need to rotate it before baking world space.

    The face normals node should also work for wall textures. It uses the tangent space nmap.
  • empeck
    Offline / Send Message
    empeck polycounter lvl 18
    Janvdweg wrote: »
    Some patterns/textures I've been working on in various stages of completion: http://imgur.com/a/4yFhB It's really easy to go overboard with substance customization.

    Wow, these are awesome, I would love to see how they're done.
  • ZacD
    Offline / Send Message
    ZacD ngon master
    Jerc wrote: »
    You create an Integer Input for your graph, set its widget to "Drop down", then you can use switches/blends in your graph to switch between your materials depending on the index of the selected element in the drop down.
    You will probably have to create a custom function for that though.

    I tried looking at these docs, "Substance Designer 4.2 : Expose a Parameter" didn't really help much, I wish there was an example to learn from. I see how to add integers for custom functions, and how to expose, but after that I'm completely lost.
  • EArkham
    Offline / Send Message
    EArkham polycounter lvl 9
    You know... I just now noticed that there is no "Save As..." option in SD. Only realized it when I went to save a copy of a current package to work on some alternative textures ideas.

    Not a huge deal, I can just copy and rename the sbs in explorer, but "Save As" is a pretty standard file management thinger.
  • Janvdweg
    ZacD wrote: »
    I tried looking at these docs, "Substance Designer 4.2 : Expose a Parameter" didn't really help much, I wish there was an example to learn from. I see how to add integers for custom functions, and how to expose, but after that I'm completely lost.

    Take a look at the Filters->Blending->Blend node. It has a iteger parameter set to drop down list. Internally the blend nodes are set to switch and the opacity has a function to show or not show according to the blending type specified. It's a reasonable complicated thing to setup, not hard just a lot of tedious work where its easy to make a mistake. There might be simpler setups.

    EArkham wrote: »
    You know... I just now noticed that there is no "Save As..." option in SD. Only realized it when I went to save a copy of a current package to work on some alternative textures ideas.

    Not a huge deal, I can just copy and rename the sbs in explorer, but "Save As" is a pretty standard file management thinger.

    When I right click on a package I see a Save As option.
    empeck wrote: »
    Wow, these are awesome, I would love to see how they're done.

    Any pattern in particular?
  • EArkham
    Offline / Send Message
    EArkham polycounter lvl 9
    Janvdweg wrote: »
    When I right click on a package I see a Save As option.

    My bad, I was looking in the wrong spot.
  • Jerc
    Offline / Send Message
    Jerc interpolator
    There is a Save as option through a right click on a package. You shouldn't rename sbs files manually as it could potentially lead to broken dependencies.
  • empeck
    Offline / Send Message
    empeck polycounter lvl 18
    Janvdweg wrote: »
    Any pattern in particular?

    Yes, Complex Fracture 2, Granite 2 and PaperTearMarble 1.
  • Janvdweg
    empeck wrote: »
    Yes, Complex Fracture 2, Granite 2 and PaperTearMarble 1.

    The complex fracture one is a bit too complex (and horribly unoptimized) to do a quick write up on. Granite and PaperTearMarble are a lot more simle.

    Here is a mini-tut on how I made the Granite. I'll do the paper tear marble one later.

    http://janvanderweg.com/Substance/Granite/Granite.html

    output.jpg

    Usage example:

    Usage.jpg

    Follow the tutorial first so you understand how it all works. To save you all from the tedious job of exposing all the parameters and setting up the node attributes you can dl the complete node here:

    The polished granite stone substance is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

    http://janvanderweg.com/Substance/Granite/polished_granite_stone.sbs

    It also requires this utility package:

    http://janvanderweg.com/Substance/Granite/UtilityNodes.sbs

    Plop both packages into your library directory. It won't show up in the preset filters since they're set to equals instead of contains. You'll have to add a filter. With category set to contains "Generator" and any of the following tags: "Jan", "Noise", "Polished", "Stone", "Granite". Or you can type in "polished stone" in the quick filter edit box to find it.
  • empeck
    Offline / Send Message
    empeck polycounter lvl 18
    Thank you very much. I'm pretty new to the Designer, this will help a lot in learning.
  • ZacD
    Offline / Send Message
    ZacD ngon master
    Janvdweg wrote: »
    Take a look at the Filters->Blending->Blend node. It has a iteger parameter set to drop down list. Internally the blend nodes are set to switch and the opacity has a function to show or not show according to the blending type specified. It's a reasonable complicated thing to setup, not hard just a lot of tedious work where its easy to make a mistake. There might be simpler setups.

    Thanks, that helped a lot. I copied and broke apart the blend graph, figured out how to set up the drop down boxes, but I'm still having some issues.

    Basically I have 2 uniform colors plugged into a blend where opacity is supposed to be controller by the same opacity functions in the blend example, however, when I click the exposed function function called opacity, the custom function I copied over is gone and it's just a Get Float, how can I actually get that copied over. I assume it has something to do with the output of the function not being the same orange color.

    I think I just need to know how to create a custom function and get them to work, they are just not saving right for me for some reason.


    EDIT:
    I figured it out, I needed to right click, set as output node.
  • Janvdweg
  • ZacD
    Offline / Send Message
    ZacD ngon master
    Here's what I came up with for my final material selector, now I gotta get it working in UE4.

    mEyOEsB.png

    I was thinking about putting suggested roughness values next to the Base Color names.
  • Xoliul
    Offline / Send Message
    Xoliul polycounter lvl 16
    I did one of those too, Zac. One thing you can do, is look into visbility conditionals for parameters. The picking list for metal base colors only is important if your metallic value is really high, once you go lower (non-'pure') you're just approximating anyway and you can pick any color you want.
    So you could use a visbility conditional for the metal dropdown; show it only if metalness > 235 for example, if it's lower, show a regular colorpicker instead and use that vlaue.
  • ZacD
    Offline / Send Message
    ZacD ngon master
    I'd love to spend more time adding features to it, but it was enough of a struggle to get it to this point. Wish I could spend more time figuring out all the things I can do with it, but need to actually make some stuff with it!

    I have non-metals in the drop down as well, I figure I'll only use this for blocking purposes. Instead of having to make a bunch of materials or instances in UE4, I can just instance this substance for everything when I just need to establish base materials.
18911131454
Sign In or Register to comment.