[Résolu] 2 Materials - transparent+diffuse = erreur visuel
[Résolu] 2 Materials - transparent+diffuse = erreur visuel
Salutation,
J'ai un mesh d'une épaulière d'armures, sur le quel j'ai appliqué 2 textures :
1) une texture Transparent, un emblème avec une couleur
2) une texture en speculare, le métal de l'armure
La 1er texture Transparent pourra être modifier par le joueur (l'image et la couleur) j'ai donc besoin de garder 2 textures,
Mon soucis est : une erreur d'affichage, l'emblème semble superposé/clignote :
pourtant dans l'inspector l'affiche est correct :
la texture :
Webplayer : https://dl.dropboxusercontent.com/u/515 ... _2mat.html ( bouton milieu souris pour faire pivoter la camera )
j'ai déjà essayé :
- les divers shader disponible (transparent/cutoff etc...)
- modifier la config de la texture (GUI, ...)
Sur la toile j'ai trouvé quelques informations où il faut crée un shader pour faire ceci, mais peut être que je m'y prend mal pour avoir le résultat escompté ? si quelqu'un a une piste, je suis preneur si je suis obligé de passer par un shader adapté, une piste est également bienvenu
Thanks,
J'ai un mesh d'une épaulière d'armures, sur le quel j'ai appliqué 2 textures :
1) une texture Transparent, un emblème avec une couleur
2) une texture en speculare, le métal de l'armure
La 1er texture Transparent pourra être modifier par le joueur (l'image et la couleur) j'ai donc besoin de garder 2 textures,
Mon soucis est : une erreur d'affichage, l'emblème semble superposé/clignote :
pourtant dans l'inspector l'affiche est correct :
la texture :
Webplayer : https://dl.dropboxusercontent.com/u/515 ... _2mat.html ( bouton milieu souris pour faire pivoter la camera )
j'ai déjà essayé :
- les divers shader disponible (transparent/cutoff etc...)
- modifier la config de la texture (GUI, ...)
Sur la toile j'ai trouvé quelques informations où il faut crée un shader pour faire ceci, mais peut être que je m'y prend mal pour avoir le résultat escompté ? si quelqu'un a une piste, je suis preneur si je suis obligé de passer par un shader adapté, une piste est également bienvenu
Thanks,
Dernière édition par kamorne le 02 Juin 2014 22:15, édité 1 fois.
Re: 2 Materials - transparent+diffuse = erreur visuel
C'est un problème de Z fighting, dans ton cas ça m'a pas l'air trop grave, c'est seulement que lorsque la distance est trop faible entre deux meshs unity va avoir tendance à mélanger leur ordre.
C'est encore pire sur les objets transparents.
Je vois deux solutions rapides, écarter un peu les objets, ou bien réduire le far de la caméra. En effet, si tu baisses le champ de vue de la caméra, Unity aura plus de facilité à calculer les distances.
Une dernière solution serait de passer par un autre système que ce que tu utilises. Tu pourrais avoir plusieurs matériaux sur un même objet, et jouer avec les UVs. Cette solution marche bien pour des edges bien séparés. Sinon tu peux aussi passer par un shader spécial, qui pourrait remplacer une couleur de ton objet par une autre (genre rose bonbon par un paramètre couleur du shader).
Edit: Bon point pour la présentation du problème. C'est assez peu fréquent pour le signaler
C'est encore pire sur les objets transparents.
Je vois deux solutions rapides, écarter un peu les objets, ou bien réduire le far de la caméra. En effet, si tu baisses le champ de vue de la caméra, Unity aura plus de facilité à calculer les distances.
Une dernière solution serait de passer par un autre système que ce que tu utilises. Tu pourrais avoir plusieurs matériaux sur un même objet, et jouer avec les UVs. Cette solution marche bien pour des edges bien séparés. Sinon tu peux aussi passer par un shader spécial, qui pourrait remplacer une couleur de ton objet par une autre (genre rose bonbon par un paramètre couleur du shader).
Edit: Bon point pour la présentation du problème. C'est assez peu fréquent pour le signaler
Re: 2 Materials - transparent+diffuse = erreur visuel
Merci pour la réponse rapide ! je suis partit sur l'option "écarté l'objet"
j'ai ajouté un mesh pour l'emblème, qui est légèrement au dessus de mon mesh de base d’épaulière, je perd surement un peu en perf, mais le rendu est exactement ce que je cherchais
thx
j'ai ajouté un mesh pour l'emblème, qui est légèrement au dessus de mon mesh de base d’épaulière, je perd surement un peu en perf, mais le rendu est exactement ce que je cherchais
thx
Re: [Résolu] 2 Materials - transparent+diffuse = erreur visu
c'est pas super optimisé tout ça, il te faudrait faire un bon dépliage uv de ton perso et y inclure ta texture!
m'enfin ça marche aussi
m'enfin ça marche aussi
ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
Re: [Résolu] 2 Materials - transparent+diffuse = erreur visu
tu veux dire au niveau de l'épaulière ?
si oui, c'est voulu (en tout cas c'est la solution que j'avais trouvé ) que ce ne soit pas un mesh avec tout inclu (armure+personnage), ça me permet d'avoir un mesh de perso avec anim d'un côté et d'un autre lui composer une armure en mélangeant les parties d'armure (une épaulière, un plastron etc ...) qui sont attaché aux bones du personnage
si oui, c'est voulu (en tout cas c'est la solution que j'avais trouvé ) que ce ne soit pas un mesh avec tout inclu (armure+personnage), ça me permet d'avoir un mesh de perso avec anim d'un côté et d'un autre lui composer une armure en mélangeant les parties d'armure (une épaulière, un plastron etc ...) qui sont attaché aux bones du personnage
- boubouk50
- ModoGenereux
- Messages : 6224
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [Résolu] 2 Materials - transparent+diffuse = erreur visu
Sinon y'a toujours la possibilité, en shader, d'utiliser le Z-Depth pour simuler un décalage et afficher ton alpha toujours devant.
Documentation Unity
C'est un peu loin pour moi maintenant, si je me souviens bien, tu dois ajouter cette ligne à ton shader:
Vois avec la doc et fais quelques tests. Si tu arrives au bon résultat, poste-le ici, ça nous servira toujours.
Documentation Unity
C'est un peu loin pour moi maintenant, si je me souviens bien, tu dois ajouter cette ligne à ton shader:
Code : Tout sélectionner
SubShader {
...
Offset -1,-1 //Offset sur Z local
...}
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: [Résolu] 2 Materials - transparent+diffuse = erreur visu
Le problème c'est que si il tourne son personnage, le logo risque d'être visible à travers le corps, non?boubouk50 a écrit :Sinon y'a toujours la possibilité, en shader, d'utiliser le Z-Depth pour simuler un décalage et afficher ton alpha toujours devant.
Documentation Unity
C'est un peu loin pour moi maintenant, si je me souviens bien, tu dois ajouter cette ligne à ton shader:
Vois avec la doc et fais quelques tests. Si tu arrives au bon résultat, poste-le ici, ça nous servira toujours.Code : Tout sélectionner
SubShader { ... Offset -1,-1 //Offset sur Z local ...}
- boubouk50
- ModoGenereux
- Messages : 6224
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [Résolu] 2 Materials - transparent+diffuse = erreur visu
Dans ce cas d'un objet convexe, non, puisque la face intérieure n'est pas rendue.
En y repensant, je crois que l'offset est effectué suivant le Z local de la face (normale), donc il n'y a pas de problème. C'est une sorte de "push" en fonction de la distance caméra pour rectifier les conflits de superposition. Dans tous les cas, donc, ça devrait marcher.
En y repensant, je crois que l'offset est effectué suivant le Z local de la face (normale), donc il n'y a pas de problème. C'est une sorte de "push" en fonction de la distance caméra pour rectifier les conflits de superposition. Dans tous les cas, donc, ça devrait marcher.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
- boubouk50
- ModoGenereux
- Messages : 6224
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [Résolu] 2 Materials - transparent+diffuse = erreur visu
Le souci c'est si il y a un autre objet qui viendrait proche de l'emblème, genre une épée qui viendrait sur l'épaule. il se peut que l'emblème soit rendu par dessus (en fonction de la distance de la caméra)
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: [Résolu] 2 Materials - transparent+diffuse = erreur visu
En effet.boubouk50 a écrit :Le souci c'est si il y a un autre objet qui viendrait proche de l'emblème, genre une épée qui viendrait sur l'épaule. il se peut que l'emblème soit rendu par dessus (en fonction de la distance de la caméra)