Atomic (RW Section)
Jump to navigation
Jump to search
| {{{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 contains 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.
- Pipeline Set - optional. Used to set up atomic's custom rendering pipeline.
- Material Effects PLG - optional. Determines if atomic uses MatFx effects and thus must be rendered via MatFx rendering pipeline.