Dreamotion3D

Généralités sur la programmation 3D
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Pas de soucis, je vais voir pour te fournir un minimum d'expli, vue qu'il n'y a pas de doc :?
Je pense pouvoir pondre un petit truc d'ici a ce soir...
Force et sagesse...
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

ok merci j'attend avec impatience :wink:
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Voici un petit résumé de ce que peut faire le modeste terrainEngine de DM3D:

http://www.dreamotion3d.com/Docs/terrain.html

Pour illustrer tous cela, voici le lien vers le petit code que j'avais fait pour Cpl.Bator

http://www.dreamotion3d.com/PureBasic/TutoTerrain1.zip

Pour la gestion avec les brush, ce n'est surement pas encore très clair, mais j'avance la doc, et
avant le WE prochain je mettrais en ligne la partie déjà fini, avec entre autre justement les Brush
et Textures...

les commandes:
clickGauche + souris = commande camera
ClickDroit + souris = picking pour soit dessiner 'road', soit changer la hauteur du terrain
F1/F2: commute le mode picking ('road' ou Hauteur)
F5: exemple d'accès directe au vertex d'un Quad et de ses valeurs

:wink:
Force et sagesse...
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

j'ai reussi exactement a ce que voulait faire merci D3D est vraiment genial
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

d'un point de vue Ergonomique :
Au lieu d'utiliser 2 instructions comme celles ci
DM_TerrainHeight(posx, posy), permet de
connaître la hauteur du terrain à une position donnée.
DM_HeightTerrain(posx, posy, Hauteur),permet de spécifier que la hauteur du terrain a la position ‘posx / posy’ sera de valeur ‘Hauteur’, et donc de changer la valeur initiale.
qui peut porter a confusion (car se rappeler des syntaxes n'est pas toujours facile :D )


tu devrai utiliser ce type d'instruction

DMR_TerrainHeight(posx, posy) permet de connaître la hauteur du terrain à une position donnée

DMI_TerrainHeight(posx, posy) permet de spécifier que la hauteur du terrain a la position ‘posx / posy’ sera de valeur ‘Hauteur’, et donc de changer la valeur initiale.

dans ce cas le nom reste le même puisqu'il sagit de la hauteur de terrain

le (R) apres DM indiquerai que l'on attends un (r)etour de valeur de la fonction

alors que le (I) indiquerai que ce fut une (i)nstruction, on commande une action

de la sorte tu diminuerai le nombre de nom de fonctions a retenir pour notre petite memoire ,
et d'un coup d'oeil nous saurions s'il sagit de l'exécution d'une
action que l'on demande au moteur ,
ou d'un paramètre que que l'on attends !! :D

qu'en pense tu de cette idée ??

en plus dans l'aide ce serai plus simple de faire pour des noms de fonction
pour chaque page la partie mettons supérieur indiquerai le coté (R)
et la partie inférieur le coté (I) d'une même fonction

suis-je clair ? 8O :lol:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

perso je préfère faire l'analogie avec les commandes des gadgets
en utilisant Set et Get

DM_GetTerrainHeight(posx, posy), permet de
connaître la hauteur du terrain à une position donnée.

DM_SetTerrainHeight(posx, posy, Hauteur),permet de spécifier que la hauteur du terrain a la position ‘posx / posy’ sera de valeur ‘Hauteur’, et donc de changer la valeur initiale.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

L'idée n'est pas mauvaise en effet. Mais cette syntaxe émane du milieu
Blitz3D, qui sur beaucoup de fonctions employe la syntaxe suivante:

Entity_x() -> requette
x_Entity() -> action

exemple:

BrushEntity() -> affecte une nouvelle brush a une entity
EntityBrush() -> retourne la brush d'une entity.

C'est une habitude je crois. Cette syntaxe a de plus été plebiscité par les
BMax users ... comunauté originaire de DM3D. Mais le débat est lancé...
Force et sagesse...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

comtois a écrit :perso je préfère faire l'analogie avec les commandes des gadgets
en utilisant Set et Get

DM_GetTerrainHeight(posx, posy), permet de
connaître la hauteur du terrain à une position donnée.

DM_SetTerrainHeight(posx, posy, Hauteur),permet de spécifier que la hauteur du terrain a la position ‘posx / posy’ sera de valeur ‘Hauteur’, et donc de changer la valeur initiale.
oui pourquoi pas :D
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Perso, provenant des deux cmmunautés, je penche sur le Set/Get que sur la méthode Blitz. C'est plus compréhensible à mon avis... Pourquoi ne pas faire un sondage sur tous les sites ?
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

je pense que le get/set est plus aproprié etant une norme du principe de moindre surprise
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Je cherche l'équivalent de la commande CameraLookAt(), je n'ai pas trouvé ?
Quelqu'un a vu quelques chose à ce sujet ? Je suis sûr que ça existe, mais où .
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Si tu veux modifier les angle de vue d'une camera, c'est une entity comme les autres,
donc tu peux ecrire:

Code : Tout sélectionner

  camera   = DM_CreateCamera()
  DM_TurnEntity(camera, 0,0,10)
  ...

tu peux aussi utiliser DM_RotateEntity()
par exemple...
Force et sagesse...
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

oui mais ça m'oblige à calculer moi même l'angle, alors que la commande CameraLookAt() regarde le point qu'on lui indique directement.
C'est pratique pour fixer une entité avec la caméra ( pour faire du suivi par exemple).

Par exemple pour écrire ce codeavec Dreamotion3D

Il n'y a pas besoin de média, tu peux le tester pour comprendre ce que je veux dire.

Et effectivement, ça serait bien de le généraliser aux entités aussi :)

[EDIT]
Toi qui prends Blitz en référence, ça pourrait être une commande de ce genre

Et avec PureBasic c'est cette commande
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Très bon code. Je vois mieux ce que tu voulais dire.
Dans beaucoups de moteurs c'est l'instruction 'CameraPoursuit(Entity)'.
Je vais voir pour coder cela, et je te tiens au courant...
Force et sagesse...
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

tmyke a écrit :Dans beaucoups de moteurs c'est l'instruction 'CameraPoursuit(Entity)'.
Je vais voir pour coder cela, et je te tiens au courant...
Je demandais juste un PointEntity() mais si tu peux faire un CameraPoursuit() en plus, je ne vais pas faire la fine bouche :D
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Répondre