Page 1 sur 2

Le début du tout début de la 3D

Publié : mar. 17/juin/2008 12:00
par SPH
Salut, j'ai des questions hyper basiques concernant la 3D.

Avant meme de commencer a programmer un quelconque truc 3D, je me demandais si "l'univers" que l'on s'apprete a créer est de la meme taille pour tout le monde ? Si vous préférez, quand on ouvre un OpenScreen; on précise a PB des parametres comme : (1024,768,32,""). Est-ce aussi le cas en 3D ?
Ensuite, quand la creation d'objets fait peur, un programmeur peut il se contenter uniquement de carré sur lequel il y a une texture ? J'illustre aussi ma question : imaginons que qqun veuille créer un tetris 3D. Si la creation des pieces en 3D de tetris lui fait peur, il pourrait imaginer une simple surface plane 3D qui bougerait legerement tout en faisant un tetris 2D sur cette feuille 3D. Vous voyez ce que je veux dire ?

Donc, encore plus simplement, qui pourrait donner le code minimal d'un "univers" vide (noir donc) en DM3D ?
Et enfin, comment afficher un carré mappé d'une quelconque texture ?

ps : il me faut ces codes pour commencer a "dessiner" un truc 3D pour que vous puissiez voir où je veux en venir avec un monde uniquemet constitué de carré mappé.

Merci :wink:

Re: Le début du tout début de la 3D

Publié : mar. 17/juin/2008 12:34
par Backup
.......

Publié : mar. 17/juin/2008 12:46
par SPH
Merci. Je vais bosser la dessus (j'en avais oublié les exemple de DM3D !!). Si tu ne captes pas ce que je voulais dire pour un univers remplit uniquement de carrés mappés, regarde mon jeu dans la rubrique JEU. Et demande toi comment aborder ce jeu mais en 3D. Pour moi, le plus facile semblerait de faire un carré par piece (mes pieces dans le jeu) alors que la bonne methode (si il en existe une) serait peut etre de grouper toutes les pieces dans un seul carré mappé ou bien encore de faire chaque piece en 3D. Et voila donc, c'était l'objet de ma question : comment aborder le truc. Je me demandais si chaque technique n'était ni plus ni moins mauvaise qu'une autre...

Publié : mar. 17/juin/2008 12:49
par Backup
tant qu'a faire de la 3D , autant mettre des pieces 3D

comme ça tu pourra faire evoluer ton jeux avec des effets , style prise d'altitude de tes pieces :)

Publié : mar. 17/juin/2008 12:54
par Ar-S
Un objet carré 3D mappé aura un aspect de ce que tu as mappé dessus, mais n'en demeurera pas moins un carré, enfin je suppose !

Il est plus simple de créer des objets de la bonne forme et de les importer comme l'a dit Dobro.

Version "Plat"
Image


Image

Version "extrudée"
Image

Comme tu peux le constater, l'objet plat ou 3D dépend des coord X Y Z de ton espace 3D, donc qu'il soit plat ou pas ça ne change rien coté programmation, enfin je suppose.
Donc encore (que de donc) vaut mieux faire des objets 3D que plat, c'est plus chouette :)

Publié : mar. 17/juin/2008 12:56
par Backup
SPH a écrit :regarde mon jeu dans la rubrique JEU.
sympath ton jeu !! cool :)

Publié : mar. 17/juin/2008 12:57
par SPH
Oui, et + evolutif comme le dit dobro. Moi qui voulais me contenter de carré avec un faux bord 3D :wink:
Dobro a écrit :
SPH a écrit :regarde mon jeu dans la rubrique JEU.
sympath ton jeu !! cool :)
Oui mais comme ce sont des sprites non 3D, leur faire prendre une "altitude" m'a stoppé net

Publié : mar. 17/juin/2008 12:59
par Ar-S
Si tu gères le code, je veux bien te pondre les objets au format 3DS
(enfin si tu as besoin)

en fait j'ai toujours voulu faire un tetris qui changerai un peu avec moult bonus et option, effets visuel et tout et tout :D

J'ai déjà une idée d'ajout qui pourrait être très sympa et qui n'existe pas à ma connaissance (pourtant y'en a un paquet de tetris)

Publié : mar. 17/juin/2008 13:03
par Backup
tu pourrai meme l'appeler "Swap" ton jeux, parcequ'il s'agit bien de "Swaper" les pieces entre elles pour faire 3 signes identique :)


tant qu'a faire,
tu creer des Cubes carrement, vu le nombre, ça prendra pas trop de place en Ram , et ce sera moins compliquer a Texturer et a gerer
puisqu'un cube sera directement un objet 3D identifiable

