https://gumroad.com/l/iQYAMy channel display shader for Marmoset Toolbag3
is up on Gumroad for free! This shader is meant to mimic the Marmoset Viewer channel display feature, allowing you to post detailed breakdowns of your materials in high resolution.
Sorry if this is in the wrong place mods, i know there's a user content area but none of the subforums really apply.
One note i would make:
Local Reflections will show up as they are a screenspace effect, so if you're getting an almost fresnel like effect, make sure to disable that.
Currently using Skin or Microfibre diffuse settings will cause some "bleed" into gloss/reflectivity. I'm working on removing that, but it won't be easy as i don't have access to certain things.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
https://gumroad.com/products/KEmbwThis shader is designed to let you render your models with a cell shaded aesthetic!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
https://gumroad.com/products/cyXiDiffuse roughness!
This shader is designed to extend Toolbag 3's base diffusion model to allow diffuse roughness. It includes two models:
Disney's diffuse model by Brent Burley
(Oren-Nayar) diffuse BRDF by Shree Nayar and Michael Oren
You can use a custom roughness input for the diffuse, or use the checkbox to use the material's base roughness module (it will automatically invert gloss).
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Simple script for Marmoset Toolbag 3: Get it here!
Allows you to export Cameras, Lights (or both) from Toolbag into a data file, and then import them into another scene! And it's completely free!
Plugin will work with Toolbag 3.07 and newer, it might work with earlier versions but that cannot be guaranteed.
How to use:
- Unpack the zip file into '\Marmoset\Toolbag 3\data\plugin'.
- In toolbag, select 'Edit > Plugins > Gir_Utilities > SceneComponentIO'.
- Select your import or export type from Both, Camera, or Lights, and either export selected, export all, or import!
Current limitations:
- Folder/Groups not supported. You can still export the cameras and lights, but the folders will not be available on import. This access is not available in Toolbag yet, when it is, i'll add it.
- Keyframe data for objects is lost on export, when imported they will be in whatever location they were at when exported. Again this is a limitation of the software, if this functionality is ever added, i'll update the plugin.
Replies
Goodbye to photoshop and the typical line separation between different textures or uploading viewer textures at 2k in most cases.
(It would be especially useful since as of now, TB3 has a long standing bug making it forget the original path to loaded textures when bringing up the file browser window - meaning that manually browsing for a new texture to load into a given slot can be a pain).
EDIT: Just tried it out, works like a charm. if you take feature requests, It would be really nice if we could have wireframe options directly in the shader as well.
I'm not against feature requests at all, but i'm not sure if this is even possible. The way toolbag renders wireframes is separate from the material pass. I might look into a way to control that through python scripting though.... There might be a way to do batch renders through python, including wireframes.
@pior is this what you wanted?
https://www.youtube.com/watch?v=_GJX5mVQgwk
UI: This is sort of hard to use because there isn't much reference to the user for what 0,1,2, etc mean. I talked to Jeff about adding a dropdown but that isn't possible atm with the shader system. I'm not sure if there is an alternative way you could present this that would be a little easier to read.
Input grabbing: This seems to work well for the common material types but doesn't grab less common inputs like height, sub-dermis, translucency, ao, transparency, emissive, etc. This isn't a deal breaker but it would be cool if the shader was able to access all the inputs.
When used with refraction, the shader failed to pull in the normal channel.
It would be cool to have an object space/vs tangent space toggle.
My diffuse map seems to be coming through in the normal map mode, probably related what you were discussing above.
@EarthQuake, thanks for taking the time to test and give feedback man, i appreciate it!
UI: without dropdowns there's not much i can do, i did play with the idea of having multiple checkboxes, but the problem with those is that there's not a "clean" way of making it so that if you turn one thing on, you turn the others off. It's possible to do it with checkboxes (would you mind if i sent you a version to test?), but the code itself will just be... messy. That said, if the end result is that it's easier for users, then that's fine by me.
I don't mind adding additional inputs, BUT, there's currently no way to dynamically update the UI to reflect things that are/aren't enabled in the material currently. So if someone were to enable height but the surface mode is set to normal, they would get a black output and it doesn't make sense for it to even be there.
Does the refraction problem persist across the entire surface? or only where the alpha map isn't white?
The toggle i added for Pior should do basically the same thing, if you enable it and your map is an object space map, that is the one that will be displayed.
The diffuse coming through is an issue with anything but lambertian mode. I'll be making a fix for this later today =]
Like this (don't mind the names and order, that's just an example) :
That's just a suggestion though - I haven't used it for long enough to really be able to tell what is useful and what is superfluous in the long run.
This is a possible current iteration:
The downside here, is that things have to be activated sequentially. So if you have Normals displayed, but then display Albedo and Reflectivity, you'd need to disable Albedo and Reflectivity to enable Normals again.
The upside is that things are much more clearly labeled.
https://gumroad.com/products/iQYA
- ToolbagCustomChannelDisplay_V1.01 -
- ToolbagCustomChannelDisplay_V1.03 -
Thanks to @Swizzle for the demo scene.
https://gfycat.com/DecimalSmallBergerpicard < high res gfycat.
https://gumroad.com/products/KEmbw
I think the ability to tweak the specular opacity would be a good addition.
However, at some point when i get the time, i'd like to write a little python script that batches out screenshots for you.
- Separate line thickness/color controls for internal lines vs. silhouette lines
- Control over the "threshold" to determine where to draw the internal lines based on normal strength.
- Option for line color to be derived from underlying/nearby pixel colors with a darkening factor (so you could "automatically" have colored lines based on the diffuse colors, but then darken them a variable amount).
Could you provide an example of what you define internal and silhouette lines to be? Your description makes me believe you're not referring to the outline controls.
Similar to the above, i'm confused on this one. The "bias" slider should be all you need for this, as it pushes the lines further or closer to the light source.
Having the lines darken the color instead of multiplying down is cool, i can add that.
More control over the outline parameters would be my main request as well. I see that you have "Use Vertex Normals as an option for the overall effect. It would be cool if you had "use Vertex Normals" as an option for JUST the outline effect as well. This way, if you want to really just go heavy on the outline of the sillohette you could do that.
I especially like how easy it is to control the banding and lightness of the shadows. I really love how you did that!
The other feature request which would really just be the iceing... if you implemented some of the cool stuff that the dota shader does. Namely the Diffuse warp feature where you can tint shadows based on a simple texture ramp, and the rim lighting where you can plug in a mask to control exactly where it effects the character based on uvs.
Anyway, I can't say enough how pleased I am to see these custom shaders coming online. Great work man!
----V1.01----
Thanks for the heads up!
Some results from messing around with my scene and compositing in the characters individually do to the lighting issue I mentioned earlier. Yea, if only we could get a nice rim added it would have everything I need I think, minus a little more polish here and there with shader options. Very cool to use as is tho!
All lights in the scene will affect all objects, BUT they're much more sensitive to distance/attenuation now. It's almost a binary switch, it's either in range or it isn't, there's no real "soft" transition into light range.
I'm 99.9% certain that i can't do selective lighting like that. It would require Toolbag to have some form of light layering system similar to Unity, which it doesn't have.
What did i miss from your previous list of requests? ramp input for shadows, and a mask input for the outline?
Man... This shader is sweet!
Check the "Rim Map" texture input. Its not working on my end at least. When I plug in my mask it does nothing. I had to photoshop/mask out the rim in the interior areas. But what you see here is what I was after as far as the rim. I jacked up the settings on the rim way past what the slider allows. No big deal, but my setting for Tightness was 33, and my setting for strength was 22.
The mask slot works perfectly on the outline effect, very nice!
The added Highlight Map style to plug in "ramp" is awesome. Tons of possibilities there! I just used Multiply here though, but I did mess with it and got cool results as well. I think the ramp with texture would be the key to getting the most control out of this shader, it just takes a lot of back and fourth to get what you want.
On the note of "lighting style" and "enable highlight". I was able to figure it out, but you have written "Highlight Map" twice so that may confuse some people. Also the "Rimlight Map" should read "Rimlight Mask".
Those directional controls on the Rimlight are killer! I love that you added that feature!
Great work, I hope I was able to help!
Thanks for all this feedback. You're correct i'd not hooked up a variable correctly and so the rim map wasn't working. And thanks for letting me know about the misnamed maps in the UI.
I'll have an update out later this evening to fix all of that stuff, so hopefully no more photoshop for you!
Diffuse roughness!
This shader is designed to extend Toolbag 3's base diffusion model to allow diffuse roughness. It includes two models:
Disney's diffuse model by Brent Burley
(Oren-Nayar) diffuse BRDF by Shree Nayar and Michael Oren
You can use a custom roughness input for the diffuse, or use the checkbox to use the material's base roughness module (it will automatically invert gloss).
https://gumroad.com/products/cyXi
Below is me hacking it as a post process (replacing film grain). If someone could convince Marmoset to add a custom post process shader input... *cough* @EarthQuake *cough*, that would be awesome.