Mip Maps sur 2D Sprite provoquant une ligne noire au-dessus. Pourquoi est-ce?

8

Je suis nouveau dans Unity. J'essaie et j'utilise Futile pour une approche basée sur le code, mais j'importe toujours des textures à l'aide du système Unity.

Le problème que j'ai est que lorsque j'utilise des mip maps pour redimensionner de grands sprites à des tailles plus petites sans bords irréguliers, j'obtiens un artefact de ligne noire au-dessus desdits sprites.

Difficile de voir

Un peu difficile à voir, mais ils sont là. Si je refuse la résolution, vous pouvez clairement les voir:

Plus facile à voir

Ce sont mes paramètres de texture:

Réglages

Ma question est, pourquoi ces lignes noires ici? Est-ce une erreur que j'ai commise? Est-ce juste un effet secondaire courant? Comment puis-je les réduire? De plus, si ce n'est pas la bonne approche, comment puis-je utiliser des sprites fluides dans un jeu avec la possibilité pour eux d'évoluer en douceur?

Merci!

Adam K Dean
la source
1
vous utilisez un atlas, n'est-ce pas?
Heisenbug

Réponses:

10

Il existe de nombreuses raisons pour lesquelles vous pouvez obtenir ces lignes. J'ai écrit une réponse plus détaillée ici , mais l'essentiel est:

Ne faites pas d'atlas et de mipmapping en même temps.

Pour la 2D, en général, vous ne voulez pas / n'avez pas besoin de faire du mipmapping. C'est utile surtout en 3D où vous ne connaissez pas la taille à laquelle vos textures seront rendues, mais c'est généralement rare en 2D.

Si vous avez définitivement une texture que vous réduirez agressivement, ne l'incluez pas dans un atlas.

Et je vous recommande également de désactiver l'anisotropie. Cela vise à vous donner de meilleurs résultats lorsque vous regardez de grandes textures sous des angles extrêmement nets, ce qui ne se produit tout simplement pas si votre jeu est en 2D.

Pyjama Panda
la source
en fait, un rembourrage approprié devrait permettre d'utiliser atlas et mipmap ensemble, je me trompe? +1 btw
Heisenbug
2
@Heisenbug en ajoutant du rembourrage, tout ce que vous faites, c'est déplacer le problème à un niveau de mip inférieur. Si vous devez avoir des mipmaps et des atlas, envisagez de les créer manuellement, et uniquement jusqu'au niveau où votre plus petit objet fait 1 x 1 pixel. Mais en 2D, vous ne réduisez généralement pas suffisamment les textures pour nécessiter un mipmapping, donc je vous recommanderais certainement de ne pas mélanger l'atlas et le mipmapping.
Panda Pyjama