AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Terrain en d3d Nako

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Nako
Débutant


Messages : 13

MessageSujet: Terrain en d3d Nako   Sam 18 Juin 2016 - 10:27

Bonsoir

Comme je suis parvenu à convertir un modèle 3d fait depuis 3ds max en fichier de format d3d il m'est désormais possible d'afficher un terrain complexe avec d3d_start() de game maker 8 . Mon problème c'est la collisions:


Si on considère  l'image au dessus comme un terrain vue d'en haut et les points rouges comme des vertex d'altitude différent, est ce que vous pouvez m'expliquer un algorithme assez simple pour scanner l 'altitude dans toutes la surface ?

A noter que j'ai conservé la valeur de Z de chaque vertex dans un tableau à 2 dimension z[i,j]
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8924
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Terrain en d3d Nako   Sam 18 Juin 2016 - 12:42

Si t'as une grille, la première étape est d'obtenir les coordonnées de la cellule sur laquelle ton objet est placé.

En général il suffit de faire:
cell_x = x div cell_width
cell_y = y div cell_height

Maintenant que tu as la cellule, tu récupères les 4 vertex qui la forment.
Puis tu calcules l'altitude avec des interpolations linéaires.

Code de tête, y a peut être des bêtises, mais dans l'idée c'est un truc comme ça:
z1 = lerp(vertex_top_left_z, vertex_top_right_z, (x mod cell_width) / cell_width)
z2 = lerp(vertex_bottom_left_z, vertex_bottom_right_z, (x mod cell_width) / cell_width)
z = lerp(z1, z2,  (y mod cell_height) / cell_height)

Ce code ne marche que pour les grilles/heightmaps.

_________________
                 
Revenir en haut Aller en bas
Nako
Débutant


Messages : 13

MessageSujet: Terrain d3d Nako   Sam 18 Juin 2016 - 17:35

Merci, maintenant je commence à avoir une idée de ce que tu m'as expliqué le problème c'est que GameMaker8 semble ne pas reconnaître les fonctions lerp(...) à moins que j'ai mal compris et que tu essayes juste de partager un nom commun d'une fonction  souvent utilisé en math

bref j'ai une idée de ce que je vais faire mais il y a un autre problème, enfaite ce que je veux créer c'est une fonction qui calcule l'altitude d'un point dans une cellule formé par 4 vertex en fonction de ça position dans la même cellule et répéter la même action à l'aide d'un boucle for (...)

Cependant le nombre d'arguments risque de poser problème. pour rendre la fonction plus simple, il faut réduire le nombre d'argument utilisé, j'aimerai savoir s'il existe un type de variable qui peut contenir 2 ou 3 valeur dans GML ( du genre Vector3(x,y,z) ou Vector2(x,y) )

Merci d'avance et ne vous en faite pas, si je parviens à atteindre mon objectif c'est à dire la collisions d'un terrain .d3d je ferai un rapport détaillé de mes recherches  pour aider les autre à mon tour  ...
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8924
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Terrain en d3d Nako   Sam 18 Juin 2016 - 18:19

Normalement y a lerp dans GM, mais au pire c'est une fonction toute simple a écrire (interpolation linéaire):
lerp(a, b, t)
return argument0 + (argument1 - argument0) * argument2

Sinon non dans GM les structures custom n'existent pas. Donc pour le Vector3 c'est mort :/

Pour les collisions par contre je vois pas pourquoi tu veux passer par une boucle, t'as juste a determiner la hauteur de la position ou tu te trouves, donc juste a tester une seule cellule.
(a moins que tu veuilles des collisions entre une AABB et une heightmap)

_________________
                 
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Terrain en d3d Nako   

Revenir en haut Aller en bas
 
Terrain en d3d Nako
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Quel terrain pour quel jeu
» Gâteau terrain de foot
» Comment trouver un terrain ou une maison/grange/ferme pas chère, à la campagne ?
» Diversification en terrain allergique
» Le Port du Voile gagne du terrain….

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: