How would you use specular maps now based on what he said?

Interesting find.

My students just would forget all the node stuff.

PBR is, as Joe Wilson puts it, “more of a concept than a strict set of rules”[3] – but the concept contains several distinctive points of note. One of these is that – unlike many previous models that sought to differentiate surfaces between non-reflective and reflective – PBR recognizes that, in the real world, as John Hable puts it, “everything is shiny”.[4] Even “flat” or “matte” surfaces in the real world such as concrete will reflect a small degree of light, and many metals and liquids will reflect a great deal of it.

Here an he cracked me about with his side jokes

Of course here it is.
NOTE: This is not an attempt to make a serious maps!

Wood.blend.zip (2.9 MB)

here the idea of the formula,taken from the book Game Engine Architecture

Ks = the reflection data
(R V) =vector like layer weight or dot product of Normals and viewpoint
and a=spec power
we have reflection data,we have the vector with Fresnel,and the spec power we can try to get a usefull input for.without a connection to the exponent a value around 0.25 looks good too

yeah its funny :laughing:

here some explanations spec vs PBR workflow

Yeah good point - with finished wood I guess instead of specular one should use clear coat I assume.

@pixelgrip

the spec gloss map
would be valid only at a specific angle in space

if you rotate your model then the spec reflections would not follow the real
model function of cam faces; angle , light sources

but still use for Game guess cause it does the job with min time
but still an approximation to the real physical world!

happy bl

sorry I am lost - I have a baby next to me and it is at times hard to stay focused

the Map is 2D and valid only at a specific angle in space

when you rotate your model you are still using the same map
but faces angle changes but this does not re calculate the real spec reflection on the model function of light sources ect…

and this is valid for all maps

UV map will always be an approximation
not the real physical things in 3D

see description of spec
has to be function of cam angle face’s angle and light source angle in 3d space!

happy bl

will give another example of spec in real life

if you are in a kitchen with floor glossy white tiles and a window with a bright sun
sun light will reflect on the floor as a spec light

if you walk in the room the spec reflection of the sun will change location as you move on the floor
which is not the case with a diffuse reflection which is fix in space

hope it helps to understand it

happy cl

In Cycles, yes. Currently in Luxcore, no. I recommend multiplying white with 0.5 though for more normal IOR.

In general, yes. Maybe. I would have a look at it and imagine what would happen if I used it (or 1-it) in specular. What appears to be the purpose of it? Does it make sense to use it in a path tracer or is it better suited in a game engine? Maybe you want to omit it because it deals with reducing (fake/environment based) reflections in occluded spaces? Maybe you want to include it because it defines shadow gaps? Can it be confused for an occlusion map? If you’re lucky (probably not), it’s actually a specular map to be used with a principled shader; in which case you reduce specular where a topcoat is added (a bit technical IOR interface stuff).

In that bricks texture - yes and no. Learn to spot “issues” and “bad craftsmanship” (aka lazy work). What are the chance that for bricks, the roughness channel would be an obvious derivative of the albedo map? Bright is bright, dark is dark - completely senseless. I might consider, or try, to use the specularity as is or remapped, with specular channel. Because the really dark spots could well serve as shadow gaps.

Polyurethane and resin coating (liquid glass) is, quite frankly, quite complex. You’ll want to set up a special coating node group where you route your Principled into. The Principled coating is buggy (roughness) and doesn’t account for absorption/total internal reflection effects. When the coating is “on”, the underlying specular value goes down (interface stuff). Then you may want to reduce the high frequency bump from the bump map and tone it down. Possibly add some new ones to simulate scratches in the coating and a roughness to go. Depending on the paint/coat, more layers make the underlying surface “darker” due to absorption and energy lost to total internal reflection between the layers. I’m mixing the base layer with nothing using fresnel for angle and just a multiplier for thickness - I haven’t decoded the Luxcore absorption yet which is probably more accurate than mine. Then I simply fresnel mix in a regular glossy node with its own bump and roughness. Both the base and topcoat can be subject to microroughness. As I said, this can get kinda complex quickly.

The most important thing is; learn to observe the real world, learn the principles of shading so you can set up things manually correctly, and then create what you see - not what you think it should be like based on “this is how you should always do it”.

