Cours 3

Charger et afficher un object en 3D

Les textures

Un object, ou autrement appelé un Mesh 3D est un fichier qui contient une suite de coordonnées dans l'espace (X,Y,Z), une liste de textures en format image (PNG,BMP,TGA,JPEG), des coordonnés UV de texture pour définir comment chaque texture s'appliquer sur chaque facette de l'object, et une liste de propriétés de surface ( Brillance, Couleur, Reflet, Bump mapping, etc ).
La première mission de notre code 3D est donc de tout simplement charger les différents formats de fichiers images ou textures en BMP, TGA, PNG compressé ou non compressé.

Le fichier Mesh

Notre object 3D , ou bien Mesh, est un fichier qui est exporté de plusieurs éditeurs 3D : Blender, ou bien encore 3D Studio Max.
Nous exporterons le mesh en format OBJ (.obj) et (.ASE) car ces fichiers sont au format ASCII ce qui facilite grandement la lecture dans un bloc note en vue de mettre en place le chargement des données et ensuite l'affichage 3D.
Par la suite nous pourrons relire les fichiers binaires (.3ds) ou (.max) ou .blender. Cependant il faut faire attention car ces formats contiennents par juste un mesh mais une liste de meshs, de scenes, les caméras, les lumières et tout l'environnement 3D possible depuis ces éditeurs 3D évolués.

Notre code 3D

Nous allons charger et afficher une arbalette médiévale, les textures sont fourni avec le ZIP de l'exemple ci-dessous, à part du fichier mesh ASCII qui contient que les coordonnées et noms de textures ainsi que les propiétés des matières (materials).


	// BRUSH
	MeshManager * cube = new MeshManager(Renderer);
	bool res = cube->loadMeshFromFile("gun1.ase", true);
	vec3_t p = {0, -3, 0};
	vec3_t s = {0.2f, 0.2f, 0.2f};
	cube->SetPos(p);
	cube->SetSize(s);
	
	// SCENE
	scene = new Scene(Renderer);
	scene->addCamera(camera);
	scene->addBrush(cube); // Ajoute notre Objet à la scene du Jeu
	scene->addLight(light1);	
									

Nous allons charger 3 fichiers (.ase) ainsi qu'une simple sphere au format (.obj) sans texture mais avec une couleur rouge.

moteur de jeu 3D - Scene avec des objects 3D


Télécharger le projet Jeu3D_afficher_object.zip

Consulter le forum pour poser des questions

Retour au sommaire