[UPDATED] Alpha artifacts / Clamp to edge

How could I solve these weird lines? Imagine a minecraft character model and texture (mesh around for alpha “accesories”)


is there any way to have more harsh clamp to edge? the texture filtering is to point, anisotropy 0

you can move your texture coordinates of the box little bit in, so that they don’t reach all the way to the edge

in the blender itself?
red box is an example (yup thats too much but i want to get idea if thats what you’re thinking)

You want to have margins between your UV islands when doing UV unwrapping in Blender.

alright, if you add margins between islands appearance is messed up due to nature of MC skins (pixel to pixel, no space between separate parts)

Even if i did each individual UV face smaller it would not solve the issue
need more ideas on how to achieve my goal
perhaps we could do a engine precision pach?

an example of mc skin:

2023_11_08_a-happy-fellow-22100623 (1)

Will try to downsize each individual UV face to see if it would make a difference

A margin means a gap, not overlap. You want to have space between islands. Like in your last screenshot. Blender allows to add them automatically when unwrapping.

got it, any ideas how big the gap should be, half pixel, quarter of pixel, third?

There is no rule and depends on the texture and the purpose. I’d recommend a power of two rule based on texture size:
256 - 2px
512 - 4px
1024 - 8px

Since the texture is 64x64px, I’ve reduced 0.5 pixel, if reduced more it just dont look good at all, i mean it loses “detail” since 1 px is a lot giving its 64
lines are still crearly visible

the problem is with mipmaps typically … as in each following mip level, the gap halves in size. So as you camera moves away and mipmaps get used, you see more of the issue.

You could turn off mipmaps and then a solid 1 pixel gap should be enough.

character face is made out of 8x8 pixels for example, sacrificing 1 pixel is just way too much

What if i mapped UV on 512x512 texture ~> export ~> use 64x64 pixel texture in playcanvas?
or both 512 in export and playcanvas

Are you exporting separate tiny textures, one per model? You want to have one larger texture that has many objects unwrapped to instead.

No, entire texture is 64x64, one mesh instance, i mean that for player face theres only 8x8 of whole canvas so making a gap and removing 1 pixel from each side just takes too much. I will try to use 512x512 texture instead

Maybe you can create 9x9 face, repeating the last pixel color? Then you can still use 8x8.

tried with 512x512, 1024x1024, same results, texture size doesn’t matter - gap does, but too big gap is required in order to avoid lines.

no, i can’t change pixel positions, as I want to use already made minecraft skins from https://namemc.com/minecraft-skins and similar websites

what else can I do? Is there any engine hacks regarding opacity as its clearly the part where problems occur

Is the UV address of your texture asset set to Clamp?