Crosskid Petit bavard
Messages : 53
| Sujet: transparance d'un objet éloigné (3D) Sam 15 Nov 2014 - 18:37 | |
| Bonsoir, J'ai commencer un projet de jeux en 3D et je souhaiterait faire apparaître progressivement un objet quand le joueur s'en approche et le faire disparaître progressivement quand celui ci s'en éloigne. voila ce que j'ai fait : - Code:
-
if distance_to_object(obj_player)<global.distance
{ alpha=distance_to_object(obj_player)/400
d3d_transform_set_identity(); d3d_transform_add_rotation_z(direction); d3d_transform_add_translation(x, y, 0); draw_set_alpha(2-alpha) d3d_model_draw(model, 0, 0, 0, background_get_texture(tex)); draw_set_alpha(1) d3d_transform_set_identity(); }
mais cela ne marche pas, vous avez des idées ? Merci par avance. |
|
Craki Utilisateur confirmé: Rang ****
Messages : 1496 Localisation : Dans l’univers de métamatière
| Sujet: Re: transparance d'un objet éloigné (3D) Sam 15 Nov 2014 - 20:19 | |
| Alors d’abord on ne calcule jamais des valeurs exactes de distances si c’est juste pour les comparer (vu que ça utilise la racine carré). Ensuite je trouve tes calculs assez chelous. C’est pourtant simple :
- Tu fixes deux distances d1 et d2 respectivement celle où l’objet commence à disparaître et celle où il n’est plus visible.
- Si (x - x0)2 + (y - y0)2 + (z - z0)2 < d12 avec (x0 ; y0 ; z0) les coordonnées de ton personnage, alors tu affiches l’objet entier.
- Sinon, si (x - x0)2 + (y - y0)2 + (z - z0)2 > d22, alors tu n’affiches rien (on peut sauter cette condition et mettre un sinon si à l’étape suivante)
- Sinon, d12 < (x - x0)2 + (y - y0)2 + (z - z0)2 < d22 et là seulement on récupère d la valeur exacte de la distance. On affiche l’objet avec un alpha suivant une fonction affine de d telle que f(d1) = 1 et f(d2) = 0 (ça, tu sais faire depuis la 2de).
_________________
Dernière édition par Craki le Sam 15 Nov 2014 - 20:42, édité 1 fois |
|
Crosskid Petit bavard
Messages : 53
| Sujet: Re: transparance d'un objet éloigné (3D) Sam 15 Nov 2014 - 20:34 | |
| Merci pour ta réponse rapide, je pense avoir saisi le principe, je vais essayer tout ca. Je vais être honnête, je ne suis pas vraiment doué pour les mathématique... Sincèrement merci d'avoir pris le temps d'expliquer et d'illustrer la réponse. |
|
Craki Utilisateur confirmé: Rang ****
Messages : 1496 Localisation : Dans l’univers de métamatière
| Sujet: Re: transparance d'un objet éloigné (3D) Sam 15 Nov 2014 - 20:43 | |
| J’avais oublié les carrés sur d1 et d2 dans les conditions. C’est corrigé. _________________ |
|
Contenu sponsorisé
| Sujet: Re: transparance d'un objet éloigné (3D) | |
| |
|