Hey Polycounters,
I'm to give a presentation about face weighted normals and the so-called "medium-poly workflow". I've already gained a quite good understanding of the workflow thanks to Ready at Dawn's the Order Environment tech talks and all of the great threads here in Polycount. I see the possibilities of the workflow in environment art but sadly I haven't had a chance to use said workflow in an actual production.
So the actual question is how have you used fvns and what kind of problems did you face in production? I'm aware of the sub-pixel polygons and the requirement of custom tools, but I'm also open for all possible solutions that you came up for these issues. You can also post links to reading materials if you have any.
Thank you for your time.
Replies
Also used them in 3dsmax with the script that automatically set them aligned to faces on the model. One problem was when exporting from 3dsmax to Maya (package that client used) - if you import with Unlock Normals unchecked, the mesh inside Maya looks just like it did in Max, but all normals are locked, not just the ones that were adjusted inside 3dsmax. Then using the standard Unlock Normals from the menus turns all edges to hard edges and your work is lost. If you import the FBX with Unlock Normals on, then smoothing groups are preserved, but custom normals are not, so vertex normals are reset to Maya's Angle and Area weighted. So it's best to use them when the model is final, and in the final software package.
One example for LOD approach was from flat bevels (corner edge loop flanked by another two sets of loops at LOD0) to 2-edge bevel with face weighted normals to hard edges.
Here is a post about my tool: http://polycount.com/discussion/comment/2230470/#Comment_2230470
Couple of benefits.
We don't jump between Maya / Max so we haven't run into the problems @huffer talks about. But there are some limitations.
- The tool I made, and none of the other FWN scripts for Max, support smoothing groups / hard edges. So if you have large polys next to each other at a steep angle you'll have the same problem with the default edge angle smoothing. To workaround you can either break the edges or add an extra bevel. Either case adds verts to the final output, but so do smoothing groups. In general, you are at a lower vertex count using FWN instead of smoothing groups.
- My FWN tool does a Re-triangulate operation before calculating the normals. This gives a smoother shading result especially if your model has ngons or non planar quads. But if there is a specific edge you don't want turned you need to remember to connect the verts.
- 3ds Max really wants to not use explicit normals. If you collapse the modifier and try to edit, the shading explodes. It's best to use the remove button on my tool, or delete the modifiers.
As for LODs I haven't really had a problem. Unless you are creating a normal map per LOD model it won't be synced anyway.I updated the script and it seems to work well.
In 3ds max everytime you edit a mesh with custom mesh normals they break.
On one hand, it is pretty damn great that Maya has the option (well, the 3 options actually) without the need for any third party script ; but on the other hand, the fact that it is enabled by default and without warning is a pretty terrible idea. Many users are not even aware of what's going on, and it definitely creates issues when working remotely/exchanging files outside of native .ma
However, in the controlled environment of a studio I would see no reason to not use them (either in Max/Blender with a script, or in Maya as a core feature) but only if and only if a very specific checklist of things to be aware of is clearly established by the leads.
As for the topic of file formats holding them well, it seems like FBX is doing a good job, although unlike Maya it is probably not its default behavior, meaning that indeed things could end up being locked on re-import. I'd say proceed with caution, and make sure to prepare a test asset making potential issues VERY obvious.
@monster , do your character artists mainly use it to reduce the gradients of a normal maps or on characters that don't use normal maps at all? I've found less information on how it is used on characters overall. Also thank you for the script, I'll be testing it out later today.
I'd also be interested to hear if anyone has used fvn on mobile titles? I don't really see any issues there, but if someone has first hand experience it would be greatly appreciated.
The next step for calculating FWN for me is to adjust the face weighting for faces that are adjacent and planar. So instead of Face Weighted Normals you have Planar Weighted Normals. FWN has been working well enough for me, so I haven't really put the work into it. And there is a script floating around here that sets vertex normals to face normals which people use to spot clean their normals. It works well enough for now.
but they are much cleaner... in a weighted area you can delete nearly everything and the object(normalmap) will look the same...
I was wondering if any of you guys had experience importing a mesh with weighted normals into Unreal? I get an error saying mesh has degenerate tangents, which I don't get if the normals havent been adjusted. Can't seem to find much about it on the tinterwebs.
- Authoring LODs can be a nightmare - we ended up authoring 100% of LODs by hand. Artists naturally hated this. We tried using automated solutions to generate the LOD - they did not work well (at all) with the kind of sparse geometry we were using.
- We found that LOD popping was very noticeable on chamfered corners and edges.
- You'll get a lot of value from educating the art team that just because "it's the same amount of verts" doesn't change the fact that you're drawing tons more triangles, and drawing triangles is expensive.
- Custom tooling is almost a necessity.
Feel free to PM me if you have any specific questions.@marks , its a bummer there is no automated process to generate LOD's + generating new weighted normals. Maybe Blender 2.8 could come in handy in the future (?).