Manuel - Partie 5 : Scene3D et Objets 3D
Initialisation d'espaces 3D temps réel, intégration de lumières, caméras, maillages et textures.
SCENE3D et objets 3D
1 – Monde 3D (objets : SCENE3D)
1.1 – Traitement de la caméra dans un SCENE3D
1.1.1 – Position de la caméra 3D
1.1.2 – Rotation de la caméra 3D
1.1.3 – Position du point visé
1.2 – Traitement de la lumière 3D dans un SCENE3D
1.2.1 – Position de la lumière 3D
1.3 – Créer un objet 3D dans un SCENE3D
1.4 – Commandes sur un objet 3D (dans un SCENE3D)
1.4.1 – Supprimer
1.4.2 – Visualiser ou cacher
1.4.3 – Positionner
1.4.4 – Rotation
1.4.5 – Redimensionner
1.4.6 – Couleur
1.4.7 – Texture
1.4.8 – Charger une structure
1.4.9 – Changer le texte
1.4.10 – Changer l’épaisseur
1.4.11 – Chaîner
1.4.12 – Transparence
1.4.13 – Mouvement
1.4.14 – Pointer un objet 3D
1.4.15 – Nombre d’objets 3D
1.4.16 – Types de collision
1.4.17 – Tuiles
1.5 – Fonctions d’un objet 3D (dans un SCENED3D)
1.5.1 – Position
1.5.2 – Angles de rotation
1.5.3 – Coefficients d’échelle
1.5.4 – Collision
1.5.5 – Divers
1 – Monde 3D (objet :
SCENE3D)
1.1 – Traitement de la caméra 3D dans un SCENE3D
Aussitôt qu’un
SCENE3Dest créé, il possède une caméra 3D placée en (0,0,5) et visant l’origine (0,0,0).
La caméra 3D d’unSCENE3Dest « l’oeil » de l’utilisateur observant le monde 3D.
Il est possible de déplacer la caméra 3D et le point visé par cette caméra 3D.
1.1.1 – Position de la caméra 3D
CAM_X_POSITIONXPositionne la caméra 3D en X. CAM_Y_POSITIONYPositionne la caméra 3D en Y. CAM_Z_POSITIONZPositionne la caméra 3D en Z. CAM_POSITIONX, Y, ZPositionne la caméra 3D en X, Y, Z. Par défaut, la caméra 3D est en position (0,0,5)
1.1.2 – Rotation de la caméra 3D
CAM_PITCHATourne la caméra 3D autour de son axe X de l’angle A. CAM_ROLLATourne la caméra 3D autour de son axe Y de l’angle A. CAM_ROLLZTourne la caméra 3D autour de son axe Z de l’angle A. Par défaut, la caméra 3D est orientée suivant le vecteur (0,0,1)
1.1.3 – Position du point visé
POINT_X_POSITIONXPositionne en X le point visé par la caméra 3D. POINT_Y_POSITIONYPositionne en Y le point visé par la caméra 3D. POINT_Z_POSITIONZPositionne en Z le point visé par la caméra 3D. POINT_POSITIONX, Y, ZPositionne en X, Y, Z le point visé par la caméra 3D. POINT_OBJECTNLa caméra 3D pointe l’objet 3D numéro N. Par défaut, la caméra 3D vise le point en (0,0,0)
1.2 – Traitement de la lumière 3D dans un SCENE3D
Aussitôt qu’un
SCENE3Dest créé, il possède une lumière 3D placée en (0,0,5).
Il est possible de déplacer la lumière 3D.
1.2.1 – position de la lumière 3D
LIGHT_X_POSITIONXPositionne la lumière 3D en X. LIGHT_Y_POSITIONYPositionne la lumière 3D en Y. LIGHT_Z_POSITIONZPositionne la lumière 3D en Z. LIGHT_POSITIONX, Y, ZPositionne la lumière 3D en X, Y, Z. Par défaut, la lumière 3D est à la même position que la caméra 3D : (0,0,5)
1.3 – Créer un objet 3D dans un SCENE3D
À chaque objet 3D, un nombre N est associé.
L’objet 3D est créé en (0,0,0) et sa couleur est grise.
3D_ACTORNCrée un acteur (objet MD2). 3D_BOXN, Largeur, Hauteur, ProfondeurCrée une boîte. 3D_CONEN,Hauteur, RayonCrée un cône. 3D_CUBEN, CôtéCrée un cube. 3D_CYLINDERN, Hauteur, Rayon_Haut, Rayon_BasCrée un cylindre. 3D_DODECAHEDRONNCrée un dodécaèdre. 3D_LINENCrée une ligne 3D. 3D_MESHNCréez un objet maillé (objet 3DS). 3D_SPHEREN, RayonCrée une sphère. 3D_TEAPOTNCrée une théière. 3D_TEXTN, String$Crée un texte 3D. 3D_TORUSN, Rayon_Externe, Rayon_InterneCrée un tore. 3D_SKYBOXNCrée un skybox. 3D_PLANENCrée un plan. N = numéro d’objet 3D créé
1.4 – Commandes sur un objet 3D (dans un SCENE3D)
Pour toutes les commandes, N est le numéro de l’objet 3D.
3D_DELETENSupprime l’objet 3D numéro N. 3D_DELETE_ALLSupprime tous les objets 3D.
3D_SHOWNVisualise l’objet 3D numéro N. 3D_HIDENCache l’objet 3D numéro N.
3D_X_POSITIONN, XPositionne en X l’objet 3D numéro N. 3D_Y_POSITIONN, YPositionne en Y l’objet 3D numéro N. 3D_Z_POSITIONN, ZPositionne en Z l’objet 3D numéro N. 3D_POSITIONN, X, Y, ZPositionne en (X,Y,Z) l’objet 3D numéro N.
3D_X_ROTATEN, AXFait tourner l’objet 3D numéro N d’un angle de AX degrés autour de son propre axe des X. 3D_Y_ROTATEN, AYFait tourner l’objet 3D numéro N d’un angle de AY degrés autour de son propre axe des Y. 3D_Z_ROTATEN, AZFait tourner l’objet 3D numéro N d’un angle de AZ degrés autour de son propre axe des Z. 3D_ROTATEN, AX, AY, AZFait tourner l’objet 3D numéro N d’un angle de AX degrés autour de son propre axe des X, puis d’un angle de Y degrés autour de son propre axe des Y, puis d’un angle de AZ degrés autour de son propre axe des Z. Les angles AX, AY, AZ sont en degrés.
3D_X_SCALEN, CXRedimensionne l’objet 3D numéro N sur son propre axe des X d’un coefficient CX. 3D_Y_SCALEN, CYRedimensionne l’objet 3D numéro N sur son propre axe des Y d’un coefficient CY. 3D_Z_SCALEN, CZRedimensionne l’objet 3D numéro N sur son propre axe des Z d’un coefficient CZ. 3D_SCALEN, CX, CY, CZRedimensionne l’objet 3D numéro N sur son propre axe des X d’un coefficient CX, puis sur son propre axe des Y d’un coefficient CY, puis sur son propre axe des Z d’un coefficient CZ. Dilatation si Cn > 1, contraction si Cn < 1
3D_COLORN, R, G, BL’objet 3D numéro N prend la couleur définie par les couleurs de base R, G, B. 0 <= R <= 255 (rouge)
0 <= G <= 255 (vert)
0 <= B <= 255 (bleu)
3D_LOAD_TEXTUREN, FL’objet 3D numéro N prend la texture « BMP » du fichier F. 3D_IMAGE_TEXTUREN1, N2L’objet 3D numéro N1 prend la texture de l’objet système numéro N2. 3D_LOAD_TEXTURE_BOTTOMN, FLa face basse du 3D_SKYBOX numéro N prend la texture dans le fichier F. 3D_LOAD_TEXTURE_FRONTN, FLa face avant du 3D_SKYBOX numéro N prend la texture dans le fichier F. 3D_LOAD_TEXTURE_RIGHTN, FLa face droite du 3D_SKYBOX numéro N prend la texture dans le fichier F. 3D_LOAD_TEXTURE_BACKN, FLa face arrière du 3D_SKYBOX numéro N prend la texture dans le fichier F. 3D_LOAD_TEXTURE_LEFTN, FLa face gauche du 3D_SKYBOX numéro N prend la texture dans le fichier F. 3D_LOAD_TEXTURE_TOPN, FLa face haute du 3D_SKYBOX numéro N prend la texture dans le fichier F.
3D_LOAD_OBJECTN, FUne structure « MD2 » ou « 3DS » du fichier F est chargée dans l’objet 3D numéro N ( 3D_ACTORou3D_MESH).
Pour changer le texte visualisé dans l’objet 3D.
3D_TEXT_CHANGEN, A$Le 3D_TEXTnuméro N visualise maintenant A$.
Pour modifier l’épaisseur d’une ligne 3D.
3D_LINE_WIDTHN, WDéfinit l’épaisseur W en pixels du 3D_LINEnuméro N.
Pour lier les mouvements d’un objet 3D à un autre objet 3D.
3D_CHAINN, PChaîne l’objet 3D numéro N à l’objet 3D numéro P : les mouvements de l’objet numéro P sont liés à ceux de l’objet numéro N. 3D_CHAIN_BREAKN, PRompt le chaînage entre les objets 3D numéro N et numéro P.
Pour rendre un objet 3D plus ou moins transparent.
3D_TRANSPARENTN, TModifie la transparence de l’objet 3D numéro N.
T va de 0 à 255.
Si T=0, l’objet 3D est totalement opaque.
Si T=255, l’objet 3D est totalement transparent.
Pour bouger un objet 3D dans sa direction de pointage.
3D_MOVEN, DBouge l’objet 3D numéro N de la distance D dans sa direction de pointage.
Si D>0, l’objet 3D avance.
Si D<0, l’objet 3D recule.
Pour pointer un objet 3D.
3D_POINTN, PPointe l’objet 3D numéro N vers l’objet 3D numéro P.
NUMBER_3D_OBJECTSRetourne le nombre d’objet 3D.
3D_COLLISION_AS_SPHERENL’objet 3D numéro N se comporte comme sa sphère englobante. 3D_COLLISION_AS_CUBENL’objet 3D numéro N se comporte comme son cube englobant. 3D_COLLISION_AS_ELLIPSOIDNL’objet 3D numéro N se comporte comme son ellipsoïde englobant. 3D_COLLISION_AS_POINTNL’objet 3D numéro N entre en collision comme s’il était un point. 3D_COLLISION_AS_FACESNL’objet 3D numéro N utilise ses faces.
3D_U_TILEN, TModifie le nombre de tuiles sur U du 3D_PLANE numéro N. 3D_V_TILEN, TModifie le nombre de tuiles sur V du 3D_PLANE numéro N.
1.5 – Fonctions d’un objet 3D (dans un SCENE3D)
Pour toutes les fonctions, N est le numéro de l’objet 3D.
O3D_X_POSITION(N)Retourne la position en X de l’objet 3D numéro N. O3D_Y_POSITION(N)Retourne la position en Y de l’objet 3D numéro N. O3D_Z_POSITION(N)Retourne la position en Z de l’objet 3D numéro N.
O3D_X_ROTATE(N)Retourne (en degrés) l’angle de rotation de l’objet 3D numéro N autour de son propre axe des X. O3D_Y_ROTATE(N)Retourne (en degrés) l’angle de rotation de l’objet 3D numéro N autour de son propre axe des Y. O3D_Z_ROTATE(N)Retourne (en degrés) l’angle de rotation de l’objet 3D numéro N autour de son propre axe des Z. Les angles retournés par les fonctions sont exprimés en degrés.
1.5.3 – Coefficients d’échelle
O3D_X_SCALE(N)Retourne le coefficient d’échelle de l’objet 3D numéro N sur son propre axe des X. O3D_Y_SCALE(N)Retourne le coefficient d’échelle de l’objet 3D numéro N sur son propre axe des Y. O3D_Z_SCALE(N)Retourne le coefficient d’échelle de l’objet 3D numéro N sur son propre axe des Z. Si la valeur retournée est > 1, il y a eu dilatation
Si la valeur retournée est < 1, il y a eu contraction
Si la valeur retournée est = 1, il n’y a eu aucune modification
O3D_COLLISION(N1, N2)Retourne 1 si les objets 3D de numéro N1 et N2 sont en collision, 0 sinon.
O3D_OBJECT_EXISTS(N)Retourne 1 si l’objet 3D numéro N existe, 0 sinon. O3D_OBJECT_TYPE(N)Retourne le type de l’objet 3D numéro N.
Le type d’un objet 3D est codé comme suit :
1 = 3D_CUBE
2 = 3D_BOX
3 = 3D_SPHERE
4 = 3D_CONE
5 = 3D_TORUS
6 = 3D_CYLINDER
7 = 3D_DODECAHEDRON
8 = 3D_TEAPOT
9 = 3D_TEXT
10 = 3D_LINE
11 = 3D_MESH
12 = 3D_ACTOR
14 = 3D_SKYBOX
15 = 3D_TERRAIN
16 = 3D_PLANE
1.6 – BROUILLARD (DANS UN SCENE3D)
FOG_ONDémarre l’effet de brouillard dans l’objet cible 3D (SCENE3D). FOG_OFFArrête l’effet de brouillard dans l’objet cible 3D (SCENE3D). FOG_COLORR, G, BModifie la couleur du brouillard dans l’objet cible 3D (SCENE3D). FOG_DISTANCE_MINDModifie la distance minimale du brouillard dans l’objet cible 3D (SCENE3D). FOG_DISTANCE_MAXDModifie la distance maximale du brouillard dans l’objet cible 3D (SCENE3D).
Contenu créé par Jack. Mise à jour le 01 mars 2025