AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 transparance d'un objet éloigné (3D)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Crosskid
Petit bavard
avatar

Messages : 53

MessageSujet: transparance d'un objet éloigné (3D)   Sam 15 Nov 2014 - 17: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 :

Event - Draw
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.
Revenir en haut Aller en bas
Craki
Utilisateur confirmé: Rang ****
avatar

Messages : 1469
Localisation : Dans l’univers de métamatière

MessageSujet: Re: transparance d'un objet éloigné (3D)   Sam 15 Nov 2014 - 19: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 - 19:42, édité 1 fois
Revenir en haut Aller en bas
Crosskid
Petit bavard
avatar

Messages : 53

MessageSujet: Re: transparance d'un objet éloigné (3D)   Sam 15 Nov 2014 - 19: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. gnii
Revenir en haut Aller en bas
Craki
Utilisateur confirmé: Rang ****
avatar

Messages : 1469
Localisation : Dans l’univers de métamatière

MessageSujet: Re: transparance d'un objet éloigné (3D)   Sam 15 Nov 2014 - 19:43

J’avais oublié les carrés sur d1 et d2 dans les conditions. C’est corrigé.

_________________
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: transparance d'un objet éloigné (3D)   

Revenir en haut Aller en bas
 
transparance d'un objet éloigné (3D)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» La téléphonie mobile objet d’une contestation grandissante
» Inhalation d’un objet
» prime pour région éloignée
» Objet à identifier sur la plage
» Vote pour l'objet le + inutile de vos armoires de cuisine !!!

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: