Lecture des modeles 3d de farcry

Soyez le premier à donner votre avis sur cette source.

Vue 10 663 fois - Téléchargée 1 038 fois

Description

Ce code permet de lire un fichier 3d de farcry(*.cgf) contenue dans le fichier zip FarCry\FCData\Objects.pak (ca peut servir aux acros de cocotiers), et de de l'afficher.
-Pour lire ces fichiers il faut renommer le .pak en .zip et decompresser Objects.zip dans le repertoire de l'exe de ce programme, il y a déja un petit bout de décompresser pour l'exemple.
-Certains fichiers *.cgf sont liees avec les textures contenue dans FarCry\FCData\Textures.pak qu'il faut donc le décompresser, si besoin.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Ombitious_Developper
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
30 -
Salut:

Peux tu préciser la structure des fichiers des modèles 3D de farcry.

Pour :

1. Comprendre aisément ton code.
2. Apprendre comment raisonnent les dévéloppeurs de UBISOFT.
0aza12a
Messages postés
2
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
2 novembre 2006
-
La structure du fichier que j'ai n'est pas complete, puisque c'est en comparant des fichiers que j'ai pus lire les modeles 3D il y a donc des trucs imcomplets (par exemple: liens vers les shaders de farcry), les passage non compris ont été passés par un repérage de code(si dessous en hexadecimal)

Dans certain fichier il y a plusieur models, pour chaque models:
-materiaux commence par {0xCCCC000C,0x00000746}
-----9 texture séparer de 59 DWORD entre chaque nom
----------texture de base
----------texture de bumpmapping
----------...
-triangles du model commence par {0x00000000,0xCCCC0000,0x00000744}
-----nombre de vertices {DWORD}
-----nombre de coordonné de texture {DWORD}
-----nombre de face {DWORD}
-----vertex {nvertices*{D3DXVECTOR3 pos,D3DXVECTOR3 normal}}
-----index {nfaces*{DWORD indices[3],DWORD numTexture,DWORD inconnue}}
-----texture coord{nUVW*{float u,float v}}
-----index texture coord{nUVW*{DWORD numTcoord[3]}}
Arnaud16022
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2 -
rien de bien transcendant concernant les triangles donc....
Pour les textures : pourquoi 9 ? et comment un poly dit " moi je veux la texture n° 3 "? comment tu sais que la 2ème c'est forcément celle de bumpmapping ? quelles sont tes sources, tu as trouvé tout ça tout seul ?

un truc qui serait mieux encore qu'un viewer : un convertisseur vers un format connu genre Milkshape ....
Mais bon boulot :)
0aza12a
Messages postés
2
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
2 novembre 2006
-
Je sais pas si c'est vraiment 9 textures mais il y a 9 emplacement entre chaque materiaux.

Le numero du materiaux utiliser par un triangle est 'numTexture' dans 'index'.

Le nom de la deuxieme texture fini quasiment tout le temps par ..._ddn.dds qui sont les texture de bump.

J'ai pas vraiment trouver de document sur la structure du fichier, j'ai seulement trouver un doc qui me donnait vaguement l'emplacement du vertex, et du nombre de face, vertices. Pour les coord de texture,index de traingle,index de texture, les materiaux,etc.., il y avait rien. Mais ca permet de savoir par ou commencer. Pour les trucs manquants j'ai regarder la forme de l'hexa, les répétitions et comparé des fichiers, et fait des tas de programme qui marchait pas.

Pour le reste, je connais pas la recette du format Milkshape.
Arnaud16022
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2 -
ben bien joué ... *sait pas quoi dire d'autre*
Pour le format Milkshape ce n'est qu'un exemple, je voulais juste dire que ça serait intéressant de pouvoir l'exporter vers un format qui est géré par d'autres progs , histoire de pouvoir le réutiliser dans d'autres projets sans devoir intégrer le loader farcry.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.