Standard Shader Suggestion/Feedback

Hi all, I’ve been testing out the standard shader and love it so far but there’s one little thing that bothers me. When you leave the specular slot empty, you have a slider for smoothness and a color picker for the specular color. And that’s great, I love that. But the problem is those options disappear when you put in a specular map. Are there any plans of changing this in the future?

Having those options disappear when you put in a specular map is very limiting since those settings make it easy to make quick adjustments. It’s annoying to have to manually edit the original texture just to make minor changes. This is also very important for upgrading old assets to the new standard shader since the specular texture might have been too dark or bright before (and having to manually edit dozens or hundreds of textures is time consuming).

It was mentioned in this thread and maybe it’s been mentioned in other places but I wanted to emphasize the importance of this feature just the same. Mind you I’m still on Beta 9 so if this has been changed since then I apologize, however I haven’t seen anything in the release notes for betas 11 and 12 about it so I assume it hasn’t changed yet.

Generally, more detail should go into the roughness map than the specular map. Specular itself should (mostly) comprise of solid colors. So you really don’t want roughness to be one value.

I was thinking the same thing when porting my assets to PBS. Unless it’s not being implemented for performance reasons, I agree that having a built in tint option for the spec map and float to multiply the smoothness with would be great. I suppose we’ll just have to wait for the graphics team to get the finishing touches done on the standard shader. When that’s done, it shouldn’t take too long until there is some documentation for how to modify it.

AcidArrow, I think it’s more about a slider/float to multiply the roughness map values with. Especially with GIMP making changes to the alpha map and reexporting is quite a time-consuming task, but right now it’s the only option.
While it doesn’t help you get the contrast in the roughness map right, it’s definitely useful to figure out how rough the majority of your material is supposed to be.

I wouldn’t want this in the final shader for performance reasons, but I think Unity could add a “development version” of the shader, which could have separate inputs for spec/gloss for convenience and could also have color multipliers for each map, so you could fiddle around with all these sliders and multipliers until you figure out the best values.

Overall, I think the future of PBR is in the hands of such authoring tools as Substance Painter and Quixel Suite. If these guys will add a good Unity calibration profiles/shaders, you won’t ever need to fiddle with shader settings in Unity. You just export the maps, import them into Unity and it just works.

2 Likes

I like this idea, of a version of the shader that keeps separate inputs for spec/gloss. It could do the same for normal/height maps for parallax too. Even if it wasn’t necessarily a separate shader specifically, something/anything that would allow us to keep the textures as separate files would be really convenient since its much easier and faster to make adjustments this way. When you’re working with many textures, it add up quickly.

There’s also a possible alternative that I’ve had in mind for a while that would have similar functionality to what you describe for the development shader and should be pretty straightforward for Unity to implement…
Right now textures currently have the option to generate an alpha channel using a grayscale version of the texture (I love this feature). My thought is we could have the option to choose which texture it generates the alpha channel from (instead of only itself). So like instead of “Alpha from Grayscale”, it’d be “Alpha from Texture” and then have a slot where we drop in the texture we want.

This would allow us to keep our master files for specular/gloss, normal/height, diffuse/alpha cutout, etc. as separate files, making tweaking and updating them a lot quicker (and easier to reuse them). But at the same time things would stay optimized because the textures are combined.