DO/M3D

From Dark Omen Wiki

(Difference between revisions)
Jump to: navigation, search
(General layout)
Line 231: Line 231:
[[Category: Modifications]]
[[Category: Modifications]]
[[Category: File Formats]]
[[Category: File Formats]]
 +
|-
 +
 +
 +
 +
[[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

Revision as of 15:35, 15 February 2010

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