DO/M3D

From Dark Omen Wiki

< DO
Revision as of 15:40, 15 February 2010 by Olly (Talk | contribs)
Jump to: navigation, search

Note: this is old, partly incorrect and very incomplete information. This page will be rewritten sometime.

The M3D 3D Object File Layout

The M3D format used by Dark Omen is a raw-data binary format to save a model consisting of a non-hierarchal array of meshes. It is intended for forward-parsing and do not contain block meta-data.

Render flags

M3D stored basic instructions on how the model is intended to be rendered in its filename.

//=====================================================================
 
// Render flags
 
// ------------
 
//
 
// Render flags for a model are provided, believe it or not, in
 
// the model<nowiki>’</nowiki>s filename. If the leading character is an underline
 
// then the following is a hash for a binary attribute map where
 
//
 
//  00000 ( 0) = no flags
 
//  00001 ( 1) = translucency (colour blending?)
 
//  00010 ( 2) = animate texture UV coordinates
 
//  00100 ( 4) = transparency (alpha blending?)
 
//  10000 (16) = colour key transparency
 
//
 
// The hash depends on character
 
//
 
//  <nowiki>’</nowiki>0<nowiki>’</nowiki>..<nowiki>’</nowiki>9<nowiki>’</nowiki>: flag <nowiki>|</nowiki>= char - 48 (==<nowiki>></nowiki> 0 .. 9)
 
//  <nowiki>’</nowiki>A<nowiki>’</nowiki>..<nowiki>’</nowiki>Z<nowiki>’</nowiki>: flag <nowiki>|</nowiki>= char - 55 (==<nowiki>></nowiki> 10 .. 35)
 
//  <nowiki>’</nowiki>a<nowiki>’</nowiki>..<nowiki>’</nowiki>z<nowiki>’</nowiki>: flag <nowiki>|</nowiki>= char - 87 (==<nowiki>></nowiki> 10 .. 35)
 
//
 
// The most common filename prefixes (actually, the only ones
 
// present in Dark Omen) are:
 
//
 
//   "_4": 00000100 (transparency)
 
//   "_6": 00000110 (transparecy and animated texture coordinates)
 
//   "_7": 00000111 (translucency, animated texture coordinates, and transparency)
 
//   "_K": 00010100 (transparency and colour keying)
 
//
 
//===============================================================

General layout

0 24   File header
24 96 * n   Texture description
      Sub-object description

File header:

0 4 Long File ID
4 4 Long Magic
8 4 Long Version
12 4 Long CRC
16 4 Long NOT CRC
20 2 Short # textures
22 2 Short # sub-objects

Texture description entry

0 64 Char[64] Filepath (ignored)
64 32 Char[32] Texture filename

3D Sub-object Description

 
	char		name[32];	// object name
	short		parent;		// parent index
	M3DPOINT	pivot;		// origin for heirarchy
	short		vertices;	// number of verts.
	short		faces;		// number of faces
	long		flags;
	long		spare1;
	long		spare2;


Geometry

Geometry header List of faces List of vertices |-


List of M3D scenary models |-

B1_01

1) _4BARREL.M3D

2) _4HUT.M3D

3) _7WATER.M3D

4) _KHUT1_D.M3D

5) _KHUT2_D.M3D

6) _KHUT3_D.M3D

7) _KTREBSH.M3D

8) _KTREGE1.M3D

9) _KTREMD1.M3D

10) BASE.M3D


B1_02


1) _4WINDM2.M3D

2) _KTREBSH.M3D

3) _KTREGE1.M3D

4) _KTREMD1.M3D

5) _KWNDM_D.M3D

6) BASE.M3D


B1_03

1) _4GYGAT1.M3D

2) _4GYGAT2.M3D

3) _4TOMB.M3D

4) _7WATER.M3D

5) _KGRAVE.M3D

6) _KGRAVE2.M3D

7) _KGYWALE.M3D

8) _KGYWALL.M3D

9) _KHOUS1D.M3D

10) _KHOUS2D.M3D

11) _KHOUS3D.M3D

12) _KHOUS4D.M3D

13) _KHOUSE1.M3D

