Trying out this software. I have a question: how can I see gloss map in the 3d preview? It doesn't seem to show on any shader...
This is a good question... I haven't used their native 3d viewer much, I generally right click on the graph and export all outputs to be auto-loaded in Marmoset, I'll poke around with their materials, but I'm sure Nicolas might beat me to it...
The blinn / relief / tesselation /parallax and since 4.1.1 the Physically_specular_glossiness shaders use a glossiness map.
Quick tip : you can manually assign a node to a shader sampler using RMB drag&drop from the node to the viewport (yes I said RMB). If the node contains multiple outputs (diffuse, specular, gloss..) all these outputs will be assigned to the shader automaticaly.
I have started tinkering around with the FX-Map and had a quick question I wanted to throw out here.
Is there a way to expose the float values of a function inside of a quadrant parameter? Following Kenny Lammer's tutorial I added some a random function to the offset and rotation of a quadrant but its annoying to go back in there to adjust the slider for each quadrant if I want to change it.
What do people do for padding in SD? I understand it does padding differently from Xnormal, but for svg padding just seems to be entirely broken, as different parts overlap eachother.
I need to bake my material mask (from MatID) with at max 1 padding or the uv islands start overlapping (in this particular case the skin starts overlapping the hair, the eyes the face... not a particularly good look).
So I leave the padding super low, but haven't yet found a way to do padding on the final outputs, so I'm still taking my files into Photoshop to use the Xnormal filter. Bit ridiculous, hope there's a way to change this?
I have started tinkering around with the FX-Map and had a quick question I wanted to throw out here.
Is there a way to expose the float values of a function inside of a quadrant parameter? Following Kenny Lammer's tutorial I added some a random function to the offset and rotation of a quadrant but its annoying to go back in there to adjust the slider for each quadrant if I want to change it.
Sure, you can create a new parameter in the graph properties (select the graph, and click on the "+" icon in the "Input Parameters", properties panel). Modify the type if necessary (Float1 by default)/rename the parameter.
You can then use it in a function by selecting "Variables=>GetFloat" (or another type, depending of your parameter).
What do people do for padding in SD? I understand it does padding differently from Xnormal, but for svg padding just seems to be entirely broken, as different parts overlap eachother.
I need to bake my material mask (from MatID) with at max 1 padding or the uv islands start overlapping (in this particular case the skin starts overlapping the hair, the eyes the face... not a particularly good look).
So I leave the padding super low, but haven't yet found a way to do padding on the final outputs, so I'm still taking my files into Photoshop to use the Xnormal filter. Bit ridiculous, hope there's a way to change this?
I've recently made a filter to workaround this problem, it's the same diffusion filter as the one we apply on baked bitmaps. I've not added it yet to the default library I'd be interested if you can test it.
It works with any image that contains an alpha channel, but it requires the rgb to be pre-multiplied by the alpha (if it's not, there is parameter to do that).
Alright, I'll give that a go, thanks!.
Another thing I'm up against is that I'm trying to edit an svg, I'm having to wait a few seconds between each tweak, and changing an element's colour is frustratingly slow (sd's crashed twice while dragging in the colour picker). Is there a way of freezing the realtime updates and pressing a button to see the end result?
edit: I only see a 'save all' mapped to ctrl-shift-s, so does that mean I've been pressing ctrl-s pretty much for no reason at all?
I'm still getting black lines around every island. I'm piping the svg into an rgb-a splitter, the alpha channel of which goes into a blend node with the diffuse on the foreground, nothing in the background.
Here's a screenshot of what I'm talking about: https://www.dropbox.com/s/nnyvdbloz9wpbvh/Screenshot%202014-03-19%2011.55.50.png
edit: the problem is elsewhere. I've tried this on the normalmap and it works perfectly. Now to figure out what's going on, but it's probably the AO or curvature bake...
edit again: nope, padding in the multi-material blend!
Just for your information, the update depends on some factors: if you are visualizing a node connected to the svg in the 2D or 3D view (an output for instance), all nodes in between will be updated at each change in order to update the 2D/3D view accordingly.
So you can eventually close the 3D view to prevent that.
Or you can use the "suspend engine" option (in the Tools menu), the shortcut is shift+escape. This will disable the computation of any node. In your case you should then edit the svg directly through the explorer (instead of through the graph).
edit: the ctrl+S shortcut works either on a selected package/graph in the explorer or when the focus is made in the graph. Look at the * next to the package name to check if it's correctly saved or not.
So, it was padding, but padding seems to work much differently than I'd expect: https://www.dropbox.com/s/fxgp16folal7qlm/Screenshot%202014-03-19%2012.14.02.png
You're looking at the result of a multi-material blend that's being fed an svg (rendered from the lowpoly's MatID).
I've had to up the padding in the blend to get rid of the black lines, but what I'd expect is that padding would never overlap. As in Xnormal's Dilation, it just grows until it touches. The way it's set up in SD, I don't understand how I'd ever cleanly mask off an area without running into these issues.
So yeah, if two parts are on top of eachother in the svg, I expect nothing to happen there, only at the edges.
I took a look at your asset, you should indeed avoid using the padding in the svg, make sure you get straight borders out of the multi material blend then apply the diffusion filter at the very end.
I'll see if a dilation filter similar to the one in xnormal is possible.
Thanks for looking into this. It's not just the padding in the svg, it's also when I use padding in the multi-material. If I don't, I get a little black edge around some of my uv islands, making it so the dilation filter is actually making that worse.
For any next asset I think I'll just poly/vert-paint my highpoly, but it'd be nice to get the mat-id workflow to work well for me too. You have my source file, can you identify a better way to achieve the desired result?
Here is what I did to get a good result :
- no padding in the svg (so you don't have any overlap)
- padding parameter to the max in the material blend node (to avoid blurry edges)
- reinject the alpha channel from the svg to the end result
- apply the diffusion filter (enable the pre multiply option)
I've finished the dilation filter, I'll send it to you for testing.
Hey Nicolas, can I have the dilation filter too? I'd love to try it out
Also, I ran into this problem:
I'm creating some tiling patterns, but blurring them breaks the tiling. How should I work around this?
(It's a single line with a bunch of warps to get this shape)
@Jarrede: Red looks cool, but what about red + white? I'd try mixing in more colors.
Hi there, this is my first approach for designer. Maybe second. I want to make whole scene procedural, so every texture will be genereted in Designer. So, first - bricks!
No pure facture work done yet, material isnt setup yet as well. I focused on bricks shape. Let me know what you think!
Could this (or rather should this) be used to create Roughness and Metallic outputs from scratch for PBR?
So is it possible to start with diffuse+normal+AO and end with a complete PBR setup?
Could this (or rather should this) be used to create Roughness and Metallic outputs from scratch for PBR?
So is it possible to start with diffuse+normal+AO and end with a complete PBR setup?
You can do whatever you want. However working from scratch in Designer allow you to easily reuse some masks multiple times. For example if you mix wood and metal, the mask used to differentiate their color in the diffuse can be used for the roughness too.
It's just more convenient. You can of course start from you baked maps and your diffuse to end with your other PBR maps. You will just have to apply some filtering has you would do it in photoshop.
I've only been learning SD the past few days, but I've got to say... the potential is staggering. This is a very powerful tool. Being able to create and modify normals and specular at the same time as the diffuse alone makes it such a time saver.
I'm still in the habit of masking out my material IDs by hand in photoshop however, heh.
Will SD eventually be able to handle exporting resolutions higher than 2048x2048?
If you use Player you can do 8K, maybe even 16K. Needs a heavy PC though.
I doubt I'd go higher than 4096x4096, and I prefer doing 2048x2048 or less, but for some reason 3072x3072 and 4096x4096 make decent selling points for some of my projects so it's nice to know I can do it.
[Edit rather that adding an off topic post] - I'm aware that 3072x3072 isn't for real time or game engine rendering, but the projects I'm referring to don't require power of two textures.
Their are actually 2 graphs:
- dilation_1 : with some options (fast/acurate), and a cpu engine compatibility option. It's quite slow, but the algorithm is "correct"
- dilation_2 : a lot faster, works nice on plain colors (like svg/id color), may not work very well with images like normal maps..
If you guys can test these graphs and tell me which one works the best it'd be great!
I doubt I'd go higher than 4096x4096, and I prefer doing 2048x2048 or less, but for some reason 3072x3072 and 4096x4096 make decent selling points for some of my projects so it's nice to know I can do it.
3072 is not an actual size used in realtime rendering though.
(edit: nevermind about the error, download was corrupted, fixed)
I've tested the dilation filters and this is what I found:
Dilation 1: Works great, but only if mode is set to fast and CPU engine compatibility is set to True. This is exactly what I expected:
If mode is set to accurate, I get weird artifacts:
If CPU engine compatibility is set to false, the background seems to go a bit too dark:
Dilation 2: Gives some harsh lines and there's a limit to how much you can dilate. 16 is quite okay for small stuff, but with bigger textures might be a problem.
Also, one thing that I've observed is that if you have a sharp alpha, you tend to get harsh lines with dilation 1:
By doing a blur pass on the alpha channel, they're mostly gone:
With dilation 2, the harsh lines are always there, even if you blur it a lot!
Thanks a lot for those nodes
Another question - How can I get SD to output 24bit TGAs? It always saves 32bit even if I set the "usage" on the output node to RGB instead of RGBA.
Hi Fonfa,
Thank you for the tests.
About the artefacts using the accurate mode : you need to check the "premultiply rgb" parameter.
For dilation_2 I can extend the value to 32, are the harsh lines really a problem ?
It would be really nice if you could compare the mips for each version, as it's what really matter
Just purchased Painter, and all I have to say is... Bravo!
This is pure witchcraft. I am having so much fun right now. Gonna spend the night creating mats in Designer, and test them in Painter.
The material painting is way smoother than I thought.
Is it possible to use an SVG color map, to lay down base materials, like you can in Designer?
If not, what is a good alternative?
Edit:
Just realized I can export my SubstanceDesinger bitmaps and use those as a base material layer, so ignore my color map question :P
I noticed when using the multi_material_blend (the one that goes up to 16), it never seems to show Material1. Only "Channels," "Material2," "Material3," etc.
Am I missing something? Makes it a little hard to reassign materials by SVG since you can't really be sure what Material1 is set to.
I noticed when using the multi_material_blend (the one that goes up to 16), it never seems to show Material1. Only "Channels," "Material2," "Material3," etc.
Am I missing something? Makes it a little hard to reassign materials by SVG since you can't really be sure what Material1 is set to.
If I'm not mistaken, The Material 1 Slot is the defualt material.
Any "un-assigned" part of the mesh would get the default material.
If I'm not mistaken, The Material 1 Slot is the defualt material.
Any "un-assigned" part of the mesh would get the default material.
Ahhh, I see. So if you have 3 assigned materials, for example, "metal," "bolts," and "plastic", your multi_material_blend will actually have 4 inputs -- 1-default, 2-metal, 3-bolts, 4-plastic.
Double post, heh. Not sure if this has been noted before. Issue when importing models with multiple materials:
As you can see, you only get a list of the material IDs in the baking window.
In the 3D view, you actually get whatever material names you assigned in your modeler -- but not in the baking window, where it's very important to know which is which.
On that note... being able to use multiple UV maps on a model in SD would be nice.. I do like to split things up into smaller maps so its more efficient and possibly reuseable
This is a good question... I haven't used their native 3d viewer much, I generally right click on the graph and export all outputs to be auto-loaded in Marmoset, I'll poke around with their materials, but I'm sure Nicolas might beat me to it...
Jarred, oh how I hate asking questions that I think must be obvious to everyone but me, but how do you go about the process of having Marmoset auto-load your outputs and which output method(s) do you have to use in SD to reach this goal?
Jarred, oh how I hate asking questions that I think must be obvious to everyone but me, but how do you go about the process of having Marmoset auto-load your outputs and which output method(s) do you have to use in SD to reach this goal?
Toolbag 2 has an option to auto-reload the textures. I don't remember exactly where, but it's probably under the preferences settings.
And for re-exporting all the outputs of the current graph, you can use the green arrow in the 2D view to export all of them at once.
Double post, heh. Not sure if this has been noted before. Issue when importing models with multiple materials:
As you can see, you only get a list of the material IDs in the baking window.
In the 3D view, you actually get whatever material names you assigned in your modeler -- but not in the baking window, where it's very important to know which is which.
Thanks for the report, it should be fixed in the next release.
Hi Fonfa,
Thank you for the tests.
About the artefacts using the accurate mode : you need to check the "premultiply rgb" parameter.
For dilation_2 I can extend the value to 32, are the harsh lines really a problem ?
It would be really nice if you could compare the mips for each version, as it's what really matter
Thanks again!
Hey Nicolas,
I've made more tests and found that the artifacts happen when you have a soft alpha. With a hard one it doesn't happen.
Looking at the mips, the dilation_1 ends up being smoother and precise, dilation_2 is grainier. But both seem good enough to produce working mips.
Personally I'd like to keep a high-quality version of this that I can use for other purposes, like inflating shapes and such. I've tried in some shapes I have lying around and dilation_1 is precise, dilation_2 not as much. Can both versions be nested inside a single node? That'd please everyone I guess!
anyone have any hand painted type graphs I can look at? I picked it up to see if I could use it to give me some base textures on some low poly only work.
While we're on the topic of material names, it'd be nice if we could rename the inputs on the multi_material_blend node. I end up having to plug in to a material input to see which one it affects, since the order of the materials in the side panel doesn't always match up to the order of the inputs on the node.
Even better, have them automatically name themselves based on the material picked in any attached SVG. Not sure that's possible though.
Toolbag 2 has an option to auto-reload the textures. I don't remember exactly where, but it's probably under the preferences settings.
And for re-exporting all the outputs of the current graph, you can use the green arrow in the 2D view to export all of them at once.
Unity2k
^^^^pretty much what he said, you can also right click on the graph in Substance and use the "Export Outputs as Bitmaps" and that will give you all kinds of awesome control.
I'll be posting some video tutorials this weekend and I can cover that stuff too if you guys like.
And please ask all kinds of questions that's why were here right?
^^^^pretty much what he said, you can also right click on the graph in Substance and use the "Export Outputs as Bitmaps" and that will give you all kinds of awesome control.
I'll be posting some video tutorials this weekend and I can cover that stuff too if you guys like.
And please ask all kinds of questions that's why were here right?
As you will be doing tutorials this weekend, please include the workflow you demonstrated at GDC on how you work from AO to build your SVG's, that was really cool.
This is most definitely possible in SD. If you go to their website, under the substance database, do a search for marble you can see some substances already created that look very similar. While these aren't free, you can get an idea of what others have made possible.
Unity2k,
Thanks for watching dude! I'll be covering all that stuff
Replies
This is a good question... I haven't used their native 3d viewer much, I generally right click on the graph and export all outputs to be auto-loaded in Marmoset, I'll poke around with their materials, but I'm sure Nicolas might beat me to it...
Quick tip : you can manually assign a node to a shader sampler using RMB drag&drop from the node to the viewport (yes I said RMB). If the node contains multiple outputs (diffuse, specular, gloss..) all these outputs will be assigned to the shader automaticaly.
Is there a way to expose the float values of a function inside of a quadrant parameter? Following Kenny Lammer's tutorial I added some a random function to the offset and rotation of a quadrant but its annoying to go back in there to adjust the slider for each quadrant if I want to change it.
I need to bake my material mask (from MatID) with at max 1 padding or the uv islands start overlapping (in this particular case the skin starts overlapping the hair, the eyes the face... not a particularly good look).
So I leave the padding super low, but haven't yet found a way to do padding on the final outputs, so I'm still taking my files into Photoshop to use the Xnormal filter. Bit ridiculous, hope there's a way to change this?
Sure, you can create a new parameter in the graph properties (select the graph, and click on the "+" icon in the "Input Parameters", properties panel). Modify the type if necessary (Float1 by default)/rename the parameter.
You can then use it in a function by selecting "Variables=>GetFloat" (or another type, depending of your parameter).
I've recently made a filter to workaround this problem, it's the same diffusion filter as the one we apply on baked bitmaps. I've not added it yet to the default library I'd be interested if you can test it.
It works with any image that contains an alpha channel, but it requires the rgb to be pre-multiplied by the alpha (if it's not, there is parameter to do that).
The package is here.
Another thing I'm up against is that I'm trying to edit an svg, I'm having to wait a few seconds between each tweak, and changing an element's colour is frustratingly slow (sd's crashed twice while dragging in the colour picker). Is there a way of freezing the realtime updates and pressing a button to see the end result?
edit: I only see a 'save all' mapped to ctrl-shift-s, so does that mean I've been pressing ctrl-s pretty much for no reason at all?
Here's a screenshot of what I'm talking about:
https://www.dropbox.com/s/nnyvdbloz9wpbvh/Screenshot%202014-03-19%2011.55.50.png
edit: the problem is elsewhere. I've tried this on the normalmap and it works perfectly. Now to figure out what's going on, but it's probably the AO or curvature bake...
edit again: nope, padding in the multi-material blend!
So you can eventually close the 3D view to prevent that.
Or you can use the "suspend engine" option (in the Tools menu), the shortcut is shift+escape. This will disable the computation of any node. In your case you should then edit the svg directly through the explorer (instead of through the graph).
edit: the ctrl+S shortcut works either on a selected package/graph in the explorer or when the focus is made in the graph. Look at the * next to the package name to check if it's correctly saved or not.
https://www.dropbox.com/s/fxgp16folal7qlm/Screenshot%202014-03-19%2012.14.02.png
You're looking at the result of a multi-material blend that's being fed an svg (rendered from the lowpoly's MatID).
I've had to up the padding in the blend to get rid of the black lines, but what I'd expect is that padding would never overlap. As in Xnormal's Dilation, it just grows until it touches. The way it's set up in SD, I don't understand how I'd ever cleanly mask off an area without running into these issues.
So yeah, if two parts are on top of eachother in the svg, I expect nothing to happen there, only at the edges.
I'll see if a dilation filter similar to the one in xnormal is possible.
For any next asset I think I'll just poly/vert-paint my highpoly, but it'd be nice to get the mat-id workflow to work well for me too. You have my source file, can you identify a better way to achieve the desired result?
- no padding in the svg (so you don't have any overlap)
- padding parameter to the max in the material blend node (to avoid blurry edges)
- reinject the alpha channel from the svg to the end result
- apply the diffusion filter (enable the pre multiply option)
I've finished the dilation filter, I'll send it to you for testing.
Also, I ran into this problem:
I'm creating some tiling patterns, but blurring them breaks the tiling. How should I work around this?
(It's a single line with a bunch of warps to get this shape)
@Jarrede: Red looks cool, but what about red + white? I'd try mixing in more colors.
1 for length
No pure facture work done yet, material isnt setup yet as well. I focused on bricks shape. Let me know what you think!
Blur filters should not have tiling problem...Can you send me your package ?
thanks!
So is it possible to start with diffuse+normal+AO and end with a complete PBR setup?
You can do whatever you want. However working from scratch in Designer allow you to easily reuse some masks multiple times. For example if you mix wood and metal, the mask used to differentiate their color in the diffuse can be used for the roughness too.
It's just more convenient. You can of course start from you baked maps and your diffuse to end with your other PBR maps. You will just have to apply some filtering has you would do it in photoshop.
I'm still in the habit of masking out my material IDs by hand in photoshop however, heh.
Will SD eventually be able to handle exporting resolutions higher than 2048x2048?
Huh, so it can. I apparently missed that. Thanks.
I doubt I'd go higher than 4096x4096, and I prefer doing 2048x2048 or less, but for some reason 3072x3072 and 4096x4096 make decent selling points for some of my projects so it's nice to know I can do it.
[Edit rather that adding an off topic post] - I'm aware that 3072x3072 isn't for real time or game engine rendering, but the projects I'm referring to don't require power of two textures.
https://www.dropbox.com/sh/5rap546pwz5w3iv/YXZal7cmtf (in the dilation folder)
Their are actually 2 graphs:
- dilation_1 : with some options (fast/acurate), and a cpu engine compatibility option. It's quite slow, but the algorithm is "correct"
- dilation_2 : a lot faster, works nice on plain colors (like svg/id color), may not work very well with images like normal maps..
If you guys can test these graphs and tell me which one works the best it'd be great!
(edit: nevermind about the error, download was corrupted, fixed)
I've tested the dilation filters and this is what I found:
Dilation 1: Works great, but only if mode is set to fast and CPU engine compatibility is set to True. This is exactly what I expected:
If mode is set to accurate, I get weird artifacts:
If CPU engine compatibility is set to false, the background seems to go a bit too dark:
Dilation 2: Gives some harsh lines and there's a limit to how much you can dilate. 16 is quite okay for small stuff, but with bigger textures might be a problem.
Also, one thing that I've observed is that if you have a sharp alpha, you tend to get harsh lines with dilation 1:
By doing a blur pass on the alpha channel, they're mostly gone:
With dilation 2, the harsh lines are always there, even if you blur it a lot!
Thanks a lot for those nodes
Another question - How can I get SD to output 24bit TGAs? It always saves 32bit even if I set the "usage" on the output node to RGB instead of RGBA.
Thank you for the tests.
About the artefacts using the accurate mode : you need to check the "premultiply rgb" parameter.
For dilation_2 I can extend the value to 32, are the harsh lines really a problem ?
It would be really nice if you could compare the mips for each version, as it's what really matter
Thanks again!
This is pure witchcraft. I am having so much fun right now. Gonna spend the night creating mats in Designer, and test them in Painter.
The material painting is way smoother than I thought.
Is it possible to use an SVG color map, to lay down base materials, like you can in Designer?
If not, what is a good alternative?
Edit:
Just realized I can export my SubstanceDesinger bitmaps and use those as a base material layer, so ignore my color map question :P
Am I missing something? Makes it a little hard to reassign materials by SVG since you can't really be sure what Material1 is set to.
If I'm not mistaken, The Material 1 Slot is the defualt material.
Any "un-assigned" part of the mesh would get the default material.
I am new to substance designer, and am interested in generating procedural marble/granite materials, kind of similar in style/color the following links: is this possible? thanks
http://l.rgbimg.com/cache1nwqA7/users/a/ay/ayla87/600/mfp2K8K.jpg
http://static5.depositphotos.com/1005125/393/i/950/depositphotos_3934838-Color-marble-texture-background-closeup.jpg
http://www.featurepics.com/FI/Thumb300/20100805/Marble-Texture-1628186.jpg
Not yet.
Ahhh, I see. So if you have 3 assigned materials, for example, "metal," "bolts," and "plastic", your multi_material_blend will actually have 4 inputs -- 1-default, 2-metal, 3-bolts, 4-plastic.
As you can see, you only get a list of the material IDs in the baking window.
In the 3D view, you actually get whatever material names you assigned in your modeler -- but not in the baking window, where it's very important to know which is which.
But very soon
Jarred, oh how I hate asking questions that I think must be obvious to everyone but me, but how do you go about the process of having Marmoset auto-load your outputs and which output method(s) do you have to use in SD to reach this goal?
Toolbag 2 has an option to auto-reload the textures. I don't remember exactly where, but it's probably under the preferences settings.
And for re-exporting all the outputs of the current graph, you can use the green arrow in the 2D view to export all of them at once.
Thanks for the report, it should be fixed in the next release.
Hey Nicolas,
I've made more tests and found that the artifacts happen when you have a soft alpha. With a hard one it doesn't happen.
Looking at the mips, the dilation_1 ends up being smoother and precise, dilation_2 is grainier. But both seem good enough to produce working mips.
Personally I'd like to keep a high-quality version of this that I can use for other purposes, like inflating shapes and such. I've tried in some shapes I have lying around and dilation_1 is precise, dilation_2 not as much. Can both versions be nested inside a single node? That'd please everyone I guess!
Even better, have them automatically name themselves based on the material picked in any attached SVG. Not sure that's possible though.
Unity2k
^^^^pretty much what he said, you can also right click on the graph in Substance and use the "Export Outputs as Bitmaps" and that will give you all kinds of awesome control.
I'll be posting some video tutorials this weekend and I can cover that stuff too if you guys like.
And please ask all kinds of questions that's why were here right?
As you will be doing tutorials this weekend, please include the workflow you demonstrated at GDC on how you work from AO to build your SVG's, that was really cool.
This is most definitely possible in SD. If you go to their website, under the substance database, do a search for marble you can see some substances already created that look very similar. While these aren't free, you can get an idea of what others have made possible.
Unity2k,
Thanks for watching dude! I'll be covering all that stuff