Problem with seams

Selphadur
Posts: 18
Joined: Fri Feb 15, 2019 7:52 am

Fri Feb 15, 2019 5:30 pm

Hello,
So I made custom race, added tail to it. Everything works fine, but there are really ugly visible seams on the character model.
I used Greenlander as base (human). Tried meshes from this forum (blender template). Also tried from meshes folder. Result is same.
In vanilla game greenlander looks ok, without any strongly noticable seams. But when I export my model it has seams although model is completely same just with added tail.
Tried exporting in different ways, using dds DXT5 and DXT3 format (used a bit of space on stock texture to add tail texture, nothing was touched).
It does not matter. Same seams in same places.
Can someone help? Thanks.
P.S. Due to image compression seams are less visible in image. Look at neck and to upped left arm near sholder. There are really bad seams.
Attachments
screenshot_65.jpg
screenshot_65.jpg (259.06 KiB) Viewed 11968 times
screenshot_64.jpg
screenshot_64.jpg (262.82 KiB) Viewed 11968 times

Selphadur
Posts: 18
Joined: Fri Feb 15, 2019 7:52 am

Fri Feb 15, 2019 6:50 pm

Here is another image from different angle. Here you can see a little bit better.
Attachments
screenshot_62.jpg
screenshot_62.jpg (262.21 KiB) Viewed 11964 times

Selphadur
Posts: 18
Joined: Fri Feb 15, 2019 7:52 am

Fri Feb 15, 2019 7:01 pm

Quick update.
It seems that we have this problem even just exporting human mesh without any mesh, UV or texture changes.
Here is the picture. You will notice seams in same place. While non imported-exported mesh in vanilla game does not have this problem.
Any ideas guys/gals?
P.S. using tangents, binormals and shape keys export option. Everything else is unchecked.
Attachments
screenshot_66.jpg
screenshot_66.jpg (252.51 KiB) Viewed 11964 times

oi__io
Posts: 29
Joined: Sat Feb 03, 2018 4:13 am

Sat Feb 16, 2019 8:35 am

I've taken a look at the mod. The seams are even more obvious on female characters. If you choose the first female face option and choose bald head you can see all the seams. I wonder if this is an issue with the export plugin. Seems like the plugin didn't export the tangent and binormals data correctly.

Hope the devs will look into this.

SABL3BLU3
Posts: 41
Joined: Tue Jun 06, 2017 7:04 am

Sun Feb 17, 2019 5:46 am

I ran into this same issue years a go w/ my Islander race when adding pointed ears, using an imported version of the human .mesh from the game files (just as you did). Just today I attempted to tackle the issue and came to the same conclusion - same model, untouched, after being exported fro blender, results in visible seams and loss of detail. First image is the human_female.mesh from the game files. Second image is the imported version.
Attachments
20190216211051_1.jpg
20190216211051_1.jpg (107.22 KiB) Viewed 11947 times
20190216211047_1.jpg
20190216211047_1.jpg (148.11 KiB) Viewed 11947 times

oi__io
Posts: 29
Joined: Sat Feb 03, 2018 4:13 am

Sun Feb 17, 2019 12:12 pm

Good news everyone. I think I've found a way to solve this issue.

When I first saw the seams my first thought was that something seems flipped. The more I look at it the more I feel like something is off with the normal maps. So I did some experiment by inverting the channels of the normal maps and it works...sort of:

Before(left) and after(right)
saiyanfemale-01.jpg
saiyanfemale-01.jpg (58.85 KiB) Viewed 11639 times
Most of the seams are gone except on the neck
saiyanfemale-02.jpg
saiyanfemale-02.jpg (50.98 KiB) Viewed 11639 times


Looks okay from afar
saiyanfemale-03.jpg
saiyanfemale-03.jpg (34.74 KiB) Viewed 11639 times
There's no more issue with most of the seams. Only the one in the neck remains but I think that can be further reduced if you're willing to mess around with the normal maps. I think perhaps it can be fixed in Substance Painter but I haven't tried it myself.



I know that the normal map for the face and body files are in DXT5_NM format and I know that when you export a normal map in DXT5_NM, the exporter will take the data from red channel of the normal map and store it into alpha channel. It will then delete the red and blue channel, leaving the green channel as is. Since the exporter will make the changes to the channels automatically, simply inverting the channel and save it will not work so I kinda revert the channels back to how it will look like in DXT5 format.