14) _KHOUSE2.M3D

15) _KHOUSE3.M3D

16) _KHOUSE4.M3D

17) _KTREBSH.M3D

18) _KTREGE1.M3D

19) _KTREMD1.M3D

20) BASE.M3D


B1_04

1) _KLNG1_D.M3D

2) _KLNG2_D.M3D

3) _KLONGH1.M3D

4) _KLONGH2.M3D

5) _KTREBSH.M3D

6) _KTREGE1.M3D

7) _KTTREMD1.M3D

8) BASE.M3D


B1_05

1) _4CORNER.M3D

2) _4CORNS2.M3D

3) _4CORNS3.M3D

4) _4ENDHS1.M3D

5) _4ENDHS2.M3D

6) _4HOUSE.M3D

7) _4INN.M3D

8) _4SHOP.M3D

9) _4SHOP1C.M3D

10) _4TOWER1.M3D

11) _4TOWER2.M3D

12) _TOWER3.M3D

13) _4TRISHP.M3D

14) _4WEALDN.M3D

15) _KCHURCH.M3D

16) _KGUILDH.M3D

17) _KSHOP_D.M3D

18) _KSHOPDC.M3D

19) _KYARD2.M3D

20) BASE.M3D


B1_06

1) _4GEROC.M3D

2) _4MEDRO1.M3D

3) _4MEDRO2.M3D

4) _4SMLROC.M3D

5) _4TOWER.M3D

6) _KTREWS1.M3D

7) _KTREWS2.M3D

8) BASE.M3D


B1_07

1) _4GEROC.M3D

2) _4MEDRO1.M3D

3) _4MEDRO2.M3D

4) _4SMLROC.M3D

5) _4TOWER.M3D

6) _KTREWS1.M3D

7) _KTREWS2.M3D


B1_08

1) _4MEDRO1.M3D

2) _4MEDRO2.M3D

3) _4SMLROC.M3D

4) _7WATER.M3D

5) _7WATER.M3D

6) _KTREWS1.M3D

7) _KTREWS2.M3D

8) BASE.M3D


B2_01

1) _4BURYM1.M3D

2) _4BURYM2.M3D

3) _KTREBSH.M3D

4) _KTREGE1.M3D

5) _KTREMD1.M3D

6) BASE.M3D


B2_02

1) _KTREBSH.M3D

2) _KTREGE1.M3D

3) _KTREMD1.M3D

4) BASE.M3D


B2_04

1) _KTREBSH.M3D

2) _KTREGE1.M3D

3) _KTREMD1.M3D

4) BASE.M3D


B2_05

1) _4TOWERS.M3D

2) _KTREBSH.M3D

3) _KTREGE1.M3D

4) _KTREMD1.M3D

5) BASE.M3D


B2_07

1) _6WATER.M3D

2) _KTREBSH.M3D

3) _KTREGE1.M3D

4) _KTREMD1.M3D

5) _KVAMPTD.M3D

6) _KVAMPTW.M3D

7) _KVHOUS1.M3D

8) _KVHOUS2.M3D

9) _KVHOUS3.M3D

10) _KVHOUS4.M3D

11) _KVHSE1D.M3D

12) _KVHSE2D.M3D

13) _KVHSE3D.M3D

14) _KVHSE4D.M3D

15) BASE.M3D


B2_08

1) _4BUFFER.M3D

2) _4DANGER.M3D

3) _4MINECT.M3D

4) _7JEWEL.M3D

5) BASE.M3D


B3_01

1) _7WATER.M3D

2) _KTREBSH.M3D

3) _KTREGE1.M3D

4) _KTREMD1.M3D

5) BASE.M3D


B3_02

1) _4GORK.M3D

2) _4MORK.M3D

3) _KNGTENT.M3D

4) _KNGTNT2.M3D

5) _KNGTNT2D.M3D

6) _KNTNT_D.M3D

7) _KORCW_D.M3D

8) _KTREBSH.M3D

9) _KTREGE1.M3D

10) _KTREMD1.M3D

11) BASE.M3D


B3_06

1) _4LGERK.M3D

2) _4MEDRK1.M3D

3) _4MEDRK2.M3D

