From 8342395823d069071cd5d444c96d66e87cefa95f Mon Sep 17 00:00:00 2001 From: Jan Date: Mon, 12 Apr 2021 22:07:55 +0200 Subject: [PATCH] IW3 Material Commands --- src/Common/Game/IW3/IW3_Assets.h | 16 ++++++ src/ZoneCode/Game/IW3/XAssets/Material.txt | 22 ++++++++ .../Game/IW3/XAssets/MaterialTechniqueSet.txt | 50 +++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 src/ZoneCode/Game/IW3/XAssets/MaterialTechniqueSet.txt diff --git a/src/Common/Game/IW3/IW3_Assets.h b/src/Common/Game/IW3/IW3_Assets.h index 31c6ba28..0fe05aa8 100644 --- a/src/Common/Game/IW3/IW3_Assets.h +++ b/src/Common/Game/IW3/IW3_Assets.h @@ -736,6 +736,22 @@ namespace IW3 MAPTYPE_COUNT = 0x6, }; + enum TextureSemantic + { + TS_2D = 0x0, + TS_FUNCTION = 0x1, + TS_COLOR_MAP = 0x2, + TS_UNUSED_1 = 0x3, + TS_UNUSED_2 = 0x4, + TS_NORMAL_MAP = 0x5, + TS_UNUSED_3 = 0x6, + TS_UNUSED_4 = 0x7, + TS_SPECULAR_MAP = 0x8, + TS_UNUSED_5 = 0x9, + TS_UNUSED_6 = 0xA, + TS_WATER_MAP = 0xB, + }; + struct GfxImage { MapType mapType; diff --git a/src/ZoneCode/Game/IW3/XAssets/Material.txt b/src/ZoneCode/Game/IW3/XAssets/Material.txt index e69de29b..adf46797 100644 --- a/src/ZoneCode/Game/IW3/XAssets/Material.txt +++ b/src/ZoneCode/Game/IW3/XAssets/Material.txt @@ -0,0 +1,22 @@ +// ========================================= +// Material +// ========================================= +use Material; +set string info::name; +set name info::name; +set reusable textureTable; +set count textureTable textureCount; +set reusable constantTable; +set count constantTable constantCount; +set reusable stateBitsTable; +set count stateBitsTable stateBitsCount; + +// MaterialTextureDef +use MaterialTextureDef; +set condition u::water semantic == TS_WATER_MAP; +set reusable u::water; + +// water_t +use water_t; +set count H0 N * M; +set count wTerm N * M; \ No newline at end of file diff --git a/src/ZoneCode/Game/IW3/XAssets/MaterialTechniqueSet.txt b/src/ZoneCode/Game/IW3/XAssets/MaterialTechniqueSet.txt new file mode 100644 index 00000000..158d61ed --- /dev/null +++ b/src/ZoneCode/Game/IW3/XAssets/MaterialTechniqueSet.txt @@ -0,0 +1,50 @@ +// ========================================= +// MaterialTechniqueSet +// ========================================= +use MaterialTechniqueSet; +set string name; +set name name; +set condition remappedTechniqueSet never; +set reusable techniques; + +// MaterialTechnique +use MaterialTechnique; +set string name; +set arraysize passArray passCount; +reorder: + passArray + name; + +// MaterialPass +use MaterialPass; +set count args perPrimArgCount + perObjArgCount + stableArgCount; + +// MaterialShaderArgument +use MaterialShaderArgument; +set condition u::literalConst type == MTL_ARG_LITERAL_VERTEX_CONST +|| type == MTL_ARG_LITERAL_PIXEL_CONST; +set reusable u::literalConst; + +// MaterialPixelShader +set string MaterialPixelShader::name; + +// GfxPixelShaderLoadDef +set count GfxPixelShaderLoadDef::program programSize; + +// MaterialPixelShaderProgram +set condition MaterialPixelShaderProgram::ps never; + +// MaterialVertexDeclaration +set string MaterialVertexDeclaration::name; + +// MaterialVertexStreamRouting +set condition MaterialVertexStreamRouting::decl never; + +// MaterialVertexShader +set string MaterialVertexShader::name; + +// GfxVertexShaderLoadDef +set count GfxVertexShaderLoadDef::program programSize; + +// MaterialVertexShaderProgram +set condition MaterialVertexShaderProgram::vs never; \ No newline at end of file