I don't know if there is a way to properly convert it back to DXT5 so I did it manually instead:
  1. In Photoshop I open the DXT5_NM files for the face normal map and create a new layer filled with white color
  2. Copy and paste the alpha channel from the normal map into red channel of the new layer
  3. Copy the green channel from normal map and paste into green channel of new layer
  4. Make sure that the blue channel of the new layer are all white
  5. Delete the alpha channel so there is only RGB channels left
  6. Invert the green channel of the new layer
  7. Save the file as DXT5_NM
This is the new normal map. Now repeat the process for the body normal map and make the changes necessary in FCS and test it in game. I'm not sure if this is a proper method to solve this issue but it appears to be working. Of course now you'll have to repeat this process to all the normal maps for each body type (skinny, muscular) and for each face variant if they use different normal map.

If you make your own mesh from scratch and bake the normal map from high poly sculpt yourself, I'm not sure if this is necessary. This is just a pseudo solution that I found. If anyone has a better solution, please share.



---

TL;DR: I inverted the green channel of the normal map. Kinda work.

--

Selphadur
Posts: 18
Joined: Fri Feb 15, 2019 7:52 am

Sun Feb 17, 2019 12:27 pm

Interesting find. I started to mess around with IO Plugin and found that if you export without tangent data you get these weird patches, which weirdly enough are in similar places as the seams are.
Attachments
Notangents.jpg
Notangents.jpg (1.36 MiB) Viewed 11606 times

Selphadur
Posts: 18
Joined: Fri Feb 15, 2019 7:52 am

Sun Feb 17, 2019 12:45 pm

Another interesting find
If you export only with shape keys, without tangents or binormals, model works just fine and has same seams as with exporting with those two options selected, but also has more seams in weird places (like going in the middle of whole body, very visible on belly, but it seems to randomly appear during mesh loading) and also get video memory crash in game.
If you export just with shape keys and binormals - you get patches.
If you export just with shape keys and tangents - model does not show up.
If you export with everything selected - seams are realy obvious and face suffers from detail loss.
Inverting normal map channels of textures, which you don't even use is not long run option, as any other mod that overwrites vanilla body textures will again introduce this problem, unless you go through all the trouble inverting vanilla normal map channels and putting them into your mod, assigning those textures and bloating mod file size. Something is messed up in IO Plugin.

Selphadur
Posts: 18
Joined: Fri Feb 15, 2019 7:52 am

Sun Feb 17, 2019 3:07 pm

Regarding neck seams they are also in vanilla. It is a part where head mesh connects with body mesh, so it is kinda unavoidable.

oi__io
Posts: 29
Joined: Sat Feb 03, 2018 4:13 am

Sun Feb 17, 2019 4:17 pm

Selphadur wrote:
Sun Feb 17, 2019 12:45 pm
Inverting normal map channels of textures, which you don't even use is not long run option, as any other mod that overwrites vanilla body textures will again introduce this problem, unless you go through all the trouble inverting vanilla normal map channels and putting them into your mod, assigning those textures and bloating mod file size.
I think you might have misunderstood my proposed solution. You don't change vanilla normal maps. Vanilla normal maps for the body and faces remains unchanged and it should remain untouched. I believe it is best practice to leave vanilla stuff alone and just make changes on your own mod unless the vanilla ones is in dire need of fixing. LOL

My solution is to create a new one just for your own mod. That means for your custom Saiyan race mod you will have your own normal map for regular body and should you choose to have muscle definition, make one for muscular/skinny as well. The same goes for the face. Only make normal maps for the faces you wanted the race to have. You can even make your own custom face textures just for your race. I'm of the opinion that if you want to make a custom race, might as well make it unique and truly your own but that's just me. ;p

SABL3BLU3 can make his own normal maps for his custom Islander race. Since each mod has their own normal maps, they won't conflict with each other nor with vanilla. This custom normal map is only necessary for any custom race mod that is modifying the default vanilla body mesh. For any other custom race that doesn't modify body mesh but only changes skin color or slider limit, there's no need to have custom normal map since they can use vanilla one without any issues.

And for more advanced modder who can make their own head/body and able to make high poly sculpt, I assume they could bake the normal map themselves so this probably wouldn't be an issue for them.

Truth be told, both you and SABL3BLU3 could even use the same normal maps for both of your mods and it will probably work. Why not try it yourselves :D

Selphadur wrote:
Sun Feb 17, 2019 3:07 pm
Regarding neck seams they are also in vanilla. It is a part where head mesh connects with body mesh, so it is kinda unavoidable.
Here's a comparison between vanilla female/Saiyan female/vanilla male:
saiyanfemale-04.jpg
saiyanfemale-04.jpg (91.96 KiB) Viewed 11535 times
I agree that the neck seams are there for all (?) vanilla male faces. Some of the vanilla female faces however don't have neck seam problem. I wish none of them got visible seams. It's annoying. I assume people don't usually noticed these small details but I spent a lot of time making custom faces so it's annoying for me whenever I saw it. Once you've seen it you can never unsee. LOL

oi__io
Posts: 29
Joined: Sat Feb 03, 2018 4:13 am

Sun Feb 17, 2019 6:03 pm

Here's the custom normal maps in case anyone else had the same issue and would like to give it a try:
custom normals male.zip
(7.87 MiB) Downloaded 412 times
custom normals female.zip
(7.75 MiB) Downloaded 400 times
The neck seams are very visible, it's pretty bad. I could probably try fixing it but I don't want to spend too much time on it in case nobody's interested in using it anyway. I felt like I've spent enough time troubleshooting this already when it's not even my problem, I'm just trying to help. Anyway, good luck guys. :D

SABL3BLU3
Posts: 41
Joined: Tue Jun 06, 2017 7:04 am

Sun Feb 17, 2019 6:24 pm

This is fantastic, oi__io. Tremendous thanks for debunking and solving the issue. As for the bit about "more experienced modders" - I'm only using the original .mesh because pointed ears are really all I wanted to add to my custom race, since they wouldn't differ incredibly from the races already present in the Kenshi world. If I were more ambitious, I could definitely tackle creating a 100% unique model for a custom race. Regardless, thanks again for coming up w/ a solution. The only unfortunate aspect of this is that any other mod' that alters the normals of a race, such as my #FreeTheNipple or Nanogiraffe's Tattoo mod', won't be compatible/ affect our race - unless we make compatible versions of our mod's that use compatible versions of those normals.

oi__io
Posts: 29
Joined: Sat Feb 03, 2018 4:13 am

Sun Feb 17, 2019 7:58 pm

I posted this link in my discussion with Selphadur in the comment section of my Mediocre Guide but I guess we both didn't read what was written in that page. It's very technical and I don't even understand what I'm looking at.

I only realized just now that it literally says:
3D Software capable of displaying tangent space normal maps will have a native required direction, or "handedness" for the RGB channels in a normal map, sometimes referred to as "Swizzle Coordinates," though Shaders can often be written to override this native handedness. You may hear developers refer to "flipping the green channel" in order to get a normal map to display correctly, and this simply indicates that when the normal map was baked, it was authored with the incorrect handedness in the green channel.
That could've saved me 5 hours or something that I've spent in trying to figure this out. If only I could read better. LOL.

I apologize if that "more advance modder" bit sounded like I'm saying that modders who don't put time into sculpting their own high poly mesh as less of a modder. I never intended it that way. I'm just trying to say that the solution might work for anyone who is making minor adjustment to the vanilla mesh as oppose to sculpting their own high poly mesh from scratch. Didn't mean it as a dig at you or anyone else. Sorry.

About the incompatibility with other mods that changes normal maps like the tattoo mod or the nude mod etc, I never thought about that. That's probably what Selphadur meant about "any other mod that overwrites vanilla body textures will again introduce this problem". I understand it better now.

Anyway, I agree that this is not an elegant or the most convenient solution. We do our best with what we got. Hopefully we can get a better solution soon. Devs, are you reading this? Notice us senpai and help us please. Thank you.

SABL3BLU3
Posts: 41
Joined: Tue Jun 06, 2017 7:04 am

Mon Feb 18, 2019 12:25 am

Nonetheless, I appreciate all the effort you put into troubleshooting and coming up w/ a solution for this problem. I followed your directions and your method works, so I'm even more happy w/ that. Now it's a matter of rinse & repeat. Lol. I didn't think you meant that as any sort of insult, just clarifying as to why I'm doing it this way. Thought it would save me time and effort, and unfortunately discovered that nothing is that simple. :P