4) _4ROCKGP.M3D

5) _4SMLRK.M3D

6) _KKISH1D.M3D

7) _KKISH2D.M3D

8) _KKISHS1.M3D

9) _KKISHS2.M3D

10) _KTRCNS1.M3D

11) _KTRCNS2.M3D

12) _KTREBSH.M3D

13) BASE.M3D


B3_07

1) _4ILLROC.M3D

2) _4LGERK.M3D

3) _4MEDRK1.M3D

4) _4MEDRK2.M3D

5) _4SMLRK.M3D

6) _KTRCNS1.M3D

7) _KTRCNS2.M3D

8) _KTREBSH.M3D

9) BASE.M3D


B3_08

1) _4ICEGP1.M3D

2) _4ICEGP2.M3D

3) _4ICELG1.M3D

4) _4ICEMD1.M3D

5) _4ICEMD2.M3D

6) _4ICESM1.M3D

7) _4ICESM2.M3D

8) BASE.M3D


B3_09

1) _4ICEB01.M3D

2) _4ICEB02.M3D

3) _4ICEB03.M3D

4) BASE.M3D


B4_01

1) _KTREWS1.M3D

2) _KTREWS2.M3D

3) BASE.M3D


B4_02

1) _4ROUNDL.M3D

2) _4WATMIL.M3D

3) _7WATER.M3D

4) _KTREBSH.M3D

5) _KTREGE1.M3D

6) _KTREMD1.M3D

7) _KWATM_D.M3D

8) BASE.M3D


B4_03

1) _4BARN1.M3D

2) _4BARN2.M3D

3) _4BARN3.M3D

4) _4CORNW2.M3D

5) _4CORNW3.M3D

6) _4CORNWL.M3D

7) _4FRMHS1.M3D

8) _4FRMHS2.M3D

9) _4FRMHS3.M3D

10) _4RNDL_D.M3D

11) _4ROUNDL.M3D

12) _4SBARND.M3D

13) _4SMLBRN.M3D

14) _4STABL2.M3D

15) _4STABL3.M3D

16) _4STABLE.M3D

17) _4WALCAP.M3D

18) _4WALL.M3D

19) _KGATE.M3D

20) _KRAN_D.M3D

21) _KGRANAR.M3D

22) _KHAYSTK.M3D

23) _KHSTK_D.M3D

24) _KTREBSH.M3D

25) _KTREGE1.M3D

26) _KTREMD1.M3D

27) _KTREORG.M3D

28) BASE.M3D


B4_05

1) _4SSTONE.M3D

2) _7WATER.M3D

3) _KTREBSH.M3D

4) _KTREGE1.M3D

5) _KTREMD1.M3D

6) BASE.M3D


B4_06

1) _7WATER.M3D

2) _KTREBSH.M3D

3) _KTREGE1.M3D

4) _KTREMD1.M3D

5) BASE.M3D


B4_08


1) _4MAGSTN.M3D

2) _KTREBSH.M3D

3) _KTREGE1.M3D

4) _KTREMD1.M3D

5) _4CIRCLE.M3D

6) BASE.M3D


B4_09

1) _4RNDL_D.M3D

2) _4ROUNDLM3D

3) _KTREBSH.M3D

4) _KTREGE1.M3D

5) _KTREMD1.M3D

6) _KWINDML.M3D

7) _KWNDMLD.M3D

8) _KWTWR_D.M3D

9) BASE.M3D


B4_10

1) _4CRY1_D.M3D

2) _4CRYPT1.M3D

3) _4CRYPT2.M3D

4) _4CRYPT3.M3D

5) _4CRYPT4.M3D

6) _4CRYPT5.M3D

7) _4MOUSS.M3D

8) _KTREBSH.M3D

9) _KTREGE1.M3D

10) _KTREMD1.M3D


B5_01

1) _4JEWEL.M3D

2) _7GLOW.M3D

3) BASE.M3D


B5_01B

1) BASE.M3D

2) TEMPFURN.M3D


SPARE9

1) _KTREBSH.M3D

2) _KTREGE1.M3D

3) _KTREMD1.M3D

Personal tools
communication