Specular and the standard/standard spec shaders?

Hi
Really struggling to understand the spec map with the standard shaders. Here is the result of a programme called insane bump and its spec output used to look fine in the old shaders but with the standard its useless. I did my own in blender and they look the same. Only way i had something even remotely useful is if i put alpha to 0 in blender and then use the blackest black colour to add the spec is my unity bugged or am i missing something here?.This looks bad in both metal and spec versions.

I am still not getting this I read that article before but if in blender i set everything to 0.0.0 then do the whole face in 0.0.0 it ends up shiny if something is pitch bleck should it not be completely dull in metallic shader? Why is it shiny with all 0’s???

Because the metallic shader isn’t setting the color of the specular, it’s setting how much of the specular color should come from the albedo; a black metallic actually means a specular color of roughly 60,60,60. Also you’re forgetting the alpha component which in some ways is more important. The alpha of the specular or metallic texture for the standard shader determines the sharpness of the specular.

Hey Bgolus
I set alpha to 0 on the map when i created it. How would i get 0,0,0 if the settings of 0,0,0 in blender does not produce a non gloss finish?what setting would produce a completely non metallic finish with no gloss whatsoever.

Use the Standard Specular shader with black if you want to disable specular entirely, or use the legacy shaders.

Understand (almost) no material in the real world has zero specular, even materials we think of as the standard for diffuse like chalk powder actually has quite a bit of specular. The standard shader in Unity is a normalized physically based shader which means they’re trying to accurately match the real world. In the real world everything has a little bit of specular and the specular effects the brightness of the diffuse (the more light the “glossy” part of a surface reflects means the less light reflects off of the diffuse part).

If you to get Blender to match up with Unity there are some Blender Cycles materials that more closely match Unity’s Standard shader; the default renderer is more akin to Unity’s legacy shaders.

I understand that everything has some specular but she looks like molten metal at the lowest setting i know to use (0,0,0) i am pretty sure humans in the real world do not look like that even if they are profuse sweaters. If it is supposed to be realistic it is doing a piss poor job. And alpha value was at 0 does painting effect the alpha i thought whatever you set the default map to would remain so set it a 0 it remains at 0 but this seems to not be the case paiting on the map looks to change the alpha setting in blender?

You need to also have an alpha map that is black in your specular map.

Yes but how do i set the alpha map then? In blender i set it to 0 when i make the map which is completely transparent is this not black?

It should be, yes, but for some reason that’s not what it appears to be getting in Unity. You can double check this on the texture in Unity by clicking on the RGB “flag” icon just to the right of the textures name in the bottom right window. That should change it from showing the color value to the alpha. It should then show as black and if I remember correctly the icon will show as an [A].

If it’s white then something is off with your texture export.

If it’s black then the next step is remove the spec texture and try setting the values for metallic and gloss via the sliders.

Hi Bgolus
Wonder why they don’t have slider like the Albedo map for the specular would make life a lot easier.

So i did 2 maps one pure black with alpha at 0 the other pure white alpha at 0 and the result is the black one give full shine no metal the white full shine and metal I don’t know why the alpha channel is so screwy maybe i am missing a setting in blender? Just tried it in blender and chose no alpha map to be created but it has same result.Loaded the image in paint and it is as it should be black in the face area and alpha on the rest .So unity seems to be the culprit here makes no sense it would swith the colour round I’m very confused.Do i have to specify that its a spec map somewhere like with the normal?

Grrr thought i had found the solution clicked on the alpha from greyscale and it took away the shine unfortunately it takes away the shine whether i want it there or not:(

If you open up the texture in a program like Gimp or Paint and can see anything it means the alpha wasn’t written as 0. Sure it’s black, but that means the color is RGBA 0,0,0,255 and you want 0,0,0,0. That screenshot you posted of the alpha clearly shows white in the alpha.

I have no idea how to get what you need for Unity from Blender or Gimp as I don’t use either. I think the more recent versions of Gimp let you have enough control over the alpha, but I don’t know if Blender can output what you need. This is 100% an issue with Blender though, Unity is handling the data you’re giving it perfectly.

Hmm as i said had alpha set to 0 so should not be able to change it then brushed over the face with 0,0,0 brush settings so thats black. I load the image In paint it is black in gimp it is black but in unity it is white. When 3 programmes show something and the other shows something else it is most likely the odd one out is the incorrect one and that is unity it is totally changing what is black into white

Gimp seems to display alpha wrong if you try to use the most obvious work flow, Blender is not exporting as you expect, and Paint seems to be working correctly but you’re misinterpreting what you’re seeing.

Photoshop, 3dsmax, Maya, Substance, 3d Coat, Quixel, etc. and the majority of professional software can handle alpha as a separate channel properly. It’s unfortunately just a product of the free art tools not behaving like the industry standard as it’s existed for 20+ years. I would suggest having Blender output the specular color / metalness and gloss maps separately instead of trying to get Blender to render to alpha properly. Then you can try using this tutorial which seems to work correctly:

A key part missing from that tutorial is when you save the image to .png make sure “Save color values from transparent pixels” is checked (it is by default, but if it’s off it delete some of the color information).

Ok thx bgolus that works must be some way to do it all in blender i will have to try ask over there. Unfortunately i have a bigger problem now in that importing normal is a complete fail What is happening here with the import normals - Unity Engine - Unity Discussions
as can be seen in this post i made not sure if my unity is broken maybe need to dl latest version and see.Anyway i cant use spec now if i want my model to look remotely like how i made it.