I wouldn’t worry much about it personally. I might do it from 0 to 1 and remap as desired in Blender. I typically only use it for shadow gaps or areas I just want to react less to specular reflections. It’s artistic, use it artistically, not as a mathematician.

Wasted channels and thus memory?

I’m not even sure what that’s supposed to mean. Specular map controls the specularity, the reflectivity. Sometimes you want, even need, to do that. Especially for things like shadow gaps where you want to simulate that “no light enters and thus cannot be reflected” (gaps in floor boards).
Fake reflections map? We used that 25 years ago, and today it would be like Shader Add a reflected texture using reflection coordinates onto the object (or environment map) - nobody does those kinds of weird tricks anymore. And you should stop too if you’re still doing it. :smiley:

Some resources you might want to have them look at:

Towards the end of the last one Skorupa have an important statement - don’t overdo it.

Of course your students should be grouped after a day of “homework” studying/casually watching this stuff, each group describing in detail one term of the shading equation each. Answers given should be rated by level of comedy. Just drive home there is some important theory to all this and where to find it if curious, and as long as they know how to fresnel mix glossy at the end, I’d say they’re good to go.

Finished wood normally means it has a protective finish to it, yes. But I would use the regular specular on the (pre)finished wood, and topcoat (not the Principled one) for a separate glossy layer on top of that - however, with the specular of the base toned down to account for the interface IOR change. Nothing stops you from going full shellac (MAX term, not the resin) with multiple layers of topcoat, but it’s expensive and likely not worth it.

1 Like

I guess I should have said I work in industrial and interior design.
RAM is plenty there.

But this discussion brought us a good point - when the increase of VR rendering, or cycles vs unity game engine how we setup materials and textures can be quite different from each other !!!

I found a very good explanation about specular workflow.In short,the specular map contains the F0 reflection values for both ,metal and dielectrics/non metal materials.

If you’re limiting yourself to using Principled for the sake of being “same” in different engines, they sometimes differ in certain aspects and you may want to map out those differences. I.e. in Cycles’ implementation, you can have specular with full metallic, whereas in others, specular may be reduced with increasing metallic. Different implementation of disneydiffuse. Changes due to using a newer paper as base. However, those changes should have minor visual impact. But be aware of swizzle coordinates, if you need to manipulate normal map channels. Metallicness to specular workflow and vice versa? Should be possible to tackle with a node group, but I’m not using any game engines so I would be a bit lost on this one.

after reading the PBR guide,i am sure its doable to create a conversation node group,or building a specular workflow shader.but i guess thats a bit more work.

You can’t get there 100%, because you need the default building blocks which cannot simulate disneydiffuse and rough fresnel (that matches principled), and principled can’t use colored glossy. Ignoring these limitations, you’ll get close enough. Can get a bit messy if you try to account for several implementations, depending on how you do it I guess. I tend to always try to reduce things to multiple uses of same nodes, and I tend to regret it :slight_smile:

have a look on this tut for PBR maps

happy bl

hm, the PBR guide looks straightforward.would be interesting to see, how chocofur has build his arroway texture setup.
i have made some quick test,with a trichromatic prinicipled shader build.the results looking the same,except for full back color.

here the testpattern i found in the net.
base color and metallic for metallic setup
diffuse and specular for specular setup

my first test with 0.9

Interesting read - I start realizing why so many people talk about specular vs pbr and what not to do. It has more to do with the render engine (games) than really the system. I just use rendering to produce images and not for games or other engines.

With pbr you can use a mask for specular of you want to define the what has reflection and what not like a sticker is very reflective while the rest of the body a sheet of paper is less specular. But obviously this only makes sense when also the roughness can be used for each part.

If roughness is different then it is better to mix two shaders.

The principled shader is just an easier to use node than always having to craft your own node network for various materials.

I have build a specular shader group,with rgb specular input.the reflection result is a RGB Fresnel aproxximation, and you can connect every shader you want underneath.

example 2,orange specular reflection and white diffuse sub layer


arroway texture tests


note to my self,non color data for spec/reflect/glossy and bump maps

seems to work

Download the mega link for a sample.

https://mega.nz/#F!hAdXTIoL!xIzOxIbL4goKG4aAGNGUNQ