c'est la technique que j'avais utilisé pour mon Bureau 3D :)

mais c'est aussi tres facile d'importer un objet 3ds

comme ça tu leur donne la forme d'un Pavé (un carré avec une petite epaisseur ):D

voici comment charger un objet 3ds
et la texture qui va le texturer :)

bureau(1)\id=DM_LoadMesh (chemin_objet$+"bureau.3ds")
DM_EntityTexture(bureau(1)\id, DM_LoadTexture(chemin_textures$+"bureau.jpg"))

Publié : mar. 17/juin/2008 13:07
par SPH
Dobro a écrit :tu pourrai meme l'appeler "Swap" ton jeux, parcequ'il s'agit bien de "Swaper" les pieces entre elles pour faire 3 signes identique :)
http://www.lemonamiga.com/?mainurl=http ... Fid%3D3101
tant qu'a faire,
tu creer des Cubes carrement, vu le nombre, ça prendra pas trop de place en Ram , et ce sera moin compliquer a Texturer et a gerer
puisqu'un cube sera directement un objet 3D identifiable

c'est la technique que j'avais utilisé pour mon Bureau 3D :)
Ho bin ouai, ca c'est une super idée.

Publié : mar. 17/juin/2008 13:10
par Backup
j'ai Reedité mon message précédant... :)

Publié : mar. 17/juin/2008 15:35
par beauregard
SPH a écrit :Oui mais comme ce sont des sprites non 3D, leur faire prendre une "altitude" m'a stoppé net
je me suis penché sur ton oeuvre, et je code un truc à base de sprite3D, affaire à suivre...

Publié : mar. 17/juin/2008 16:13
par SPH
beauregard a écrit :
SPH a écrit :Oui mais comme ce sont des sprites non 3D, leur faire prendre une "altitude" m'a stoppé net
je me suis penché sur ton oeuvre, et je code un truc à base de sprite3D, affaire à suivre...
D'ailleur, si je l'ai laissé, la ligne 26 aborde les sprites 3D mais je l'ai mis en commentaire et c'est devenu trop compliqué.

Publié : mer. 18/juin/2008 12:26
par SPH
Bon, c'est super, j'ai reussi a mapper le carré grace a une texture "tex64.bmp" qu'il faut enregistrer au meme endroit que la source du code (je parle du code de dobro, le 2eme; avec le carré donc)
Par contre, pour regler la camera, waouwww, que c'est dur.
la, la camera est juste au dessus du carré (ligne 57) :
DM_MoveEntity(*camera, 0,30,0)
Il faut donc abaisser avec le pointeur la camera pour voir le carré.

Je n'ai pas trouver le bon reglage de camera pour que le carré soit face a nous ! Quelles sont les bonnes coordonnées ??

Autre chose qui m'intrigue : les couleurs.
oops non, je viens de trouver : pour les couleurs d'origine, il faut eliminer le DM_AmbientLight (ligne 46).

Holala, que c'est super !!!!!!! :P :P :P

Publié : mer. 18/juin/2008 13:55
par Backup
SPH a écrit : Je n'ai pas trouver le bon reglage de camera pour que le carré soit face a nous ! Quelles sont les bonnes coordonnées ??


ce reglage ne fait que baisser la tete (camera) de 90 pour regarder ses pieds , et position la camera au dessus du carre , avec une altitude de 150 :)

Code : Tout sélectionner


 ; ---------------------------------------
  ;          create camera
  ; ---------------------------------------
*camera   = DM_CreateCamera()
DM_MoveEntity(*camera, 0,150,0)  ;<--- Y= altitude
DM_CameraClsColor(*camera, 125, 125, 125)
DM_TurnEntity(*camera, 90,0,0) ; on tourne la camera de 90 degres sur laxe des X

ps : il est a noter qu'un pointeur est utilisé ici mais que c'est pas obligatoire !!

on aurai pu faire aussi
camera = DM_CreateCamera()
DM_MoveEntity(camera, 0,150,0)
DM_TurnEntity(camera, 90,0,0)
une structure peut aussi faire l'affaire :)
camera\id = DM_CreateCamera()
DM_MoveEntity(camera\id, 0,150,0)
DM_TurnEntity(camera\id, 90,0,0)
après il faut comprendre que toutes les fonctions de Dream se réfèrent a cette identité !! :D

donc une fois l'objet crée , on en fait ce qu'on veux.. :)
placement rotation , saisie (picking) <-- mais la il faut avoir l'ancienne version de Dream , parce que la derniere, je suis pas sur que tout y soit .. :?

a voir avec Cpl Bator ou Tmyke