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

Généralités sur la programmation 3D
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

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

Message 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:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

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

Message par Backup »

.......
Dernière modification par Backup le mar. 19/août/2014 13:02, modifié 1 fois.
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Message 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...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 :)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message 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 :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

SPH a écrit :regarde mon jeu dans la rubrique JEU.
sympath ton jeu !! cool :)
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Message 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
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message 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)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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"))
Dernière modification par Backup le mar. 17/juin/2008 13:11, modifié 5 fois.
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

j'ai Reedité mon message précédant... :)
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Message 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...
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Message 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é.
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
Dernière modification par Backup le mer. 18/juin/2008 14:06, modifié 2 fois.
Répondre