Difference between revisions of "THQ Material (RW Section)"
Jump to navigation
Jump to search
Line 11: | Line 11: | ||
==Structure== | ==Structure== | ||
− | + | uint32 header | |
− | + | int32 sectionSize | |
− | + | uint32 renderProps | |
void THQMaterial(void) | void THQMaterial(void) | ||
Line 21: | Line 21: | ||
bool ZTest | bool ZTest | ||
bool ZWrite | bool ZWrite | ||
− | |||
int32 SrcBlend | int32 SrcBlend | ||
int32 DestBlend | int32 DestBlend | ||
− | int32 | + | int32 FaceCullMode |
− | + | bool AlphaEnabled | |
− | |||
− | |||
AlphaTestFunc = (renderProps & 0x7800) >> 11; | AlphaTestFunc = (renderProps & 0x7800) >> 11; | ||
Line 45: | Line 42: | ||
FaceCullIndex = (void *)rwCULLMODECULLNONE; | FaceCullIndex = (void *)rwCULLMODECULLNONE; | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } |
Revision as of 03:31, 7 December 2023
THQ Material (Custom) | |
---|---|
RenderWare Stream Section | |
Vendor | THQ |
Module | Plug-In |
Module ID | 0x00CAFE
|
Identifier | 0x45
|
Chunk ID | 0x00CAFE45
|
Versions | All |
Hierarchy | |
Parents: Material (Extension), Atomic (Extension, see below) | |
Children: None | |
Extensions: None | |
File Format |
The custom material extension was developed by THQ to attach geometric rendering properties to a material, using alpha referencing, z-test flags, blend functions, and culling, used for the known game Jimmy Neutron: Attack of the Twonkies.
Structure
uint32 header int32 sectionSize uint32 renderProps void THQMaterial(void) { int32 AlphaTestFunc int32 AlphaTestRef bool ZTest bool ZWrite int32 SrcBlend int32 DestBlend int32 FaceCullMode bool AlphaEnabled AlphaTestFunc = (renderProps & 0x7800) >> 11; AlphaTestRef = (renderProps & 0x7F8000) >> 15; ZTest = (renderProps & 0x800000) >> 17; SrcBlend = (renderProps & 0x78) >> 3; DstBlend = (renderProps & 0x780) >> 7; FaceCullIndex = renderProps & 0x7; if (DstBlend == (void *)rwBLENDZERO) AlphaEnabled = FALSE else { AlphaEnabled = TRUE if (renderProps & 0x4000000) FaceCullIndex = (void *)rwCULLMODECULLNONE; } }