AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -50%
-50% Baskets Nike Air Huarache Runner
Voir le deal
69.99 €
Le Deal du moment :
Cdiscount : -30€ dès 300€ ...
Voir le deal

 

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

Aller en bas 
2 participants
AuteurMessage
Crosskid
Petit bavard
Crosskid


Messages : 53

transparance d'un objet éloigné (3D) Empty
MessageSujet: transparance d'un objet éloigné (3D)   transparance d'un objet éloigné (3D) EmptySam 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 :

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 ****
Craki


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

transparance d'un objet éloigné (3D) Empty
MessageSujet: Re: transparance d'un objet éloigné (3D)   transparance d'un objet éloigné (3D) EmptySam 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).


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

_________________
transparance d'un objet éloigné (3D) 357g46o


Dernière édition par Craki le Sam 15 Nov 2014 - 20:42, édité 1 fois
Revenir en haut Aller en bas
Crosskid
Petit bavard
Crosskid


Messages : 53

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


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

transparance d'un objet éloigné (3D) Empty
MessageSujet: Re: transparance d'un objet éloigné (3D)   transparance d'un objet éloigné (3D) EmptySam 15 Nov 2014 - 20:43

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

_________________
transparance d'un objet éloigné (3D) 357g46o
Revenir en haut Aller en bas
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
transparance d'un objet éloigné (3D)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Cliquer sur un objet sans que l'objet qui est dessous soit affecté.
» Voir un objet, derrière un autre objet
» Appeler, dans un objet, une var d'un autre objet [résolu]
» [Résolu] Objet qui suis le view d'un autre objet
» Positionner un objet par rapport à un autre objet en rotation.

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: