Geometry (Metroid Prime): Difference between revisions

>Aruki
>Aruki
Line 59: Line 59:
! Size
! Size
! Description
! Description
! Notes
|-
|-
| 0x0
| 0x0
| 0xC
| 0xC
| '''Center point'''; used for depth sorting on CMDL and used as the eye position for reflections
| '''Center point'''
| Used for depth sorting on CMDL and used as the eye position for reflections
|-
|-
| 0xC
| 0xC
| 4
| 4
| '''Material ID'''
| '''Material ID'''
|
|-
|-
| 0x10
| 0x10
| 2
| 2
| '''Mantissa''' - divide short normals/UVs by this value; always 0x8000
| '''Mantissa'''
| Divide short normals/UVs by this value; always 0x8000
|-
|-
| 0x12
| 0x12
| 2
| 2
| '''Primitive table size''' (important note: ''this value is not always reliable'')
| '''Primitive table size'''  
| '''Important: this value is not always reliable'''
|-
|-
| 0x14
| 0x14
| 4
| 4
| '''CCubeModel pointer storage'''; always 0 in resource, game uses this space to store parent CCubeModel instance pointer
| '''CCubeModel pointer storage'''
| Always 0 in resource; game uses this space to store parent CCubeModel instance pointer
|-
|-
| 0x18
| 0x18
| 4
| 4
| '''Next surface pointer storage'''; always 0 in resource, game uses this space to store next surface data pointer
| '''Next surface pointer storage'''
| Always 0 in resource; game uses this space to store next surface data pointer
|-
|-
| 0x1C
| 0x1C
| 4
| 4
| '''Extra data size''' (ES); this isn't 100%, but seems to be correct
| '''Extra data size''' (ES)
| Amount of space taken up by extra data. Always 0 on CMDLs, 0x18 on MREAs.
|-
|-
| 0x20
| 0x20
| 0xC
| 0xC
| '''Reflection projection direction'''
| '''Surface normal'''
| On materials that use the Samus reflection, this is used to project the reflection onto the surface
|-
|-
| 0x2C
| 0x2C
| 2
| 2
| {{unknown|'''Unknown''' ''(note: not in Prime 1)''}}
| {{unknown|'''Unknown'''}}
| Not in Prime 1
|-
|-
| 0x2E
| 0x2E
| 2
| 2
| {{unknown|'''Unknown''' ''(note: not in Prime 1)''}}
| {{unknown|'''Unknown'''}}
| Not in Prime 1
|-
|-
| 0x30
| 0x30
| ES
| ES
| Extra data; empty on CMDL, contains a bounding box used for depth sorting on MREA
| '''Extra data'''
| Empty on CMDL; contains a bounding box used for depth sorting on MREA
|-
|-
| colspan=3 {{unknown|End of surface header; pad to multiple of 32 before primitive data starts}}
| colspan=4 {{unknown|End of surface header; pad to multiple of 32 before primitive data starts}}
|}
|}


Anonymous user