Quick Reply
Search this Thread
Test Subject
Original Poster
#1 Old 26th Sep 2025 at 3:23 AM
Default Hair Texture Issues
Hi! I have periodically been trying to convert hair from various games to TS3 for actual years. There is just something about the hair conversion pipeline that my unga bunga brain isn't very good at. I dunno. But I got the closest thing to something that doesn't look atrocious recently! Alas, it has some weird texture issues that I can't figure out.

Sorry these pics are of a dark hair color. Hopefully it is still noticeable.




So I checked back in Blender and there is some weirdness going on in some of the same spots I see it in game, but others (like the back) look fine.






I checked the texture and don't see anything on there that would cause this. Maybe it's the backfaces being wonky? I typically use Blender 2.79, so I can't follow the tutorials around here to a T, but I do try to take parts of them into account throughout the process. I also have Blender 4.5 installed (I just don't like using it lol), so I went to checked the face orientation there and it seems fine to me.




So I'm stumped. I'm not sure if it matters, but I do like to use the original textures from 2K where I can. So I opened the original texture for the hair in GIMP and used grain merge to add a more TS3 appropriate texture to it. I uploaded the file so all the textures are there to be scrutinized. p.s. please don't judge me for not making morphs lol I'm trying! Baby steps!
Screenshots
Attached files:
File Type: zip  Liv2K20HairTest.zip (7.64 MB, 3 downloads)
Scholar
#2 Old 27th Sep 2025 at 5:38 AM
Quote: Originally posted by bomaye
Hi! I have periodically been trying to convert hair from various games to TS3 for actual years. There is just something about the hair conversion pipeline that my unga bunga brain isn't very good at. I dunno. But I got the closest thing to something that doesn't look atrocious recently! Alas, it has some weird texture issues that I can't figure out.

Sorry these pics are of a dark hair color. Hopefully it is still noticeable.




So I checked back in Blender and there is some weirdness going on in some of the same spots I see it in game, but others (like the back) look fine.






I checked the texture and don't see anything on there that would cause this. Maybe it's the backfaces being wonky? I typically use Blender 2.79, so I can't follow the tutorials around here to a T, but I do try to take parts of them into account throughout the process. I also have Blender 4.5 installed (I just don't like using it lol), so I went to checked the face orientation there and it seems fine to me.




So I'm stumped. I'm not sure if it matters, but I do like to use the original textures from 2K where I can. So I opened the original texture for the hair in GIMP and used grain merge to add a more TS3 appropriate texture to it. I uploaded the file so all the textures are there to be scrutinized. p.s. please don't judge me for not making morphs lol I'm trying! Baby steps!


Hopefully, @CardinalSims see this also. What I found is issues with your diffuse. Using GIMP 2.10, add a layer mask, and assign the texture's alpha. Then show the alpha map.



You have all those gray areas, and no feathering of the ends. For the gray areas, you can increase contrast, until the gray is gone. Same can bbe done using curves. Another thing is that the ends are too harsh. You can use Gaussain blur, maybe .75 on x axis and 2.0 to 3.0 on y axis to make them softer. Next, is that the hair is too close to the ends of the mesh. Export the UV map from Blender and import to GIMP or whatever you use, as a layer. Use scaler tool, unconnect the x/y link, and push the hair away from the end of the mesh. Be sure to check the root end isn't moved too far. I see control maps as you made, but personally don't like them. I would use a blur on y axis, copy and then paste to make the control more solid. I also use a full black backing layer, then merge down to that. 2048 size probably isn't necessary either.




Last thing, I learned from CardinalSims... I haven't used Blender 2.79 in a few years to do much. In 2.8x and up, go to edit mode and select all faces. Top tabs, Mesh> Separate> By Loose Parts. Blender will separate the mesh, CardinalSims says it does it in proper layering order, and it does seem to work. Just rejoin all of the meshes in the order Blender made.
Screenshots

Shiny, happy people make me puke!
Test Subject
Original Poster
#3 Old 27th Sep 2025 at 11:18 AM
Okay! Thank you! I'll make those changes. I actually saw the same note from CardinalSims about the Separate by Loose Parts thing, so I did do that so I think the layering should be fine.
Inventor
#4 Old 27th Sep 2025 at 11:33 AM
The above comment were my initial thoughts, too.
As it's visible even when I cleaned up the grey and messy edges in the alpha channel, the main culprit may be mesh order here.
Which the above trick can sometimes work on, but for a hair with this many layers and separate parts (almost 200 with backfaces removed) it may be more of a manual job.

