Awesome tutorial, dude! Thank you. I've always found 3DSMAX textures hard to get my head around, especially compared to Unreal Engine 4, and you have helped a lot!
A large question: what is the world-space scale of the "bump amount" parameter? I want to use it to bake some surface into a normal/heightmap pair to use for a POM material with a strict heightmap scale, yet the bumpmap only affects the normal output with the heightmap only reflecting the mesh structure without any additional dents. Sometimes it looks ok (whenever the bumps are small enough), yet no matter what it would be nice to have them baked into the heightmap as well.
So you guys don't know it :) Did some tests and it appears bumpmapping is a much more complex thing then you would expect. In fact every map in MAX is capable of outputting more then the expected RGB data, the normals are supplied whenever required as well. Now the fun fact: the procedural maps generate that data on the fly (say, the gradient map already uses the dC/dU and dC/dV values so does nothing but sending them out whenever assigned as a bumpmap) while bitmaps are seem to be passed down a highpass filter prior to the final derivative calculation (probably via adding a threshold - anyway, try baking a gradient-colored bitmap to see what it is). The final normal is a result of the normalization of a vector {dC/dU*A, dC/dV*A,1.0} (at least for the 'Gradient' map, where A is the bump amount parameter in percents (e.g. BA@100 makes A=1.0). Funny enough, baking gradients (probably some other maps as well) results in a bug: looks like it simply uses dC/dUV and then rotates the normal into the world space taking no U and V axis lengths in account, therefore a, say, circle gradient in squeezed UVs has the same slopes along the longer and shorter axis, effectively making a geometrically impossible surface (as we travel in between two planes along two slopes sharing the same angle, but having different lengths which never works like this). So better use the square UVs just in case! :)
your explanation is very nice in tutorials...awesome bro
All 3 installments helped me so much,
would love to learn about normal maps as well :)
Awesome tutorial, dude! Thank you. I've always found 3DSMAX textures hard to get my head around, especially compared to Unreal Engine 4, and you have helped a lot!
I continued with your vids since that first one so great! Again, thank you! Phenomenal tutorials!
+Mathias Holland Thanks again man!
wow... fantastic
thank you soo much for this tut.. now I have greater detail at less specs.. thank you soo much
+Ashu Saxena Hey, no problem! Glad it helped buddy!
... Very Very Very Good Thank You For My Brothers ... The 3D Tuto ...
awesome tut, thank you, can't wait for the normal map :)
Usefull!!!! Thanks for this tutorial bcs I forgot how to put Specular & Normal maps hahahaha
I was shocked at how much better my floor looked.
It really helps right?! This is just the tip of the iceberg my friend.
Congrats! beautifull skill in explaining this kind of information, detailed, acurate, very nice! keep up the good work!
A large question: what is the world-space scale of the "bump amount" parameter? I want to use it to bake some surface into a normal/heightmap pair to use for a POM material with a strict heightmap scale, yet the bumpmap only affects the normal output with the heightmap only reflecting the mesh structure without any additional dents. Sometimes it looks ok (whenever the bumps are small enough), yet no matter what it would be nice to have them baked into the heightmap as well.
So you guys don't know it :) Did some tests and it appears bumpmapping is a much more complex thing then you would expect. In fact every map in MAX is capable of outputting more then the expected RGB data, the normals are supplied whenever required as well. Now the fun fact: the procedural maps generate that data on the fly (say, the gradient map already uses the dC/dU and dC/dV values so does nothing but sending them out whenever assigned as a bumpmap) while bitmaps are seem to be passed down a highpass filter prior to the final derivative calculation (probably via adding a threshold - anyway, try baking a gradient-colored bitmap to see what it is). The final normal is a result of the normalization of a vector {dC/dU*A, dC/dV*A,1.0} (at least for the 'Gradient' map, where A is the bump amount parameter in percents (e.g. BA@100 makes A=1.0). Funny enough, baking gradients (probably some other maps as well) results in a bug: looks like it simply uses dC/dUV and then rotates the normal into the world space taking no U and V axis lengths in account, therefore a, say, circle gradient in squeezed UVs has the same slopes along the longer and shorter axis, effectively making a geometrically impossible surface (as we travel in between two planes along two slopes sharing the same angle, but having different lengths which never works like this). So better use the square UVs just in case! :)
How did you display the normal and specular via the viewport in Max? I have to render everytime when I want to see the result :(
AWESOME,BUT WHAT ABOUT NORMAL MAPS LETS SAY FOR UNREAL ENGINE
+glenn yarzagaray I am going to release a video for normal maps for Unreal 4 engine. Probably within a week.
thx
Hi, really informative tutorial series you produced here. Can I ask where the normal map tutorial is?
hey man can you make a tutorial on displace ?
How to turn on real time display in perspective in this
why does mine doesnt show on the viewport?
how to create/add a lightmap?
where's the normal map tut man?
InstaLike :)
+Flavio Diniz InstaRespect