To get rid of the confusion with map-types, and how to treat them, I downloaded some premade maps (tif) for riverbed-pebbles.
- NormalMap
- RoughnessMap
- HeightMap
- AlbedoMap
- AmbientOcclusionMap
Source
(You can get them through a free user-account at this source: Textures for 3D, graphic design and Photoshop!)
This post is a documentation of my learning experience. I hope it can help out people who are also confused about those map-types. Or for people who just find it interesting to read. Screenshots of my blender file in the details.
NormalMap
Just discovered it applies the normal mapping by simply plucking it into the ānormalā-Socket on a shader like principled bsdf. Doesnāt change mesh geometry but already changes how light bounces off the mesh-surface (like it would if the details had a height).
Wanted to bang my head against a wall because I seriously overcomplicated my experiments in the node editor with colorRamp, normalMap, Bump, Displacement nodes. Bang Bang! Roughness map, youāre next! (If I just need to pluck it into bsdf-āroughnessā, I get wild!)
RoughnessMap
Yup. Time to get wild. Put a Sun in the scene to observe the effect under lighting circumstances and also switched from Evee to Cycles. Zoomed near the plane. There was some light-reflection without connecting the map, but it looked weird, like everything was wet.
Plucked the Map in Roughness and instantly got a better result. Still not that great, but it got a little better after putting a ColorRamp between the map and the bsdf, this also gave me some control of the reflection intensity and spread.
Letās see, if we can bring in some actual displacement with Heightmap ā¦ but I guess I canāt pluck it into the bsdf. First save project and check if āDisplacement and Bumpā is enabled in the material settings.
HeightMap
So letās just pluck this mf into Material Output Displacement. Well, this did something, but the geometry now seems to be weirdly squished into one direction.
Found really good Website, which explains how to treat different maps also with node-tree examples. (Helped me here but looks a little outdated - Link: How to use PBR Textures in Blender | cgbookcase.com). Pulled a Displacement-Node in and connected map with its height-socket. Worked.
Reflection Issues
But I donāt see any reflections from topdown-perspective at this point. I was able to correct that with placing a light over the plane but I noticed, that itās just reflected in one direction, no matter where itās placed. Shouldnāt pebbles shimmer from each angle, when the light comes from directly above? Must be the NormalMap, donāt know if its tangentSpace/ObjectSpace/WorldSpace!!! Wasnāt able to solve this yet -.- Until I find a solution ill have to adjust lighting and position as needed.
AlbedoMap
WTF means Albedo??? Now I know, itās basically a simple texture map without shadows/highlights. Connect to color-socket for texturing. Easy. Riverbed pebbles got some colors now. But reflections look more odd again. Changed interpolation mode on ColorRamp (RoughnessMap) to āB-Splineā, toggled off the sun and implemented an hdri in the world background. Looks much smoother now.
(Maybe the 1k resolution and partly low bit-depth of the premade maps are maybe also to blame for some weird effects - but for getting them basically for free at textures.com I wonāt moan). Iām pretty satisfied at this point, but letās also try out the AmbientOcclusionMap and see if we can get more depth!
AmbientOcclusionMap
Multiplied it with AlbedoMap, as I read in an article. Donāt see a huge improvement or change.
Amped it up with a math node but then I got results with everything getting brighter/darker, not only the shadows as wished. Iāll leave it in my node tree so I can revisit later.
Thatās it for today - havenāt really produced anything myself but now got a basic understanding of 5 different mapping types and know some fundamentals for implementing them. And a pretty nice seamless and detailed pebbleground asset for future projects which is baked on a plane of only 128 tris. By morning it was all just puzzling and frustrating, now I look forward to experiment the hell out of my new node-tree template
tl;dr
NormalMap ā Connect to Normal socket on bsdf
RoughnessMap ā Connect to Roughness socket on bsdf ā tweak with ColorRamp ā smoother roughness (because of āwashedā pebbles) through b-spline interpolation
HeightMap ā Connect to Displacement node height socket (MidLevel 0.0) and from there to Material Output Displacement
AlbedoMap ā Connect to Base Color Socket on bsdf
AmbientOcclusionMap ā Multiply with AlbedoMap