Selphadur
Posts: 18
Joined: Fri Feb 15, 2019 7:52 am

Mon Feb 18, 2019 4:23 am

Hey. Well I guess I will just have to make custom normal maps :D But Nvidia DDS plugin seems to be less accurate, any suggestions what to use to convert diffuse map into normal with more precision? And how do you apply correct grayscale? It seems Nvidia DDS plugin can convert into grayscale normal map, but it still has those green lines in it. Also I really hope devs will fix this problem in IO plugin, because as I said before, when I did my models I did not even touch mesh, I just attached tail. So it is vanilla as is normal map. It just conflicts with itself.
Those vanilla normal maps are really well made. Shame I will have to use some sort of "converter" to convert from diffuse map, as baking in blender normal map is just too much and takes a lot of time (not to mention you need to be efficient and I rarely do that thing as you need high polygon mesh too).
Thank you for troubleshooting!
I will look into your made texture for reference to see what changes you made. But I will not use it in my mod. I think I will make custom one, maybe more hairy, as Saiyans are more or less Human-Monkey race, ha ha :D

Selphadur
Posts: 18
Joined: Fri Feb 15, 2019 7:52 am

Mon Feb 18, 2019 4:24 am

But if I will want to use do I have permission? Credits will be added of course if I do use those textures.

SABL3BLU3
Posts: 41
Joined: Tue Jun 06, 2017 7:04 am

Mon Feb 18, 2019 5:43 am

@Selphadur I created new normals using the procedure descirbed by oi_io for most faces and all the body variants (normal, skinny, and muscular) for both the male and female .mesh's. If you'd like, you can have and use them. Lmk.

SABL3BLU3
Posts: 41
Joined: Tue Jun 06, 2017 7:04 am

Mon Feb 18, 2019 5:46 am

Might I suggest that instead of adding a tail to the .mesh, you make hairstyles that include a tail. That way you don't need to mess with the original mesh and the colour of the tail will change along with the hair? It will be simpler and I think in the end, will look significantly better.

oi__io
Posts: 29
Joined: Sat Feb 03, 2018 4:13 am

Mon Feb 18, 2019 9:27 am

Selphadur wrote:
Mon Feb 18, 2019 4:24 am
But if I will want to use do I have permission? Credits will be added of course if I do use those textures.
I share the normal maps with hope that someone will make use of it in their mod. It includes normal map for one of the face variant and all three body types (regular, muscular and skinny). Feel free to use it. The same goes for everyone. No need to ask for my permission. Credit would be nice but not necessary. :D

SABL3BLU3 wrote:
Mon Feb 18, 2019 5:46 am
Might I suggest that instead of adding a tail to the .mesh, you make hairstyles that include a tail. That way you don't need to mess with the original mesh and the colour of the tail will change along with the hair? It will be simpler and I think in the end, will look significantly better.
That's a very good suggestion. The only downside I could see is that you can no longer use vanilla or modded hairstyles if you want the race to keep the tail unless you make your own version of it. From my experience hairstyles handle textures just a tiny bit differently from body or armor. The hair texture only uses single channel. Main diffuse is in shades of grey so that it can be colorable while the alpha is in black and white. Hair don't use normal map. The texture is split in two: base head texture and hair mesh texture.

There's some learning curve to be had when playing around with hairstyles but it's pretty much straight forward when you got it figured out. It's a good alternative tho if Selphadur can match the tail with Saiyan hair. :D

Selphadur
Posts: 18
Joined: Fri Feb 15, 2019 7:52 am

Mon Feb 18, 2019 12:55 pm

Well the tail is and always will be brown as by Dragon Ball lore all Saiyans had brown tails(unless going super saiyan or gt versions). Tails don't change colors when you change skin color as they are masked. And there can be another problem that when you put a hat tail will be gone (as hair does). It requires unnecesarry tweaks and etc. So making it part of body mesh is most logical option. I will figure out anyway how to make it look good, as I will be adding hair too in the near future. But I don't think attaching tail to hair is a good option. I don't want to redo every single vanilla hair, or make a bunch of hairs just for new race and discard vanilla ones. Idea is good, but execution of it needs too much work, which is completely unnecessary, bothersome and will take too much time :)

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 5 guests