Changement de texture précis après collision

Questions à propos du scripting Shader.
Répondre
Avatar de l’utilisateur
Yondaime13
Messages : 55
Inscription : 16 Mars 2015 16:42

Changement de texture précis après collision

Message par Yondaime13 » 23 Mars 2015 15:07

Bonjour les Unity addict !

Décidément je suis accro à vous, je pense que c'est l'effet débutant sur Unity ! :lol:

Encore après de longues recherches sur Internet et des minces résultats principalement en anglais et vieux je fais appel à vous !! :roll:

Pour résumer mon problème je vais prendre deux choses simples, un cylindre et un plan muni d'une texture (ou une couleur). Ce que j'aimerai pouvoir faire c'est que lorsque le cylindre rentre en collision avec le plan, je voudrais changer la texture juste et je dis bien juste autour de la forme du cylindre et pas tout le plan.

Je sais pas si c'est possible, j'ai trouvé des gens parler de shaders qui prennent comme paramètre une zone d'intersection de deux objets mais vu que je ne comprends pas encore grand chose aux shaders je viens quémander votre aide ! ;)

Je vous remercie d'avance :oops:
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: Changement de texture précis après collision

Message par cayou66 » 23 Mars 2015 15:16

Tu pourrais pas résoudre ton problème en utilisant des decals?

Exemple (parmis tant d'autres): http://forum.unity3d.com/threads/decal-system.141792/

Avatar de l’utilisateur
Yondaime13
Messages : 55
Inscription : 16 Mars 2015 16:42

Re: Changement de texture précis après collision

Message par Yondaime13 » 23 Mars 2015 15:55

Je pense pas que ça soit exactement ce que je recherche après visionnage. En effet en vrai mon cylindre est dynamique et ça simule un perçage en fait ( cylindre -> sonde ) ..

Et de ce que je comprends un decal c'est une sorte d'image fixe alors que ce que je veux c'est que la texture change en fonction de la ou la sonde est ...

Je sais pas si c'est clair pour toi ? :?
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Changement de texture précis après collision

Message par Alesk » 25 Mars 2015 12:15

Salut,

Tu peux faire ça avec un decal qui va venir se coller au point d'intersection entre ton plan et ton cylindre

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: Changement de texture précis après collision

Message par cayou66 » 25 Mars 2015 16:03

Si c'est un simple changement de texture le decal c'est parfait, comme dit Alesk tu positionne le decal à l'endroit du point de contact (dans OnCollisionEnter ça se trouve être dans les ContactPoints) et ça produire l'effet désiré. Par contre si tu cherche vraiment à faire un trou dans ton mesh, ça se complique un peu...

Avatar de l’utilisateur
Yondaime13
Messages : 55
Inscription : 16 Mars 2015 16:42

Re: Changement de texture précis après collision

Message par Yondaime13 » 27 Mars 2015 12:05

Non je pense pas qu'il faut faire un trou dans le mesh ! La vidéo au lien suivant te montre ce que je veux faire :

https://vimeo.com/98452447
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Changement de texture précis après collision

Message par Alesk » 27 Mars 2015 12:13

Sympa comme outil ^_^

Et donc toi tu veux faire les rectangles rouges qu'on voit à la surface de l'os ?

colone
Messages : 25
Inscription : 06 Mars 2015 22:45

Re: Changement de texture précis après collision

Message par colone » 27 Mars 2015 12:38

^^
A mon avis il parle plus de la texture anime qui est cree lorsque l'aiguille touche le noyau. ?

Avatar de l’utilisateur
Yondaime13
Messages : 55
Inscription : 16 Mars 2015 16:42

Re: Changement de texture précis après collision

Message par Yondaime13 » 27 Mars 2015 15:11

Je parle tout simplement le rouge qui se fait autour de la sonde quand elle est à l'intérieur de la vertèbre. Pas forcement quand elle touche le noyau, avant plutôt
----------------------------------------
La bêtise, c'est de la paresse.
----------------------------------------

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Changement de texture précis après collision

Message par Alesk » 27 Mars 2015 16:03

Ha ok, donc là c'est plus compliqué effectivement :p

Si tu veux un truc "souple" d'utilisation, il faut tester avec du dessin en temps réel sur la texture.
Pour ça il faut un dépliage uv de la zone qui soit le plus simple possible, puis lancer quelques rayons depuis les coins de ton bloc rectangulaire, en direction de la tranche.
ça va te donner une liste de points d'impacts dont tu pourras récupérer les coordonnées UV qui te donneront la délimitation de la zone de texture à colorer.
Il vaut mieux passer par une deuxième couche de coordonnées UV (et donc une texture vierge par dessus), afin de ne pas toucher à la texture initiale du mesh.

Répondre

Revenir vers « les Shaders »