Difference between revisions of "Atomic (RW Section)"
Jump to navigation
Jump to search
Line 3: | Line 3: | ||
'''Atomic''' is a container section used in [[model file|DFF files]] as child of a [[Clump (RW Section)|Clump]] section. It is normally accompanied by a [[Struct (RW Section)#Atomic|Struct]] section. An atomic section can associate a Frame with a Geometry. | '''Atomic''' is a container section used in [[model file|DFF files]] as child of a [[Clump (RW Section)|Clump]] section. It is normally accompanied by a [[Struct (RW Section)#Atomic|Struct]] section. An atomic section can associate a Frame with a Geometry. | ||
− | == | + | ==Structure== |
− | + | An atomic section contain Struct, Geometry (optional) and Extension sections. | |
− | + | A Struct section has 16 bytes in size (may be different in some RW versions). | |
− | + | struct rwAtomicStruct | |
− | + | { | |
+ | unsigned int frameIndex; // zero-based index | ||
+ | unsigned int geometryIndex; // zero-based index | ||
+ | unsigned int flags; | ||
+ | unsigned int unused; // sets to 0 by default | ||
+ | }; | ||
+ | |||
+ | '''Flags''' | ||
+ | There are only 2 options available: | ||
+ | 0x01 rpATOMICCOLLISIONTEST - A generic collision flag to indicate that the atomic should be considered in collision tests. It wasn't used in GTA games since they don't use RW collision system. | ||
+ | 0x04 rpATOMICRENDER - The atomic is rendered if it is in the view frustum. It's set to TRUE for all models by default. | ||
+ | |||
+ | ==Child Sections== | ||
+ | *[[Geometry (RW Section)|Geometry]] - optional. A geometry linked to this atomic and stored internally. It may exist only if [[Clump (RW Section)|Clump]]'s [[Geometry List (RW Section)|Geometry List]] is empty. | ||
+ | |||
+ | ==Extension== | ||
+ | *[[Right To Render (RW Section)|Right To Render]] - optional. Used for Skin Rights or/and Normal Map Rights. | ||
+ | *[[Material Effects PLG (RW Section)|Material Effects PLG]] - optional. Used to set up atomic's custom rendering pipeline. | ||
+ | *[[Right To Render (RW Section)|Right To Render]] - optional. Determines if atomic uses MatFx effects and thus must be rendered via MatFx rendering pipeline. |
Revision as of 19:17, 18 January 2015
{{{NAME}}} | |
---|---|
RenderWare Stream Section | |
Vendor | {{{VENDORNAME}}} |
Module | {{{MODULENAME}}} |
Module ID | 0x{{{MODULEID}}}
|
Identifier | 0x{{{IDENTIFIER}}}
|
Chunk ID | 0x{{{MODULEID}}}{{{IDENTIFIER}}}
|
Versions | All |
Hierarchy | |
Parents: None | |
Children: None | |
Extensions: None | |
File Format |
Atomic is a container section used in DFF files as child of a Clump section. It is normally accompanied by a Struct section. An atomic section can associate a Frame with a Geometry.
Structure
An atomic section contain Struct, Geometry (optional) and Extension sections. A Struct section has 16 bytes in size (may be different in some RW versions).
struct rwAtomicStruct { unsigned int frameIndex; // zero-based index unsigned int geometryIndex; // zero-based index unsigned int flags; unsigned int unused; // sets to 0 by default };
Flags There are only 2 options available:
0x01 rpATOMICCOLLISIONTEST - A generic collision flag to indicate that the atomic should be considered in collision tests. It wasn't used in GTA games since they don't use RW collision system. 0x04 rpATOMICRENDER - The atomic is rendered if it is in the view frustum. It's set to TRUE for all models by default.
Child Sections
- Geometry - optional. A geometry linked to this atomic and stored internally. It may exist only if Clump's Geometry List is empty.
Extension
- Right To Render - optional. Used for Skin Rights or/and Normal Map Rights.
- Material Effects PLG - optional. Used to set up atomic's custom rendering pipeline.
- Right To Render - optional. Determines if atomic uses MatFx effects and thus must be rendered via MatFx rendering pipeline.