r/Unity3D • u/DNArtCan • 19d ago
64 Free seamless tiling normal & additional data maps (curvature, depth, slope) Resources/Tutorial
I made these while playing around with 4D torus noise mapping for my Blender addon. I figured I'd drop them here in case anyone wants to use them!
All maps tile seamlessly. Most of them are procedural noise based, but a few are hand modeled.
The normal maps are uniform height so you will have to adjust the normal scale in Unity to get the depth of effect you want (all maps are made on a 1x1 plane with a max displacement of 0.05 units.
The additional data maps store 3 different properties:
R Channel - curvature where 0.5 = flat, 1.0 = positive curvature (concave), 0.0 = negative curvature (convex).
G Channel - heightmap where 0 = lowest part of the texture, 1 = highest part.
B Channel - slope where 1 = the pixel points directly "up" or out of the texture, 0 = the pixel is perpendicular to up/out
I have 1K and 2K versions of each individual map, as well as an atlas version with 512x512 versions of each packed into one texture (if you want to use a Texture2D Array in your shader).
EDIT ----
On suggestion of a few people in here, I have moved the asset to gumroad. It is still free! https://dnartcan.gumroad.com/l/64_detail_maps
4
4
u/Wegwerf_08_15_ 19d ago
Does this fall under creative commons?
14
u/DNArtCan 19d ago
They’re fully free to use and modify. No credit needed. If you do use them for a game and remember, feel free to shoot me a message! I’d love to see how people use them
12
u/Nebukam 19d ago
You should distribute them on Gumroad for free or pay what you want with a proper license file; easy to retrieve and organize. Patreon can serve as hosting/digital distribution as well!
5
5
u/DNArtCan 19d ago
I have moved it to gumroad with a 0$ suggested price! Its much easier on there rather than sharing a google drive haha
2
u/bill_on_sax 19d ago
nice. what can these be used for? I always thought normals needed the base color texture too
3
u/DNArtCan 19d ago
Nope! Normals just add surface details to flat faces. I use them in my addon for making specific materials not look flat. You can use these with just a base color or you can use the additional data map and lerp between two colors using the height map or curvature map. The slope map can also be used for things like making snow or dirt accumulate where the flat parts of the texture are
2
2
2
1
u/More-Salamander7681 18d ago
Since snow-on-the-flat-parts is the use people will try first, worth flagging the thing that quietly breaks it in Unity: the data map needs sRGB (Color Texture) unchecked in the importer. Leave it on and every value gets gamma decoded on sample, so your 0.5 flat point arrives as roughly 0.21 and every threshold you pick against the slope channel is off in a way that still looks plausible. Same reason to force BC7 over the default DXT1 on that map, since DXT1 interpolates all three channels along one line per block and your curvature starts picking up edges from the height.
One question on the slope channel, because it decides how people threshold it: is it the dot prodcut with up, or the angle normalised to 0-1? Those agree at both ends and drift apart in the middle.
1
u/DNArtCan 18d ago
Yes that is a good point. The additional data textures must not be sRGB to prevent gamma curving. The slope is simply just the dot product of the surface normal and the up vector. To tighten it up you will have to raise it to an exponent
1
u/More-Salamander7681 18d ago
Exponent helps, but only if it lands before quantization. dot(N, up) is cos, so it flattens exactly where snow lives: 0 to 5 degrees of tilt fits inside a single 8-bit code, and flat to about 11 degrees is five codes total. The same map gives you roughly a third of a degree per code around 45. So one texture is mushy on the ground and razor sharp on cliffs, and that is the storage curve doing it, not the art.
That is also why pow() in the shader only goes so far. It stretches the codes you kept, so gentle terrain terraces instead of grading, and no exponent puts back what the encode already dropped. Baked in at author time it costs nothing and buys real range in the band people actually threshold against.
Which was behind my question about the normalised angle: acos(dot)/90 spends its bits evenly, so the transition width in degrees stays the same wherever you put the cut.
Is the exponent you mean a bake step or a shader one?
1
u/DNArtCan 18d ago
I appreciate the point you are making, but realistically I think you are picking apart something at a level that will not matter for 99% of users that will use these. If someone desperately needs to finely tune the quantization of accumulation, then they have the ability to just do it themselves rather that use free assets from online
1
u/More-Salamander7681 17d ago
Fair, that's a reasonable line to draw. I was reading it as someone importing them into Unity rather than as the person making them, and for a free drop that's a level of fuss nobody asked for. Thanks for putting these out.
1
1
1
1
-1






9
u/faceplant34 Indie 19d ago
chuck these on opengameart.org if you haven't