The concept is that the vertices on a mesh are rendered in a specific order. When a mesh has transparency, the order the parts render in can interfere with the transparency- as the engine tries to decide what's on top and what is underneath.
When you merge two parts in Blender, they'll recalculate in the order they were merged- which gives us a little bit of control over. I would make a few collection folders in Blender and sort the hair parts into categories (like 'Bangs', 'Pigtails', 'Base', 'Top Layer', so on). Join those together first, then join each part onto the innermost part. (ie. selecting 'Top Layer' and then 'Base' > Join).

This hair is dense with overlapping pieces and redundancy, so much so that some of them are totally obscured and could be deleted without affecting the appearance of the hair, so it may take some finessing to clean up those areas where the transparency is suffering.

\

A note about the textures in general:

A common misconception in hair texturing seems to be that the 'cutout' - that is, the shape of the hair as it will appear when transparent - is how it should look on the textures. When really, the alpha channel of the diffuse is the only part that needs to look like that because that's the only part that the game uses to apply alpha transparency.

If you save a transparent image in .dds format, the main texture will fill in the gaps with black- and you can end up with nasty pixel bleed in semi-transparent areas. The entire image can just be hair texture for the cleanest edges, or gaps can be filled with light grey.
Example of what one of my textures and its alpha channel look like:

It would be redundant to cut that shape into the main image, that happens automatically when the game composites the texture.

Additionally, the control and specular don't need transparency and you can optimise by saving them as DXT1- and in the latest version of NVidia Texture Tools there is no quality difference between a DXT1 and a DXT5, so there is no downside to this.
The same goes for these being cleaner if the entire image is hair texture, too.

On that note, 2k textures for hair is RAM-eating overkill- but not related to the issue.

\

In short, there doesn't seem to be a quick fix. It's just one of those complications you'll get used to with practice.
I'm on study break next week, so if you're still having trouble with it then I'll take a deeper look at it.

A word of advice for conversions, you don't have to follow a guide that's specifically about converting.
There can be game-specific quirks, like TS4's UV layouts needing to be resized, but aside from that there is nothing different about converting a mesh versus making a hair from scratch or editing one that was already for TS3.
Screenshots

Cardinal has been taken by a fey mood!
Test Subject
Original Poster
#5 Old 27th Sep 2025 at 12:06 PM
Quote: Originally posted by CardinalSims
The above comment were my initial thoughts, too.
As it's visible even when I cleaned up the grey and messy edges in the alpha channel, the main culprit may be mesh order here.
Which the above trick can sometimes work on, but for a hair with this many layers and separate parts (almost 200 with backfaces removed) it may be more of a manual job.

The concept is that the vertices on a mesh are rendered in a specific order. When a mesh has transparency, the order the parts render in can interfere with the transparency- as the engine tries to decide what's on top and what is underneath.
When you merge two parts in Blender, they'll recalculate in the order they were merged- which gives us a little bit of control over. I would make a few collection folders in Blender and sort the hair parts into categories (like 'Bangs', 'Pigtails', 'Base', 'Top Layer', so on). Join those together first, then join each part onto the innermost part. (ie. selecting 'Top Layer' and then 'Base' > Join).

This hair is dense with overlapping pieces and redundancy, so much so that some of them are totally obscured and could be deleted without affecting the appearance of the hair, so it may take some finessing to clean up those areas where the transparency is suffering.

\

A note about the textures in general:

A common misconception in hair texturing seems to be that the 'cutout' - that is, the shape of the hair as it will appear when transparent - is how it should look on the textures. When really, the alpha channel of the diffuse is the only part that needs to look like that because that's the only part that the game uses to apply alpha transparency.

If you save a transparent image in .dds format, the main texture will fill in the gaps with black- and you can end up with nasty pixel bleed in semi-transparent areas. The entire image can just be hair texture for the cleanest edges, or gaps can be filled with light grey.
Example of what one of my textures and its alpha channel look like:
It would be redundant to cut that shape into the main image, that happens automatically when the game composites the texture.

Additionally, the control and specular don't need transparency and you can optimise by saving them as DXT1- and in the latest version of NVidia Texture Tools there is no quality difference between a DXT1 and a DXT5, so there is no downside to this.
The same goes for these being cleaner if the entire image is hair texture, too.

On that note, 2k textures for hair is RAM-eating overkill- but not related to the issue.

\

In short, there doesn't seem to be a quick fix. It's just one of those complications you'll get used to with practice.
I'm on study break next week, so if you're still having trouble with it then I'll take a deeper look at it.

A word of advice for conversions, you don't have to follow a guide that's specifically about converting.
There can be game-specific quirks, like TS4's UV layouts needing to be resized, but aside from that there is nothing different about converting a mesh versus making a hair from scratch or editing one that was already for TS3.


Thank you! I was a bit afraid I'd have to manually reorder the parts. I'll try to tackle this when I have time. I'll lower the texture size to 1k as well. Thank you for the tip about the texture! I definitely did think it had to match the hair "cutout", so I'll keep that in mind as well!
Back to top