Difference between revisions of "Atomic (RW Section)"

From GTAMods Wiki
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.
  
==Binary Structure==
+
==Structure==
  DWORD Zero-based [[Frame_(RW_Section)|Frame]] Index
+
An atomic section contain Struct, Geometry (optional) and Extension sections.
DWORD Zero-based [[Geometry_(RW_Section)|Geometry]] Index
+
A Struct section has 16 bytes in size (may be different in some RW versions).
DWORD Unknown1 Always 5 ?
+
  struct rwAtomicStruct
DWORD Unknown2 Always 0 ?
+
{
 +
    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

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.