RotateEntity

Généralités sur la programmation 3D
pat
Messages : 406
Inscription : mar. 24/nov./2009 15:13

RotateEntity

Message par pat »

Bonjour à tous,

Je m'attaque pour la première fois à la 3D pour un jeu de carte (les graphiques sont simples, pour commencer c'est idéal).
J'ai comme modeleur Sketchup 8 de Google qui me va parfaitement bien et avec qui j'ai l'exporter pour Ogre (format .mesh). Ce modeleur est en français et est vraiment, pour moi, convivial (Blender est en anglais et je n'ai pas réussi à exporter en .mesh malgré les recommandations de Blendman (vu dans ses posts précédents)).
Vous ne m'en voudrez pas si je ne suis pas très doué parce que je débute véritablement dans la 3D.
J'ai réussi à faire ma première entité (terrain de fond avec CreatePlan(...), donc le mesh pour cet objet)).
La deuxième entité ce sont les cartes et j'ai crée le mesh grâce au modeleur.
Le mesh a été récupéré sans problème et le fichier .materiel est la seule possibilité pour moi de récupérer ce matériel pour ce deuxième objet. Pour le moment je ne sais pas comment faire une image 2D pour la 3D (formaté pour la 3D comme c'est le cas de l'exemple du robot de PB dans les exemples). Donc seul le fichier .material est pour moi utilisable.
Le problème pour moi c'est bien évidemment les caméras car je n'ai pas pu (au début en tout cas) récupérer à l'écran les images des deux entités. En fin de compte, avec un RotateEntity(id,90,0,0) j'ai réussi à faire ce que je voulais et voir mes objets à l'écran.
Donc en tatonnant un peu avec les paramètres des caméras j'ai pu obtenir ce que je voulais.
Je souhaite maintenant faire une rotation des cartes de 180 degrés (pour simuler le retournement d'une carte) avec RotateEntity(id,180,0,0).
Si, au premier abord, cela fonctionne, si je réessaye RotateEntity(id,180,0,0) (avec #PB_relative ou #PB_absolu) la rotation se fait dans l'axe des Y au lieu des X.
Me suis-je trompé quelque part ?
Comment faire donc pour qu'une rotation qui a été faite avec l'axe des X, se répète plus tard, avec une rotation en X (et non en Y comme j'ai pu le constater) ?

Merci à ceux qui pourront me renseigner.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: RotateEntity

Message par djes »

Un petit code vaut mieux qu'un (très) long discours...
pat
Messages : 406
Inscription : mar. 24/nov./2009 15:13

Re: RotateEntity

Message par pat »

Merci à toi djes pour la réponse.
Je ne possède pas Internet (je suis dans un lieu public) et Internet est bridé dans ce lieu. Je suis obligé de frapper le texte, donc j'éviterais les noms de chemin de dossier et la partie d'ouverture de fenêtre et je ne donnerais que la partie 3D.

Code : Tout sélectionner

Add3DArchive("---Textures-",#PB_3DArchive_FileSystem)
Add3DArchive("---Script-",#PB_3DArchive_FileSystem)
Add3DArchive("---Mesh-",#PB_3DArchive_FileSystem)
Parse3DScripts()
CreatePlane(0,85,125,5,5,1,1)
LoadMesh(1,"... .mesh")
CreateMaterial(0,LoadTexture(0,"------ .jpg"))
CreateEntity(0,MeshID(0),MaterialID(0))
CreateEntity(1,MeshID(1),GetScriptMaterial(1,"... .material"))
RotateEntity(0,90,0,0)
For f=1 to 7
   If f>1
    CopyEntity(1,f)
   Endif
   ScaleEntity(f,12,12,12)
   RotateEntity(f,270,0,0)
   EntityLocate(f,-20,(45-((f-1)*15)),10)
Next f
RotateEntity(1,180,0,0,#PB_Relative)
CreateCamera(0,0,0,100,100)
CameraLocate(0,0,0,150)
RenderWorld()
La taille du fichier jpg est de 256 X 256 pixels.
pat
Messages : 406
Inscription : mar. 24/nov./2009 15:13

Re: RotateEntity

Message par pat »

Je viens de voir le post de Patrick88 avec les explications sur les axes.
Eh bien j'avais pas bien compris et c'est normal qu'avec une rotation dans l'axe des x la rotation des objets se fassent en Y.
Je n'ai rien contre Dobro, mais j'ai mieux compris les explications de Patrick88 que l'explication de Dobro. Chacun étant de nature différente et de sensibilité différente.
Donc désolé pour le dérangement.
Mesa
Messages : 1097
Inscription : mer. 14/sept./2011 16:59

Re: RotateEntity

Message par Mesa »

Dans la dernière version de PB, la béta6, un dessin dans l'aide à la rubrique engine3D permet de retrouver facilement (règle des 3 doigts de la main droite) la bonne orientation des axes ainsi que le bon sens de rotation.

Mesa.
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: RotateEntity

Message par comtois »

Salut Mesa, je passais justement pour lui dire que tu avais ajouté des belles images dans la doc :)

Pour un aperçu de l'ancienne version (ça a changé depuis, mais j'attends la sortie de la version finale pour mettre à jour le site ):

http://purebasic.developpez.com/documen ... index.html
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.
pat
Messages : 406
Inscription : mar. 24/nov./2009 15:13

Re: RotateEntity

Message par pat »

Merci Comtois et Mesa.
J'ai téléchargé la version 5.10 et les explications étaient salutaires pour moi (l'image et l'explication sont très bien pour moi également).
Répondre