Changement de texture précis après collision
Re: Changement de texture précis après collision
à priori il n'y a pas de coordonnées uv sur la partie qui t'intéresse c'est pour ça que ça déconne.
J'en ai rajouté et ça fonctionne ensuite parfaitement dans unity.
Comme ceci :
1) passe en vue de dessus et sélectionne le mesh en edit mode
2) ajoute une couche uv
3) fais la projection avec Project From view (Bounds) -> le bounds c'est pour s'assurer que la projection occupe tout l'espace uv Puis tu sauves et tu importes le fichier bend dans unity.
Une fois dans ta scène, à part ton os spongieux, tu places tous les autres objets dans le layer "Ignore Raycast", et zou ça devrait fonctionner direct avec le script de projection. (en tout cas pour moi ça le fait :p) Par contre, pour alléger un peu plus, tu devrais extraire juste la partie supérieure (la coupe) de ton os spongieux, afin de t'en servir comme mesh collider.
ça sera beaucoup plus rapide à traiter par le raycast que d'utiliser tout le mesh, avec toute sa partie inférieure qui ne sert jamais.
J'en ai rajouté et ça fonctionne ensuite parfaitement dans unity.
Comme ceci :
1) passe en vue de dessus et sélectionne le mesh en edit mode
2) ajoute une couche uv
3) fais la projection avec Project From view (Bounds) -> le bounds c'est pour s'assurer que la projection occupe tout l'espace uv Puis tu sauves et tu importes le fichier bend dans unity.
Une fois dans ta scène, à part ton os spongieux, tu places tous les autres objets dans le layer "Ignore Raycast", et zou ça devrait fonctionner direct avec le script de projection. (en tout cas pour moi ça le fait :p) Par contre, pour alléger un peu plus, tu devrais extraire juste la partie supérieure (la coupe) de ton os spongieux, afin de t'en servir comme mesh collider.
ça sera beaucoup plus rapide à traiter par le raycast que d'utiliser tout le mesh, avec toute sa partie inférieure qui ne sert jamais.
- Yondaime13
- Messages : 55
- Inscription : 16 Mars 2015 16:42
Re: Changement de texture précis après collision
Je vais voir merci !
Oui merci pour le conseil un ami à moi m'a conseillé d'alleger au maximum mon projet de toute façon car si ça dépasse 250Mo, vu que c'est destiné pour un iPad, ça risque de cracher
Oui merci pour le conseil un ami à moi m'a conseillé d'alleger au maximum mon projet de toute façon car si ça dépasse 250Mo, vu que c'est destiné pour un iPad, ça risque de cracher
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------
Re: Changement de texture précis après collision
Oué là tu as beaucoup trop de polygones. Tu devrais appliquer le modificateur "Decimate" de blender afin d'optimiser un peu tes meshes.
- Yondaime13
- Messages : 55
- Inscription : 16 Mars 2015 16:42
Re: Changement de texture précis après collision
Ouai je sais mais malheureusement pour mon projet je dois faire une vertèbre la mieux modélisée possible et c'est déjà assez difficile comme ça pour juste un petite deuxième année d'école d'ingénieur pour moi mais je vais essayer de mettre le "decimate" comme tu me conseilles
En tout cas désolé si je parais comme un vrai boulet sur Unity ça fait vraiment que 2-3 semaines que j'ai pris en main le logiciel
En tout cas désolé si je parais comme un vrai boulet sur Unity ça fait vraiment que 2-3 semaines que j'ai pris en main le logiciel
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------
- Yondaime13
- Messages : 55
- Inscription : 16 Mars 2015 16:42
Re: Changement de texture précis après collision
Dans la solution que tu m'as proposé plus haut tu crois qu'il est possible que les 4 points d'impact qu'on peut voir sur ta photo, relier ses points et remplir le carré avec une autre texture ?
LudlowFx : Désolé j'y penserai à l'avenir
LudlowFx : Désolé j'y penserai à l'avenir
Dernière édition par Yondaime13 le 01 Avr 2015 16:49, édité 1 fois.
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------
Re: Changement de texture précis après collision
Yondaime13 : Une fonction EDIT existe ! Inutile de double/Triple poster page après page alors que personne n'a répondu..
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
Re: Changement de texture précis après collision
Oui bien sûr, j'en ai même parlé dans mes réponses précédentes.Yondaime13 a écrit :Dans la solution que tu m'as proposé plus haut tu crois qu'il est possible que les 4 points d'impact qu'on peut voir sur ta photo, relier ses points et remplir le carré avec une autre texture ?
Pour obtenir ça, il faut trouver une méthode pour faire le remplissage rapidement (là j'ai pas trop fouillé) et au lieu de colorer les zones RGB de la texture, tu ne remplis que la couche alpha qui doit donc être totalement à 0 au départ pour que tout soit transparent et apparaissent au fur et à mesure.
- Yondaime13
- Messages : 55
- Inscription : 16 Mars 2015 16:42
Re: Changement de texture précis après collision
Donc tu veux dire qu'il faut que j'ai une deuxième texture qui sera transparente au début et qu'au fur et à mesure de l'avancement de l'outil celle-ci apparaisse ?
Comment tu t'occupes de la gestion de la couche alpha ? J'y connais pas grand chose là dedans .. ( la couche alpha c'est en gros la forme de mon objet ou ma texture sans les couleurs ni rien, c'est ma définition de la couche alpha quand je faisais du Photoshop )
Comment tu t'occupes de la gestion de la couche alpha ? J'y connais pas grand chose là dedans .. ( la couche alpha c'est en gros la forme de mon objet ou ma texture sans les couleurs ni rien, c'est ma définition de la couche alpha quand je faisais du Photoshop )
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------
Re: Changement de texture précis après collision
ouiYondaime13 a écrit :Donc tu veux dire qu'il faut que j'ai une deuxième texture qui sera transparente au début et qu'au fur et à mesure de l'avancement de l'outil celle-ci apparaisse ?
Il faut voir la couche alpha comme un masque qui laisse plus ou moins apparaitre certains pixels, regarde dans l'onglets "couches" de photoshop, tu y verras chaque canal (r,v,b et a).Yondaime13 a écrit :Comment tu t'occupes de la gestion de la couche alpha ? J'y connais pas grand chose là dedans .. ( la couche alpha c'est en gros la forme de mon objet ou ma texture sans les couleurs ni rien, c'est ma définition de la couche alpha quand je faisais du Photoshop )
Techniquement, la couche alpha c'est la même chose que la couche de rouge, de vert ou de bleu : c'est une image en niveau de gris, mais au lieu de contrôler l'intensité d'une couleur, ça contrôle l'opacité.
Si la valeur est à 0 (noir), c'est totalement transparent, et si c'est 1 (blanc) c'est totalement opaque.
http://www.webopedia.com/TERM/A/alpha_channel.html
Donc là, ce que tu peux faire :
1) chopper la liste des valeurs des pixels de l'image ans un tableau avec http://docs.unity3d.com/ScriptReference ... ixels.html
2) faire une boucle dans ce tableau pour modifier la valeur alpha des pixels qui t"intéressent.
3) assigner le tableau modifié à la texture avec http://docs.unity3d.com/ScriptReference ... ixels.html
Comme le tableau récupéré est en une dimension, et que ta texture est en deux dimension, voici comment s'y retrouver : http://stackoverflow.com/questions/2151 ... 1d-array-c
A noter, qu'il n'est pas utile dans ce cas de refaire un GetPixels à chaque update : tu peux stocker le tableau résultant dans une propriété de ta classe et le mettre à jour dans l'update.
Pour le remplissage de la zone de pixels, il y aurait bien une fonction du type floodfill, mais ça ne conviendrait pas à tous les coups (et serait relativement compliqué à mettre en place).
Le mieux est encore de considérer les 4 points testés comme formant un polygone (donc il faut bien les assigner à ta classe dans l'ordre) et de détecter si chaque pixel se trouve dedans ou en dehors de ce polygone.
Exemple de comment faire ici http://alienryderflex.com/polygon/
Ensuite, tu n'es pas obligé de faire une boucle sur tous les pixels de la texture. Connaissant les positions des 4 points, tu gardes les valeurs extrêmes de leurs coordonnées (X min et max et Y, min et max) pour restreindre le traitement à cette zone rectangulaire.
Là je pense que t'as tout ce qu'il te faut pour conclure
- Yondaime13
- Messages : 55
- Inscription : 16 Mars 2015 16:42
Re: Changement de texture précis après collision
Je connais bien l'algo de floodfill (utilisé pour faire un démineur en JAVA ) mais là je viens de faire juste une double boucle for mais bon ça marche que si ça fait une forme rectangulaire et que j'ai que 4 points mais vu que moi ça fait normalement une forme de pointe ça va être plus compliqué
Juste une dernière question, comment tu fais pour réinitialiser ta texture après avoir changé ses pixels ? Parce que en relançant une autre fois après les pixels rouges ne disparaissent pas
Juste une dernière question, comment tu fais pour réinitialiser ta texture après avoir changé ses pixels ? Parce que en relançant une autre fois après les pixels rouges ne disparaissent pas
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------