Question

J'utilise le chargeur 3DS ici:

http://www.flipcode.com/archives/Another_3DS_LoaderViewer_Class.shtml

Il fait un bon travail de chargement et le rendu du modèle, mais il n'a pas de sens de heirarchy. En conséquence, tous les objets du modèle rendent à l'origine.

Dans le code sous: void Model_3DS::MainChunkProcessor(long length, long findex) est la ligne:

// I left this in case anyone gets very ambitious
case KEYF3DS :
    //KeyFrameChunkProcessor(h.len, ftell(bin3ds));
    break;

Personne n'a mis en œuvre ce partout, et je ne vois pas d'autres chargeurs 3DS qui mettent en œuvre aussi. Les gens semblent n'afficher et jusqu'à ce qu'ils atteignent ce point ayant été satisfait de quoi que ce soit rendu à l'écran du tout.

Qu'est-ce qui KeyFrameChunkProcessor ressemblerait-il?

Était-ce utile?

La solution

Google m'a conduit :

Keyframer chunk
---------------

  id          Description
  ----        -----------
  B00A        unknown
  7001        See first description of this chunk
  B008        Frames
  B009        unknown
  B002        Start object description

 * B008 - Frame information

 simple structure describing frame info

 start end size type            name
   0    3    4  unsigned long   start frame
   4    7    4  unsigned long   end frame

 *B002 - Start of Object info

 Subhunks

  id      Description
  ----    -----------
  B010    Name & Hierarchy
  B011*   Name Dummy Object
  B013    unknown
  B014*   unknown
  B015    unknown
  B020    Objects pivot point ?
  B021    unknown
  B022    unknown
  B030    unknown

 * B010 - Name & Hierarchy descriptor

 start end  size type          name
 0      ?    ?   ASCIIZ        Object name
 ?      ?    ?   unsigned int  unknown
 ?      ?    ?   unsigned int  unknown
 ?      ?    ?   unsigned int  Hierarchy of Object

 The object hierarchy is a bit complex but works like this.
 Each Object in the scene is given a number to identify its
 order in the tree. Also each object is orddered in the 3ds
 file as it would appear in the tree.
 The root object is given the number -1 ( FFFF ).
 As the file is read a counter of the object number is kept.
 Is the counter increments the object are children of the
 previous objects.But when the pattern is broken by a number
 what will be less than the current counter the hierarchy returns
 to that level.

 for example.

    object   hierarchy
    name

        A      -1
        B       0                 This example is taken
        C       1                 from 50pman.3ds
        D       2
        E       1                 I would really reccomend
        F       4                 having a look at one of the
        G       5                 examples with the hierarchy
        H       1                 numbers to help work it out.
        I       7
        J       8
        K       0
        L      10
        M      11
        N       0
        O      13
        P      14


                           A
         +-----------------+----------------+
         B                 K                N
    +----+----+            +                +
    C    E    H            L                O
    +    +    +            +                +
    D    F    I            M                P
         +    +
         G    J

 Still not done with this chunk yet !
 If the object name is $$$DUMMY then it is a dummy object
 and therefore you should expect a few extra chunks.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top