Generate this type of normal map for 3d Models?

Community Forums/General Help/Generate this type of normal map for 3d Models?

RustyKristi(Posted 2015) [#1]
I was wondering how can I generate this type of normal map for models. This is an athene model normal map..



Result:



The real deal:




Yue(Posted 2015) [#2]
http://shadermap.com/home/ or Work Corel o photoshop


Rick Nasher(Posted 2015) [#3]
Ow, that's good intel. Always wondered with which tools this can be done.
ShaderMap is looking good, but demo version apparently can't save them.

Anybody knows of a free tool that can do the same?


Floyd(Posted 2015) [#4]
No experience with it but here's a page of Blender docs about creating normal maps.

http://wiki.blender.org/index.php/Doc:2.4/Manual/Textures/Influence/Material/Bump_and_Normal


Yue(Posted 2015) [#5]
http://cpetry.github.io/NormalMap-Online/

:)


RustyKristi(Posted 2015) [#6]
Thanks guys. Yue, what I'm looking for is from model and not texture, like what Floyd pointed out there but with a more automated process and the same results. :-)


Rick Nasher(Posted 2015) [#7]
From what I understood before is that you would first need to do an unwrap of the texture(with for instance Ultimate Unwrap or something) and then generate the normal or bump map from that or am I completely off there?
https://en.wikipedia.org/wiki/Normal_mapping

Btw found a nice tool in this thread: http://www.blitzbasic.com/Community/posts.php?topic=72647#811962

http://crazybump.com/ << but no longer free, nice demo though.. :-(

[EDIT]
Nevermind. This video explains it much better and also why the maps can look different. Blueish is apparently 'tangent space' and the Atnena has one in 'object space' which is suitable for static objects only. Now the next question is of course is again: what free program would be allowing this to be created(besides Blender). :-)
This says Zbrush can do it: http://www.surlybird.com/tutorials/TangentSpace/

And there's a free fully functional trial for 45 days here:
http://pixologic.com/zbrush/trial/


RemiD(Posted 2015) [#8]
From what i understand, the difficult thing is that you need to have a high details mesh and a low details mesh and have the unweld of the parts of the mesh made in a similar way and the uvmap made in a similar way for both meshes so that you can then have the normal map datas applied on the appropriate parts of the low details mesh.
Is there a way to do this automatically ? I doubt it. You need to create a high details model and a low details model manually and to unweld and to uvmap manually in order to be able to have the normals datas scaled positioned oriented on the appropriate parts of the uvmap...
Also if you plan to rigg skin animate your low details mesh, you will need to add vertices/edges at specific places so that the body part will stay in a nice enough shape when it bends...

But maybe somebody has already thought about that... (Sculptris ?)


Yue(Posted 2015) [#9]
The trick is a low poly model, texture and normal map display helps with high quality even if inches vertices.





RemiD(Posted 2015) [#10]
Your example is easy because it is a cube...
Now try to add reliefs (with a normal map) on a character... Not as easy.
Or maybe the trick is to only create a low details mesh, unweld it, uvmap it, and add the reliefs directly on the texture... Easier than to have to create one high details mesh and one low details mesh.


Rick Nasher(Posted 2015) [#11]
Perhaps this is something: NVIDIA Melody. But only takes .3ds, .obj and .ply files.



RustyKristi(Posted 2015) [#12]
Oh hey that's awesome Rick, never heard of Melody tool before. I'm checking it out now! :D

Thanks!!


RustyKristi(Posted 2015) [#13]
By opening the .OSNM.DDS files produced, it looks like the same tool that generated those maps :D Big thanks Rick!

By the way, did you manage to check out how to retain the existing UV coordinates?


Rick Nasher(Posted 2015) [#14]
Nope didn't delve into it far enough(having a burnout so have to severely limit myself). But perhaps the PDF says something about it?


RustyKristi(Posted 2015) [#15]
Hey Rick, yes got it now with 'Use Decal Texture Coordinate' ticked under Settings! :)

I got a working demo now here:

http://www.blitzbasic.com/Community/posts.php?topic=105140

cheers


RemiD(Posted 2015) [#16]
For a non rigged non skinned non animated mesh it may work to rely on a tool to make the low details mesh, but if you plan to rigg skin animate the mesh, i don't think you will have good results if you use an automatically generated low details version (because you need vertices and edges at specific places near the joints in order to have the body parts bend and still look good)


Rick Nasher(Posted 2015) [#17]
Appears so. Or we'd have to resort to more professional 3d gfx packages I guess. If you find a good step-by-step workflow for making that work, please share for it could save many round here from re-inventing the wheel.


RemiD(Posted 2015) [#18]
I think there is another way :
Create a low details mesh optimised for animation.
Unweld the mesh by body parts.
UVMap the body parts to have the same texel size.
Draw reliefs manually on the texture (similar to a heightsmap with grey colors where the height is described by the grey color (darkgrey is low, lightgrey is high)
Then use a routine to generate the normal map from the heightsmap. ( maybe : http://www.blitzbasic.com/Community/posts.php?topic=34566 )

This should work and the low details mesh would be clean and optimised.


RustyKristi(Posted 2015) [#19]
I agree, that is why Object Space went obsolete. Tangent Space method relies mostly on shaders (which is not a problem with recent engines) but there's a lot of demo here that simulates that (like the extreme texture demo/spider earlier) but it's more complicated to calculate manually.

I'm just looking for a simple solution that works out of the box and I'm not talking about presenting a single object but the practical use where you can have it in your scene as static normal mapped objects.

Given Blitz3D's limitation and that is without the help of shaders and if we can get it to work without too much hassle then I'll take this any day of the week. :-) and B3D is opensource and maybe the light/normal computation can be handled in the C/C++ code part or add some new calls or dlls.

I did see object space maps being used on animated rigged meshes though but I'm not sure it still needs some shaders or they made it just like that without the intention of getting good results. I'll have to check my old archives and find out the rigged models that has that setup.


RustyKristi(Posted 2015) [#20]
I think there is another way :
Create a low details mesh optimised for animation.
Unweld the mesh by body parts.
UVMap the body parts to have the same texel size.
Draw reliefs manually on the texture (similar to a heightsmap with grey colors where the height is described by the grey color (darkgrey is low, lightgrey is high)
Then use a routine to generate the normal map from the heightsmap. ( maybe : http://www.blitzbasic.com/Community/posts.php?topic=34566 )

This should work and the low details mesh would be clean and optimised.



That is interesting and might work RemiD, thanks for sharing! :-)


RustyKristi(Posted 2015) [#21]
From what i understand, the difficult thing is that you need to have a high details mesh and a low details mesh and have the unweld of the parts of the mesh made in a similar way and the uvmap made in a similar way for both meshes so that you can then have the normal map datas applied on the appropriate parts of the low details mesh.

Is there a way to do this automatically ? I doubt it. You need to create a high details model and a low details model manually and to unweld and to uvmap manually in order to be able to have the normals datas scaled positioned oriented on the appropriate parts of the uvmap...



Just to be clear, almost all normal maps done by most 3d artists came from their high poly counterpart versions, that's where the ZBrush and Modo's are for and some of them are modelled/edited in Max, by looking on those YouTube tutorials on how to do them manually.

I know there's no automatic way of doing this but what I did look for is getting the process much easier like the NVidia Melody that Rick provided. I also found out that you can also do this in Blender with the 'Object' option but there are more steps needed to be done, whereas with NVidia's tool you can do it in much less time and steps. :-)




RemiD(Posted 2015) [#22]
The problem when you rely on an automatic creation of the low details mesh is that some important shapes will no be preserved (see how messed up your low details rabbit is : missing triangles, missing shapes) and the vertices/edges will not be put in a way to be ready for animation. (if you want it to look good enough...)

I think that the approach that i have suggested (create the low details mesh first, then unweld, then uvmap, then add the reliefs directly on an heightsmap and then convert the heightsmap to a normalmap) can produce better results for meshes which need to be rigged skinned animated.

At least this makes more sense to me.


RustyKristi(Posted 2015) [#23]
Blender version but only half of the process (material transfer to low poly not yet setup)




RustyKristi(Posted 2015) [#24]
The problem when you rely on an automatic creation of the low details mesh is that some important shapes will no be preserved (see how messed up your low details rabbit is : missing triangles, missing shapes) and the vertices/edges will not be put in a way to be ready for animation. (if you want it to look good enough...)


The low poly version you're seeing in the demo I did not generate, it is a downgraded 3d scan and it comes with stanford's download package. I need something that I can grab quickly to test it out, sorry I got excited :-)

Of course the automatic process does not involve providing the low poly version, you still need to create/model it for input, as you can see it refers to as the "Working Model". What the tool does is bake and transfer the generated map to the low poly version instantly. In blender you have to do this manually.

And yes, so far as its limitations goes I did plan on just using it for static models. :-)


RemiD(Posted 2015) [#25]

Just to be clear, almost all normal maps done by most 3d artists came from their high poly counterpart versions


Yes i think that Sculptris can do that. But i am not sure that the low details mesh can be used for animation. I have never tried i can't say.


RemiD(Posted 2015) [#26]

What the tool does is bake and transfer the generated map to the low poly version instantly.


Ok. In this case the low details mesh can look good and be ready for animation.
I am curious to see what you will manage to do with it.


RustyKristi(Posted 2015) [#27]

Ok. In this case it can be good and modelized for animation.
I am curious to see what you will manage to do with it.



I'm still concerned with what you said that it will have some problems with bent joints, so I think it's just good for static objects. or if used, a weak attempt on animated models?

I don't have the diffuse blending part down yet (I will post the full code later on) or maybe somebody has done it here before but I think that is with Tangent Space maps not this one. Probably they work the same with blending?


Rick Nasher(Posted 2015) [#28]
Aren't there ways in 3d design applications to smoothen up and then lower the amount of poly's of a model, much like for instance in a terrain modeler or scrapping off the detailed edges of a block of clay that was shaped into a statue first?

Or is that a definite nogo/non-existing or unrealistic feature?

Or as RemiD suggested, but then every time you'd make a design change to your model you'd have start from the ground up or go at least a few in-between saved versions back. Very unnatural feel of modeling imho.

I would hope in this day and age in 3d Design these things could be done more easy and have a more natural feel to it, for to do all this manually would take ages.
I really love for instance things like SculptGL. I managed to pull this little test object out of the 'virtual clay' in just 20 mins:

Another tool I love is SketchUp. Much more intuitive then 3DMax, Blender and the likes.. But also useless as they lack B3D export features etc.
So perhaps no other way.


RustyKristi(Posted 2015) [#29]

Aren't there ways in 3d design applications to smoothen up and then lower the amount of poly's of a model, much like in a terrain modeler or scrapping off the detailed edges of a block of clay that was shaped into a statue first, for instance?

Or is that a definite nogo/non-existing or unrealistic feature?
(I would hope in this day and age..)



Yes, you can use Blender's Decimate Modifier, MeshLab or there are other pro tools for this job. I forgot to try it again earlier with the demo (woops! :S)

Generally 3d artists starts with modelling the low poly version and sculpt it using Multiresolution feature (Zbrush/Blender) so it is kind of a reverse situation here. ;-)


Rick Nasher(Posted 2015) [#30]
Well that answered that one. ;-)


RustyKristi(Posted 2015) [#31]
Hey nice sculpt on that model! I've seen SculptGL it's pretty neat.


Rick Nasher(Posted 2015) [#32]
Yeah, this is how things should work in design. Intuitive without the need to master a whole skillset/language. In SketchUp I was able to replicate the officebuilding from work in about 2 evenings! Including stairways elevator shafts, rooms, pillars, windows, entrances and a company bilboard above the main entrance etc.
Shame it was too high poly for usage in Blitz and left some odd shadings here and there.. Could reduce a bit (in DeleD I believe) but not as perfect as in the original app used for creation.

Ah well guess we're still in the dark ages.. :-D


Yue(Posted 2015) [#33]
http://www.atangeo.com/products



Free.


Rick Nasher(Posted 2015) [#34]
Intersting, thanks Yue. Gonna give that a go..


Balancer Lite
is a free version. It is fully functional but works with small meshes only.
The limit for a single mesh is 15000 triangles.
If your entire model is large but has many small independent meshes or layers, you can still use Balancer Lite. Before loading your model, enable Balancer to split the model into independent meshes in Tools | Options | Importers | Wavefront .obj.

Balancer Lite can be used for non-commercial purposes in non-business, non-commercial environment only.
Commercially, 30 days evaluation period applies.



But who's counting?


RustyKristi(Posted 2015) [#35]
Good link Yue, will check it out.