» Tue May 08, 2012 12:01 am
I'll chime in here, I too am obsessed with seamlessness. Here's some techniques I use (going by A1x2e3l's points which are spot on):
(warning - using NifSkope/gimp only - I dont know anything about photoshop, blender, max etc)
Also let me add from the picture your model looks fabulous, I am not sure what seams you are referring to but I will try to cover all the bases I know of.
In other words what seams are on your tattoos? I dont see any. Wait do you mean that the tatt seperates at the spinal column? I'll assume so. EDIT: I just looked very carefully again at your image. Are you talking about the barely barely barely visible seams just around the edges of the tatts? You really can't see them. However, if they bother you, the only way to ensure complete seamlessness with high-contrast additions like tatts is to create a layer with the tatt image, and some flat contrasting color (I would use white in this case) all around it. Now make a duplicate layer and color fill the tatt with gray, then color fill the surrounding with black, and fill the tatt again with white. You now have an alpha image. Now open DXTBMP (or however you prefer to make dds files) and paste in layer 1 to the image and layer 2 to the alpha, save as dds with alpha. That should do it. Then you will probably have to enable alpha on your mesh (you are using decal textures Im guessing) - I'm not into tatts so I'm afraid I can't help further with that specifically.
Lastly if your prefer photoshop, I'm guessing some of the concepts I discuss about gimp apply to photoshop too, I don't know.
1. Mesh smoothing - as poster above noted, BB takes care of this for you. Totally seamless vertice-wise except there is a "sheath" covering the intersection between upper arm and forearm which is also very well done but from some angles is just barely visible. To "perfect" that you need to open in NifSkope, expand the TriShape for upper arm or forearm (don't remember), click on trishape data, scroll to "Vertices" and expand. Now click on the first number data line you see and the trishape will be covered with white dots - these are individual vertices. The vertice you clicked on will be yellow (or whatever vertice highlight color you selected in NifSkope options). If you change the number(s) you will see the yellow vertice move. Now you can move each vertice in this way, rotating your view as you adjust until it perfectly intersects the plane of the mesh near it. Pain in the neck, yes, and finding specific vertices in the list can be frustrating but I say "well, do you want perfect or not?" lol. That's all on this as BB is already good enough vertice-wise to not worry about it.
2. Normal smoothing - Looking at your picture I see numerous normal seams. This is a problem with BB mesh(es) that relates to the "undercovering" present at intersection between: groin and chest, left arm and chest, right arm and chest. (notice that some of the most glaring seams are at those intersections in your picture). 2 ways to deal with this - first let me explain about the undercovering. To see it, go to the groin trishape node and look for the translations line, you will see Z=-73.5863. Change this value to -79.5863 and the groin moves down exposing the intersection, where you see a down-pointing cone under the tummy/lower back. This is the "undersheath", it is part of the chest mesh and has its own vertices and normals. Its vertices are invisible in-game but its normals *are* visible in game. You can either fix the vertices or the normals. I find the vertices to be easier in this case. Concept: if you expose the normals list instead of vertices as described above, when you select an individual normal you will see the trishape covered with outward-pointing white lines - these are normals. Scroll your view in to get a close look at the intersection between the upper arm and the chest with normals selected. You will note that you see one normal line for all vertices *except* at the intersection seam, where there are 2. One is the actual mesh normal and the other is the "undersheath" normal, and they are pointing in quite different directions (in some cases almost 90 degrees difference). We are going to move the vertices of the undersheath inside the body so they are invisble because they wont be rendered as they are inside the body. First, let's smooth the normals - this is easy, just go to the NiNode for the body part, expand, right-click NiTriShape just under it and select mesh -> face normals. Don't use smooth normals, this has no noticable effect - if you disagree by all means do that too. Now go to NiTriShapeData and expand the vertice list. Scroll through the list until a vertice on the undersheath turns yellow (tip: rotate/scroll your view until you can see all of the possible undersheath vertices. Now put your finger on down-arrow key but dont press yet. Now blink, blink to get your eyes ready, Look right at the center of the possble vertices and press and hold down-arrow. This will rapidly scroll through the list of vertices and you will eventually see a flash of yellow on one of the possible undersheath vertices - now quick, release the down-arrow key, and tap up-arrow until you get to the vertice you saw flash by. If you need to blink, release down-arrow, blink blink, look again and repress and hold) - yep that's what I do. Now that you found a undershealth vertice, edit the numbers towards 0,0,0 (example - I have a vertice at 6.5644, -6.7090, 81.7646. I will change it to something like 4.0, -4.0, 81.7646). Notice that the vertice has now seperated from the main mesh, inside the body where it will not be rendered in-game and therefore the normal will also not be rendered, only the correct normal from the main mesh will be rendered, fixing the seam. Now continue for all of the vertices of the undersheath that connect to the main mesh. When you are done, the undersheath should be completely disconnected from the main mesh at all places. Voila! 90% of your normal seam problems are now gone, well done.
For other body part intersections that do not have an "undersheath" (i.e. intersection between upper leg and knee, ankle and foot, etc.), I use the following method: 1) open mesh in NifSkope and save as a new file - example: my mesh might be called bb_skinf_newbody.nif, I will save as bb_skinf_newbody2.nif. Now unfull-screen the window (click the rectangle upper part portion of window) and drag window to upper left part of your monitor. This is your "reference" window. Now open original mesh again so you have a second NifSkope window, unfull-screen it and drag to mid-right part of your screen. This is your "changed" window. 2) Go to reference and expose the normals list for the body part you are changing (let's say upper leg), now do same on your changed, but use the connecting body part (lets go with knee). Start scrolling down the normals list in changed until you reach the first normal that is on the intersection seam. Now locate the same normal in reference (rotate/scroll your view until it's easy to see). Now note the values in reference and type those exact numbers into changed. This will exactly match up the normal line on that vertice for the intersection. Now rinse and repeat for every normal that is on the intersection seam. When you have them all done, save your changed mesh. Close your reference window, and save as your second mesh filename. Now you have 2 identical copies with the fixed normals. Now rinse and repeat from the beginning of this paragraph for each body part intersection. Sound painful and time-consuming? Indeed it is. "Do you want perfect or not?" hehe.
EDIT - another note. For intersections with an undersheath you need to fix the undersheath by moving it inside the body *and then also* fix the normals at the main mesh intersections as described above. That's a lot of work noone knows more than me but it's the only way to get it done.
Enter the game and check your work. You may notice that some normals are still creating shadows that are not realistic/appealing. For these you will need to hand-edit the values by guesswork without any reference. To do that, we move on to:
A quick word about seeing normal problems in NifSkope - you basically can't see them. To "sort of" see them, change render settings to "dark night" and set materials ambient and diffuse color to 0.5 (all colors) and specular to 1.0 (all colors). Now rotate your view back and forth and some normal issues will become visible but the only way to really see them is with in-game screenshots. Tip: after making changes like this, put the model in-game preferably outside in a region with clear sunny or overcast weather, enter the game and look at the model from all angles using TCL (console command - type 'TCL' without quotes) - screenshot any angles that need improvement for later reference.
Now that you can "sort of" see the shadows in Nifskope, refer to your screenshots made above and find those normals in the list. Write down the original values in case you screw up and need to restore. Rotate/scroll your view until you see the most glaring bad shadow angle that looks similar to your screenshot (make it as glaring and easy to see as you can). Now play around with the numbers until the shadow looks better. When you are satisfied, rotate your view back and forth and make sure it looks acceptable to you from other angles (no real rigorous way to do this, here's where your right-brain artist side comes out, something I struggle with at times - I've always been a left-brainer technicalist). EDIT - leaving render settings on "sunny day" works well too but you do need to change the materials colors as above to see the shadows. Make sure to restore the materials numbers back where they were when you are done. As an aside I prefer 0.9 ambient 0.9 diffuse 1.0 specular and 10.0 glossiness for final settings that are flesh. I've noticed some prefer 0.0 specular but when you do that it takes out all the gloss and making an unrealistic dry skin look - no ones skin looks like that unless they are dead, maybe they are if a vamp or something so adjust as appropriate. This goes for heads too, I use 0.88 ambient, 0.96 diffuse, 1.0 specular and 10 glossiness to get a good shading balance between the body and head which of course are seperate meshes and so need a bit of adjustment in material settings. Final note here don't use emissive (make it 0.0) unless you actually want glowing flesh - btw which has no effect but it can with certain flags applied that I'm sketchy on knowledge about - luckily I don't care about glow so it's all good, I just leave it at 0.0 always. Really final note here that vamp you have to kill for the main quest does indeed have eyes that emit light, I made a note to myself to look at that mesh but never did.
Whew! Taking a break - coming soon: 3) Texture seams, this will be a long one.
Last note, I offer my services to perform the above fixes but I would need some help from the community regarding sharing of resources. I'm a newb at things like uploading to sharing sites, and would prefer to maybe e-mail a mesh to someone or something like that. If anyone wants to work with me on this, just pm me. It would take time as the work I have done involves heavy editing of BB models/textures that change the shapes significantly so I would need to start from scratch to make sure the shape stays the same and just fixes minor errors. Also I have some alternative meshes for females that offer some variety from perfect hourglass 36-32-36, not that there is anything wrong at all with that.