This is the effect of how some engines optimize their vertex normals, or something similar I believe.
The tilted edgeflow will make the upper row on this cylinder tilt a bit, to the oposite of the lower, and the way to fix this is to equalize the edgeflow in a sigsag pattern, it was the most visible with high gloss speculars shining on the cylindrical tube, or generally anything made out of a strip.
Now this is something I got used to alot while working, and I've always wondered why it is the single thing never mentioned anywhere in any tutorial, but I've still seen the results of this, in various games, including the sample I took with 3dsmax's standard realtime shader.
now discuss below; do you turn your edges, does your engine of choice have this artifact?
Replies
EDIT: Oh now I see the pics. I do the left one. Interesting result with the one on the right though, this may require some experimentation...
I personally dislike working in tris but sometimes just to make sure things are being taken care of the way they should I don't mind losing quad readability, for the sake of accurate normals bake...
even if you baked a highpoly beneath this, it would still tilt it.
That brings me to another question how does Maya shade? I worked with some mayaproductions recently and there are concave interior edges on the models which are obvious in max, not only in silhouette but in shading, it seems like maya shades the model dependent on the center face normal or something? As those zigzags are not that easily to see in maya and therefore sometimes just don't get cleaned, at least thats my conclusion to why a lot of the models i got from maya based clients had those issues. And not only clients i know some places in the airborn env where it happens too, phew soon we switch to max for that :P
I've seen some horribly smoothed lowpolys get perfect bakes and show off the normalmap without problems in maya, but would break apart when ingame.
SyncViewS, I read through that thread, and I know of the problem, how to fix it, and such, I'm mostly curious on peoples experience with it, what games have that same artifact, and how people usually choose to deal or not deal with it.
It's a real pain when you export your model to find loads of slight flaws as the normal map tries to compensate for trianglulation that's now the opposite to what it was when you baked the mesh. Or even just checked the silhouette of the mesh.
The only way I've found to fix it is to always triangulate the mesh before baking or exporting.
I'm guessing the issue there is that it's per-vertex and not per-pixel. So the fact they're stretched (rather than right angled isosceles as you'd get from a perfect quad) means that the shading gets skewed slightly.
The only reason this would happen is if your game exporter isn't properly reading/storing Maya's vertex normals. The instant you start saving Maya's vertex normals (since this is where your whole original issue comes from) then the entire problem goes away in the game engine.
If your game engine generates its own vertex normals then there is of course no guarantee that stuff which looks fine in Maya will look the same in the engine.
The only way to ensure this is to either store and load the Maya vertex normals in your model format, since Maya derives the vertex normals from the number of edges attached to the vertex (as you proved in your first example image), and so a "quad" will behave differently to a "triangle" section because it has less edge attachments.
A game engine cannot derive this the same way since it will all be triangle data by the time it reaches the engine, so the number of edge connections to each vertex will be different from Maya therefore you have to save it instead of deriving it.
You can also store this data in Maya by doing a "lock normals" operation before performing a Triangulate, this way it will use the normals generated from the quad geometry even after triangulation - again this will only make a difference if your format/engine store and read custom normals instead of generating their own.
If you can't store custom normals in your model format, the only way to guarantee a match between the app and the engine is to triangulate the whole mesh and make sure there are no locked normals, as Talon said. Providing your engine respects soft/hard edges then it should derive the vertex normals in the same way in-game.
generally maya seems to be the only app to deviate from the shading "standard" that every other application and engine seems to follow, but thats another thing aside from the tilted cylinder effect.