mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-03-15 17:33:03 +00:00
feat: dump iw3 technique sets
This commit is contained in:
@@ -187,6 +187,11 @@ namespace IW3
|
||||
using AssetImpactFx = Asset<ASSET_TYPE_IMPACT_FX, FxImpactTable>;
|
||||
using AssetRawFile = Asset<ASSET_TYPE_RAWFILE, RawFile>;
|
||||
using AssetStringTable = Asset<ASSET_TYPE_STRINGTABLE, StringTable>;
|
||||
|
||||
using SubAssetTechnique = SubAsset<SUB_ASSET_TYPE_TECHNIQUE, MaterialTechnique>;
|
||||
using SubAssetVertexDecl = SubAsset<SUB_ASSET_TYPE_VERTEX_DECL, MaterialVertexDeclaration>;
|
||||
using SubAssetVertexShader = SubAsset<SUB_ASSET_TYPE_VERTEX_SHADER, MaterialVertexShader>;
|
||||
using SubAssetPixelShader = SubAsset<SUB_ASSET_TYPE_PIXEL_SHADER, MaterialPixelShader>;
|
||||
} // namespace IW3
|
||||
|
||||
DEFINE_ASSET_NAME_ACCESSOR(IW3::AssetXModelPieces, name);
|
||||
|
||||
@@ -967,8 +967,8 @@ namespace IW3
|
||||
struct MaterialArgumentCodeConst
|
||||
{
|
||||
uint16_t index;
|
||||
char firstRow;
|
||||
char rowCount;
|
||||
unsigned char firstRow;
|
||||
unsigned char rowCount;
|
||||
};
|
||||
|
||||
union MaterialArgumentDef
|
||||
@@ -996,265 +996,189 @@ namespace IW3
|
||||
MTL_ARG_MATERIAL_PIXEL_CONST = 0x6,
|
||||
MTL_ARG_LITERAL_PIXEL_CONST = 0x7,
|
||||
|
||||
MLT_ARG_COUNT
|
||||
MTL_ARG_COUNT
|
||||
};
|
||||
|
||||
enum MaterialConstantSource
|
||||
enum MaterialType
|
||||
{
|
||||
MTL_TYPE_DEFAULT = 0x0,
|
||||
MTL_TYPE_MODEL = 0x1, // m_
|
||||
MTL_TYPE_MODEL_VERTCOL = 0x2, // mc_
|
||||
MTL_TYPE_WORLD = 0x3, // w_
|
||||
MTL_TYPE_WORLD_VERTCOL = 0x4, // wc_
|
||||
|
||||
MTL_TYPE_COUNT,
|
||||
};
|
||||
|
||||
struct MaterialTypeInfo
|
||||
{
|
||||
const char* materialPrefix;
|
||||
const char* techniqueSetPrefix;
|
||||
};
|
||||
|
||||
enum ShaderCodeConstants
|
||||
{
|
||||
CONST_SRC_CODE_MAYBE_DIRTY_PS_BEGIN = 0x0,
|
||||
|
||||
CONST_SRC_CODE_LIGHT_POSITION = 0x0,
|
||||
CONST_SRC_CODE_LIGHT_DIFFUSE = 0x1,
|
||||
CONST_SRC_CODE_LIGHT_SPOTDIR = 0x2,
|
||||
CONST_SRC_CODE_LIGHT_SPOTFACTORS = 0x3,
|
||||
CONST_SRC_CODE_LIGHT_ATTENUATION = 0x4,
|
||||
CONST_SRC_CODE_LIGHT_FALLOFF_A = 0x5,
|
||||
CONST_SRC_CODE_LIGHT_FALLOFF_B = 0x6,
|
||||
CONST_SRC_CODE_LIGHT_SPOT_MATRIX0 = 0x7,
|
||||
CONST_SRC_CODE_LIGHT_SPOT_MATRIX1 = 0x8,
|
||||
CONST_SRC_CODE_LIGHT_SPOT_MATRIX2 = 0x9,
|
||||
CONST_SRC_CODE_LIGHT_SPOT_MATRIX3 = 0xA,
|
||||
CONST_SRC_CODE_LIGHT_SPOT_AABB = 0xB,
|
||||
CONST_SRC_CODE_LIGHT_CONE_CONTROL1 = 0xC,
|
||||
CONST_SRC_CODE_LIGHT_CONE_CONTROL2 = 0xD,
|
||||
CONST_SRC_CODE_LIGHT_SPOT_COOKIE_SLIDE_CONTROL = 0xE,
|
||||
CONST_SRC_CODE_SHADOW_PARMS = 0xF,
|
||||
CONST_SRC_CODE_SHADOWMAP_POLYGON_OFFSET = 0x10,
|
||||
CONST_SRC_CODE_RENDER_TARGET_SIZE = 0x11,
|
||||
CONST_SRC_CODE_UPSCALED_TARGET_SIZE = 0x12,
|
||||
CONST_SRC_CODE_DOF_EQUATION_VIEWMODEL_AND_FAR_BLUR = 0x13,
|
||||
CONST_SRC_CODE_DOF_EQUATION_SCENE = 0x14,
|
||||
CONST_SRC_CODE_DOF_LERP_SCALE = 0x15,
|
||||
CONST_SRC_CODE_DOF_LERP_BIAS = 0x16,
|
||||
CONST_SRC_CODE_DOF_ROW_DELTA = 0x17,
|
||||
CONST_SRC_CODE_PARTICLE_CLOUD_COLOR = 0x18,
|
||||
CONST_SRC_CODE_GAMETIME = 0x19,
|
||||
CONST_SRC_CODE_MAYBE_DIRTY_PS_END = 0x1A,
|
||||
CONST_SRC_CODE_ALWAYS_DIRTY_PS_BEGIN = 0x1A,
|
||||
CONST_SRC_CODE_FILTER_TAP_0 = 0x1A,
|
||||
CONST_SRC_CODE_FILTER_TAP_1 = 0x1B,
|
||||
CONST_SRC_CODE_FILTER_TAP_2 = 0x1C,
|
||||
CONST_SRC_CODE_FILTER_TAP_3 = 0x1D,
|
||||
CONST_SRC_CODE_FILTER_TAP_4 = 0x1E,
|
||||
CONST_SRC_CODE_FILTER_TAP_5 = 0x1F,
|
||||
CONST_SRC_CODE_FILTER_TAP_6 = 0x20,
|
||||
CONST_SRC_CODE_FILTER_TAP_7 = 0x21,
|
||||
CONST_SRC_CODE_COLOR_MATRIX_R = 0x22,
|
||||
CONST_SRC_CODE_COLOR_MATRIX_G = 0x23,
|
||||
CONST_SRC_CODE_COLOR_MATRIX_B = 0x24,
|
||||
CONST_SRC_CODE_ALWAYS_DIRTY_PS_END = 0x25,
|
||||
CONST_SRC_CODE_NEVER_DIRTY_PS_BEGIN = 0x25,
|
||||
CONST_SRC_CODE_SHADOWMAP_SWITCH_PARTITION = 0x25,
|
||||
CONST_SRC_CODE_SUNSHADOWMAP_PIXEL_SIZE = 0x26,
|
||||
CONST_SRC_CODE_SHADOWMAP_SCALE = 0x27,
|
||||
CONST_SRC_CODE_ZNEAR = 0x28,
|
||||
CONST_SRC_CODE_SUN_POSITION = 0x29,
|
||||
CONST_SRC_CODE_SUN_DIFFUSE = 0x2A,
|
||||
CONST_SRC_CODE_LIGHTING_LOOKUP_SCALE = 0x2B,
|
||||
CONST_SRC_CODE_DEBUG_BUMPMAP = 0x2C,
|
||||
CONST_SRC_CODE_DEBUG_PERFORMANCE = 0x2D,
|
||||
CONST_SRC_CODE_MATERIAL_COLOR = 0x2E,
|
||||
CONST_SRC_CODE_FOG = 0x2F,
|
||||
CONST_SRC_CODE_FOG2 = 0x30,
|
||||
CONST_SRC_CODE_FOG_COLOR = 0x31,
|
||||
CONST_SRC_CODE_SUN_FOG = 0x32,
|
||||
CONST_SRC_CODE_SUN_FOG_DIR = 0x33,
|
||||
CONST_SRC_CODE_SUN_FOG_COLOR = 0x34,
|
||||
CONST_SRC_CODE_GLOW_SETUP = 0x35,
|
||||
CONST_SRC_CODE_GLOW_APPLY = 0x36,
|
||||
CONST_SRC_CODE_COLOR_BIAS = 0x37,
|
||||
CONST_SRC_CODE_COLOR_TINT_BASE = 0x38,
|
||||
CONST_SRC_CODE_COLOR_TINT_DELTA = 0x39,
|
||||
CONST_SRC_CODE_OUTDOOR_FEATHER_PARMS = 0x3A,
|
||||
CONST_SRC_CODE_SKY_TRANSITION = 0x3B,
|
||||
CONST_SRC_CODE_SPOT_SHADOWMAP_PIXEL_ADJUST = 0x3C,
|
||||
CONST_SRC_CODE_DLIGHT_SPOT_SHADOWMAP_PIXEL_ADJUST = 0x3D,
|
||||
CONST_SRC_CODE_CLIP_SPACE_LOOKUP_SCALE = 0x3E,
|
||||
CONST_SRC_CODE_CLIP_SPACE_LOOKUP_OFFSET = 0x3F,
|
||||
CONST_SRC_CODE_PARTICLE_CLOUD_MATRIX = 0x40,
|
||||
CONST_SRC_CODE_PARTICLE_CLOUD_VEL_WORLD = 0x41,
|
||||
CONST_SRC_CODE_DEPTH_FROM_CLIP = 0x42,
|
||||
CONST_SRC_CODE_CODE_MESH_ARG_0 = 0x43,
|
||||
CONST_SRC_CODE_CODE_MESH_ARG_1 = 0x44,
|
||||
CONST_SRC_CODE_CODE_MESH_ARG_LAST = 0x44,
|
||||
CONST_SRC_CODE_GRID_LIGHTING_COORDS_AND_VIS = 0x45,
|
||||
CONST_SRC_CODE_GRID_LIGHTING_SH_0 = 0x46,
|
||||
CONST_SRC_CODE_GRID_LIGHTING_SH_1 = 0x47,
|
||||
CONST_SRC_CODE_GRID_LIGHTING_SH_2 = 0x48,
|
||||
CONST_SRC_CODE_REFLECTION_LIGHTING_SH_0 = 0x49,
|
||||
CONST_SRC_CODE_REFLECTION_LIGHTING_SH_1 = 0x4A,
|
||||
CONST_SRC_CODE_REFLECTION_LIGHTING_SH_2 = 0x4B,
|
||||
CONST_SRC_CODE_WIND_DIRECTION = 0x4C,
|
||||
CONST_SRC_CODE_MOTIONBLUR_DIRECTION_AND_MAGNITUDE = 0x4D,
|
||||
CONST_SRC_CODE_COMPOSITE_FX_DISTORTION = 0x4E,
|
||||
CONST_SRC_CODE_GLOW_BLOOM_SCALE = 0x4F,
|
||||
CONST_SRC_CODE_COMPOSITE_FX_OVERLAY_TEXCOORD = 0x50,
|
||||
CONST_SRC_CODE_COLOR_BIAS1 = 0x51,
|
||||
CONST_SRC_CODE_COLOR_TINT_BASE1 = 0x52,
|
||||
CONST_SRC_CODE_COLOR_TINT_DELTA1 = 0x53,
|
||||
CONST_SRC_CODE_POSTFX_FADE_EFFECT = 0x54,
|
||||
CONST_SRC_CODE_VIEWPORT_DIMENSIONS = 0x55,
|
||||
CONST_SRC_CODE_FRAMEBUFFER_READ = 0x56,
|
||||
CONST_SRC_CODE_RESIZE_PARAMS1 = 0x57,
|
||||
CONST_SRC_CODE_RESIZE_PARAMS2 = 0x58,
|
||||
CONST_SRC_CODE_RESIZE_PARAMS3 = 0x59,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_0 = 0x5A,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_1 = 0x5B,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_2 = 0x5C,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_3 = 0x5D,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_4 = 0x5E,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_5 = 0x5F,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_6 = 0x60,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_7 = 0x61,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_8 = 0x62,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_9 = 0x63,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_10 = 0x64,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_11 = 0x65,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_12 = 0x66,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_13 = 0x67,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_14 = 0x68,
|
||||
CONST_SRC_CODE_VARIANT_WIND_SPRING_15 = 0x69,
|
||||
CONST_SRC_CODE_CHARACTER_CHARRED_AMOUNT = 0x6A,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL0 = 0x6B,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL1 = 0x6C,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL2 = 0x6D,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL3 = 0x6E,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL4 = 0x6F,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL5 = 0x70,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL6 = 0x71,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL7 = 0x72,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL8 = 0x73,
|
||||
CONST_SRC_CODE_POSTFX_CONTROL9 = 0x74,
|
||||
CONST_SRC_CODE_POSTFX_CONTROLA = 0x75,
|
||||
CONST_SRC_CODE_POSTFX_CONTROLB = 0x76,
|
||||
CONST_SRC_CODE_POSTFX_CONTROLC = 0x77,
|
||||
CONST_SRC_CODE_POSTFX_CONTROLD = 0x78,
|
||||
CONST_SRC_CODE_POSTFX_CONTROLE = 0x79,
|
||||
CONST_SRC_CODE_POSTFX_CONTROLF = 0x7A,
|
||||
CONST_SRC_CODE_HDRCONTROL_0 = 0x7B,
|
||||
CONST_SRC_CODE_HDRCONTROL_1 = 0x7C,
|
||||
CONST_SRC_CODE_GLIGHT_POSXS = 0x7D,
|
||||
CONST_SRC_CODE_GLIGHT_POSYS = 0x7E,
|
||||
CONST_SRC_CODE_GLIGHT_POSZS = 0x7F,
|
||||
CONST_SRC_CODE_GLIGHT_FALLOFFS = 0x80,
|
||||
CONST_SRC_CODE_GLIGHT_REDS = 0x81,
|
||||
CONST_SRC_CODE_GLIGHT_GREENS = 0x82,
|
||||
CONST_SRC_CODE_GLIGHT_BLUES = 0x83,
|
||||
CONST_SRC_CODE_DLIGHT_POSITION = 0x84,
|
||||
CONST_SRC_CODE_DLIGHT_DIFFUSE = 0x85,
|
||||
CONST_SRC_CODE_DLIGHT_ATTENUATION = 0x86,
|
||||
CONST_SRC_CODE_DLIGHT_FALLOFF = 0x87,
|
||||
CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_0 = 0x88,
|
||||
CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_1 = 0x89,
|
||||
CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_2 = 0x8A,
|
||||
CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_3 = 0x8B,
|
||||
CONST_SRC_CODE_DLIGHT_SPOT_DIR = 0x8C,
|
||||
CONST_SRC_CODE_DLIGHT_SPOT_FACTORS = 0x8D,
|
||||
CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_0 = 0x8E,
|
||||
CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_1 = 0x8F,
|
||||
CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_2 = 0x90,
|
||||
CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_3 = 0x91,
|
||||
CONST_SRC_CODE_CLOUD_LAYER_CONTROL0 = 0x92,
|
||||
CONST_SRC_CODE_CLOUD_LAYER_CONTROL1 = 0x93,
|
||||
CONST_SRC_CODE_CLOUD_LAYER_CONTROL2 = 0x94,
|
||||
CONST_SRC_CODE_CLOUD_LAYER_CONTROL3 = 0x95,
|
||||
CONST_SRC_CODE_CLOUD_LAYER_CONTROL4 = 0x96,
|
||||
CONST_SRC_CODE_HERO_LIGHTING_R = 0x97,
|
||||
CONST_SRC_CODE_HERO_LIGHTING_G = 0x98,
|
||||
CONST_SRC_CODE_HERO_LIGHTING_B = 0x99,
|
||||
CONST_SRC_CODE_LIGHT_HERO_SCALE = 0x9A,
|
||||
CONST_SRC_CODE_CINEMATIC_BLUR_BOX = 0x9B,
|
||||
CONST_SRC_CODE_CINEMATIC_BLUR_BOX2 = 0x9C,
|
||||
CONST_SRC_CODE_ADSZSCALE = 0x9D,
|
||||
CONST_SRC_CODE_UI3D_UV_SETUP_0 = 0x9E,
|
||||
CONST_SRC_CODE_UI3D_UV_SETUP_1 = 0x9F,
|
||||
CONST_SRC_CODE_UI3D_UV_SETUP_2 = 0xA0,
|
||||
CONST_SRC_CODE_UI3D_UV_SETUP_3 = 0xA1,
|
||||
CONST_SRC_CODE_UI3D_UV_SETUP_4 = 0xA2,
|
||||
CONST_SRC_CODE_UI3D_UV_SETUP_5 = 0xA3,
|
||||
CONST_SRC_CODE_CHARACTER_DISSOLVE_COLOR = 0xA4,
|
||||
CONST_SRC_CODE_CAMERA_LOOK = 0xA5,
|
||||
CONST_SRC_CODE_CAMERA_UP = 0xA6,
|
||||
CONST_SRC_CODE_CAMERA_SIDE = 0xA7,
|
||||
CONST_SRC_CODE_RIMINTENSITY = 0xA8,
|
||||
CONST_SRC_CODE_GENERIC_PARAM0 = 0xA9,
|
||||
CONST_SRC_CODE_GENERIC_PARAM1 = 0xAA,
|
||||
CONST_SRC_CODE_GENERIC_PARAM2 = 0xAB,
|
||||
CONST_SRC_CODE_GENERIC_PARAM3 = 0xAC,
|
||||
CONST_SRC_CODE_GENERIC_PARAM4 = 0xAD,
|
||||
CONST_SRC_CODE_GENERIC_PARAM5 = 0xAE,
|
||||
CONST_SRC_CODE_GENERIC_PARAM6 = 0xAF,
|
||||
CONST_SRC_CODE_GENERIC_PARAM7 = 0xB0,
|
||||
CONST_SRC_CODE_GENERIC_EYEOFFSET = 0xB1,
|
||||
CONST_SRC_CODE_GENERIC_QUADINTENSITY = 0xB2,
|
||||
CONST_SRC_CODE_WEAPON_PARAM0 = 0xB3,
|
||||
CONST_SRC_CODE_WEAPON_PARAM1 = 0xB4,
|
||||
CONST_SRC_CODE_WEAPON_PARAM2 = 0xB5,
|
||||
CONST_SRC_CODE_WEAPON_PARAM3 = 0xB6,
|
||||
CONST_SRC_CODE_WEAPON_PARAM4 = 0xB7,
|
||||
CONST_SRC_CODE_WEAPON_PARAM5 = 0xB8,
|
||||
CONST_SRC_CODE_WEAPON_PARAM6 = 0xB9,
|
||||
CONST_SRC_CODE_WEAPON_PARAM7 = 0xBA,
|
||||
CONST_SRC_CODE_WEAPON_PARAM8 = 0xBB,
|
||||
CONST_SRC_CODE_WEAPON_PARAM9 = 0xBC,
|
||||
CONST_SRC_CODE_QRCODE_0 = 0xBD,
|
||||
CONST_SRC_CODE_QRCODE_1 = 0xBE,
|
||||
CONST_SRC_CODE_QRCODE_2 = 0xBF,
|
||||
CONST_SRC_CODE_QRCODE_3 = 0xC0,
|
||||
CONST_SRC_CODE_QRCODE_4 = 0xC1,
|
||||
CONST_SRC_CODE_QRCODE_5 = 0xC2,
|
||||
CONST_SRC_CODE_QRCODE_6 = 0xC3,
|
||||
CONST_SRC_CODE_QRCODE_7 = 0xC4,
|
||||
CONST_SRC_CODE_QRCODE_8 = 0xC5,
|
||||
CONST_SRC_CODE_QRCODE_9 = 0xC6,
|
||||
CONST_SRC_CODE_QRCODE_10 = 0xC7,
|
||||
CONST_SRC_CODE_QRCODE_11 = 0xC8,
|
||||
CONST_SRC_CODE_EYEOFFSET = 0xC9,
|
||||
CONST_SRC_CODE_SKY_COLOR_MULTIPLIER = 0xCA,
|
||||
CONST_SRC_CODE_EXTRA_CAM_PARAM = 0xCB,
|
||||
CONST_SRC_CODE_EMBLEM_LUT_SELECTOR = 0xCC,
|
||||
CONST_SRC_CODE_DEBUG_COLOR_OVERRIDE = 0xCD,
|
||||
CONST_SRC_CODE_DEBUG_ALPHA_OVERRIDE = 0xCE,
|
||||
CONST_SRC_CODE_DEBUG_NORMAL_OVERRIDE = 0xCF,
|
||||
CONST_SRC_CODE_DEBUG_SPECULAR_OVERRIDE = 0xD0,
|
||||
CONST_SRC_CODE_DEBUG_GLOSS_OVERRIDE = 0xD1,
|
||||
CONST_SRC_CODE_DEBUG_OCCLUSION_OVERRIDE = 0xD2,
|
||||
CONST_SRC_CODE_NEVER_DIRTY_PS_END = 0xD3,
|
||||
CONST_SRC_CODE_COUNT_FLOAT4 = 0xD3,
|
||||
CONST_SRC_FIRST_CODE_MATRIX = 0xD3,
|
||||
CONST_SRC_CODE_WORLD_MATRIX = 0xD3,
|
||||
CONST_SRC_CODE_INVERSE_WORLD_MATRIX = 0xD4,
|
||||
CONST_SRC_CODE_TRANSPOSE_WORLD_MATRIX = 0xD5,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_MATRIX = 0xD6,
|
||||
CONST_SRC_CODE_VIEW_MATRIX = 0xD7,
|
||||
CONST_SRC_CODE_INVERSE_VIEW_MATRIX = 0xD8,
|
||||
CONST_SRC_CODE_TRANSPOSE_VIEW_MATRIX = 0xD9,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_MATRIX = 0xDA,
|
||||
CONST_SRC_CODE_PROJECTION_MATRIX = 0xDB,
|
||||
CONST_SRC_CODE_INVERSE_PROJECTION_MATRIX = 0xDC,
|
||||
CONST_SRC_CODE_TRANSPOSE_PROJECTION_MATRIX = 0xDD,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_PROJECTION_MATRIX = 0xDE,
|
||||
CONST_SRC_CODE_WORLD_VIEW_MATRIX = 0xDF,
|
||||
CONST_SRC_CODE_INVERSE_WORLD_VIEW_MATRIX = 0xE0,
|
||||
CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_MATRIX = 0xE1,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX = 0xE2,
|
||||
CONST_SRC_CODE_VIEW_PROJECTION_MATRIX = 0xE3,
|
||||
CONST_SRC_CODE_INVERSE_VIEW_PROJECTION_MATRIX = 0xE4,
|
||||
CONST_SRC_CODE_TRANSPOSE_VIEW_PROJECTION_MATRIX = 0xE5,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_PROJECTION_MATRIX = 0xE6,
|
||||
CONST_SRC_CODE_WORLD_VIEW_PROJECTION_MATRIX = 0xE7,
|
||||
CONST_SRC_CODE_INVERSE_WORLD_VIEW_PROJECTION_MATRIX = 0xE8,
|
||||
CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX = 0xE9,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX = 0xEA,
|
||||
CONST_SRC_CODE_SHADOW_LOOKUP_MATRIX = 0xEB,
|
||||
CONST_SRC_CODE_INVERSE_SHADOW_LOOKUP_MATRIX = 0xEC,
|
||||
CONST_SRC_CODE_TRANSPOSE_SHADOW_LOOKUP_MATRIX = 0xED,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_SHADOW_LOOKUP_MATRIX = 0xEE,
|
||||
CONST_SRC_CODE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0xEF,
|
||||
CONST_SRC_CODE_INVERSE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0xF0,
|
||||
CONST_SRC_CODE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0xF1,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0xF2,
|
||||
CONST_SRC_TOTAL_COUNT = 0xF3,
|
||||
CONST_SRC_NONE = 0xF4,
|
||||
CONST_SRC_CODE_LIGHT_SPECULAR = 0x2,
|
||||
CONST_SRC_CODE_LIGHT_SPOTDIR = 0x3,
|
||||
CONST_SRC_CODE_LIGHT_SPOTFACTORS = 0x4,
|
||||
CONST_SRC_CODE_NEARPLANE_ORG = 0x5,
|
||||
CONST_SRC_CODE_NEARPLANE_DX = 0x6,
|
||||
CONST_SRC_CODE_NEARPLANE_DY = 0x7,
|
||||
CONST_SRC_CODE_SHADOW_PARMS = 0x8,
|
||||
CONST_SRC_CODE_SHADOWMAP_POLYGON_OFFSET = 0x9,
|
||||
CONST_SRC_CODE_RENDER_TARGET_SIZE = 0xA,
|
||||
CONST_SRC_CODE_LIGHT_FALLOFF_PLACEMENT = 0xB,
|
||||
CONST_SRC_CODE_DOF_EQUATION_VIEWMODEL_AND_FAR_BLUR = 0xC,
|
||||
CONST_SRC_CODE_DOF_EQUATION_SCENE = 0xD,
|
||||
CONST_SRC_CODE_DOF_LERP_SCALE = 0xE,
|
||||
CONST_SRC_CODE_DOF_LERP_BIAS = 0xF,
|
||||
CONST_SRC_CODE_DOF_ROW_DELTA = 0x10,
|
||||
CONST_SRC_CODE_PARTICLE_CLOUD_COLOR = 0x11,
|
||||
CONST_SRC_CODE_GAMETIME = 0x12,
|
||||
|
||||
CONST_SRC_CODE_MAYBE_DIRTY_PS_END = 0x13,
|
||||
CONST_SRC_CODE_ALWAYS_DIRTY_PS_BEGIN = 0x13,
|
||||
|
||||
CONST_SRC_CODE_PIXEL_COST_FRACS = 0x13,
|
||||
CONST_SRC_CODE_PIXEL_COST_DECODE = 0x14,
|
||||
CONST_SRC_CODE_FILTER_TAP_0 = 0x15,
|
||||
CONST_SRC_CODE_FILTER_TAP_1 = 0x16,
|
||||
CONST_SRC_CODE_FILTER_TAP_2 = 0x17,
|
||||
CONST_SRC_CODE_FILTER_TAP_3 = 0x18,
|
||||
CONST_SRC_CODE_FILTER_TAP_4 = 0x19,
|
||||
CONST_SRC_CODE_FILTER_TAP_5 = 0x1A,
|
||||
CONST_SRC_CODE_FILTER_TAP_6 = 0x1B,
|
||||
CONST_SRC_CODE_FILTER_TAP_7 = 0x1C,
|
||||
CONST_SRC_CODE_COLOR_MATRIX_R = 0x1D,
|
||||
CONST_SRC_CODE_COLOR_MATRIX_G = 0x1E,
|
||||
CONST_SRC_CODE_COLOR_MATRIX_B = 0x1F,
|
||||
|
||||
CONST_SRC_CODE_ALWAYS_DIRTY_PS_END = 0x20,
|
||||
CONST_SRC_CODE_NEVER_DIRTY_PS_BEGIN = 0x20,
|
||||
|
||||
CONST_SRC_CODE_SHADOWMAP_SWITCH_PARTITION = 0x20,
|
||||
CONST_SRC_CODE_SHADOWMAP_SCALE = 0x21,
|
||||
CONST_SRC_CODE_ZNEAR = 0x22,
|
||||
CONST_SRC_CODE_SUN_POSITION = 0x23,
|
||||
CONST_SRC_CODE_SUN_DIFFUSE = 0x24,
|
||||
CONST_SRC_CODE_SUN_SPECULAR = 0x25,
|
||||
CONST_SRC_CODE_LIGHTING_LOOKUP_SCALE = 0x26,
|
||||
CONST_SRC_CODE_DEBUG_BUMPMAP = 0x27,
|
||||
CONST_SRC_CODE_MATERIAL_COLOR = 0x28,
|
||||
CONST_SRC_CODE_FOG = 0x29,
|
||||
CONST_SRC_CODE_FOG_COLOR = 0x2A,
|
||||
CONST_SRC_CODE_GLOW_SETUP = 0x2B,
|
||||
CONST_SRC_CODE_GLOW_APPLY = 0x2C,
|
||||
CONST_SRC_CODE_COLOR_BIAS = 0x2D,
|
||||
CONST_SRC_CODE_COLOR_TINT_BASE = 0x2E,
|
||||
CONST_SRC_CODE_COLOR_TINT_DELTA = 0x2F,
|
||||
CONST_SRC_CODE_OUTDOOR_FEATHER_PARMS = 0x30,
|
||||
CONST_SRC_CODE_ENVMAP_PARMS = 0x31,
|
||||
CONST_SRC_CODE_SPOT_SHADOWMAP_PIXEL_ADJUST = 0x32,
|
||||
CONST_SRC_CODE_CLIP_SPACE_LOOKUP_SCALE = 0x33,
|
||||
CONST_SRC_CODE_CLIP_SPACE_LOOKUP_OFFSET = 0x34,
|
||||
CONST_SRC_CODE_PARTICLE_CLOUD_MATRIX = 0x35,
|
||||
CONST_SRC_CODE_DEPTH_FROM_CLIP = 0x36,
|
||||
CONST_SRC_CODE_CODE_MESH_ARG_0 = 0x37,
|
||||
CONST_SRC_CODE_CODE_MESH_ARG_1 = 0x38,
|
||||
|
||||
CONST_SRC_CODE_CODE_MESH_ARG_LAST = 0x38,
|
||||
|
||||
CONST_SRC_CODE_BASE_LIGHTING_COORDS = 0x39,
|
||||
|
||||
CONST_SRC_CODE_NEVER_DIRTY_PS_END = 0x3A,
|
||||
CONST_SRC_CODE_COUNT_FLOAT4 = 0x3A,
|
||||
CONST_SRC_FIRST_CODE_MATRIX = 0x3A,
|
||||
|
||||
CONST_SRC_CODE_WORLD_MATRIX = 0x3A,
|
||||
CONST_SRC_CODE_INVERSE_WORLD_MATRIX = 0x3B,
|
||||
CONST_SRC_CODE_TRANSPOSE_WORLD_MATRIX = 0x3C,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_MATRIX = 0x3D,
|
||||
CONST_SRC_CODE_VIEW_MATRIX = 0x3E,
|
||||
CONST_SRC_CODE_INVERSE_VIEW_MATRIX = 0x3F,
|
||||
CONST_SRC_CODE_TRANSPOSE_VIEW_MATRIX = 0x40,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_MATRIX = 0x41,
|
||||
CONST_SRC_CODE_PROJECTION_MATRIX = 0x42,
|
||||
CONST_SRC_CODE_INVERSE_PROJECTION_MATRIX = 0x43,
|
||||
CONST_SRC_CODE_TRANSPOSE_PROJECTION_MATRIX = 0x44,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_PROJECTION_MATRIX = 0x45,
|
||||
CONST_SRC_CODE_WORLD_VIEW_MATRIX = 0x46,
|
||||
CONST_SRC_CODE_INVERSE_WORLD_VIEW_MATRIX = 0x47,
|
||||
CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_MATRIX = 0x48,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX = 0x49,
|
||||
CONST_SRC_CODE_VIEW_PROJECTION_MATRIX = 0x4A,
|
||||
CONST_SRC_CODE_INVERSE_VIEW_PROJECTION_MATRIX = 0x4B,
|
||||
CONST_SRC_CODE_TRANSPOSE_VIEW_PROJECTION_MATRIX = 0x4C,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_PROJECTION_MATRIX = 0x4D,
|
||||
CONST_SRC_CODE_WORLD_VIEW_PROJECTION_MATRIX = 0x4E,
|
||||
CONST_SRC_CODE_INVERSE_WORLD_VIEW_PROJECTION_MATRIX = 0x4F,
|
||||
CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX = 0x50,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX = 0x51,
|
||||
CONST_SRC_CODE_SHADOW_LOOKUP_MATRIX = 0x52,
|
||||
CONST_SRC_CODE_INVERSE_SHADOW_LOOKUP_MATRIX = 0x53,
|
||||
CONST_SRC_CODE_TRANSPOSE_SHADOW_LOOKUP_MATRIX = 0x54,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_SHADOW_LOOKUP_MATRIX = 0x55,
|
||||
CONST_SRC_CODE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0x56,
|
||||
CONST_SRC_CODE_INVERSE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0x57,
|
||||
CONST_SRC_CODE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0x58,
|
||||
CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0x59,
|
||||
|
||||
CONST_SRC_TOTAL_COUNT,
|
||||
CONST_SRC_NONE
|
||||
};
|
||||
|
||||
enum MaterialTextureSource
|
||||
{
|
||||
TEXTURE_SRC_CODE_BLACK = 0x0,
|
||||
TEXTURE_SRC_CODE_WHITE = 0x1,
|
||||
TEXTURE_SRC_CODE_IDENTITY_NORMAL_MAP = 0x2,
|
||||
TEXTURE_SRC_CODE_MODEL_LIGHTING = 0x3,
|
||||
TEXTURE_SRC_CODE_LIGHTMAP_PRIMARY = 0x4,
|
||||
TEXTURE_SRC_CODE_LIGHTMAP_SECONDARY = 0x5,
|
||||
TEXTURE_SRC_CODE_SHADOWCOOKIE = 0x6,
|
||||
TEXTURE_SRC_CODE_SHADOWMAP_SUN = 0x7,
|
||||
TEXTURE_SRC_CODE_SHADOWMAP_SPOT = 0x8,
|
||||
TEXTURE_SRC_CODE_FEEDBACK = 0x9,
|
||||
TEXTURE_SRC_CODE_RESOLVED_POST_SUN = 0xA,
|
||||
TEXTURE_SRC_CODE_RESOLVED_SCENE = 0xB,
|
||||
TEXTURE_SRC_CODE_POST_EFFECT_0 = 0xC,
|
||||
TEXTURE_SRC_CODE_POST_EFFECT_1 = 0xD,
|
||||
TEXTURE_SRC_CODE_SKY = 0xE,
|
||||
TEXTURE_SRC_CODE_LIGHT_ATTENUATION = 0xF,
|
||||
TEXTURE_SRC_CODE_DYNAMIC_SHADOWS = 0x10,
|
||||
TEXTURE_SRC_CODE_OUTDOOR = 0x11,
|
||||
TEXTURE_SRC_CODE_FLOATZ = 0x12,
|
||||
TEXTURE_SRC_CODE_PROCESSED_FLOATZ = 0x13,
|
||||
TEXTURE_SRC_CODE_RAW_FLOATZ = 0x14,
|
||||
TEXTURE_SRC_CODE_CASE_TEXTURE = 0x15,
|
||||
TEXTURE_SRC_CODE_CINEMATIC_Y = 0x16,
|
||||
TEXTURE_SRC_CODE_CINEMATIC_CR = 0x17,
|
||||
TEXTURE_SRC_CODE_CINEMATIC_CB = 0x18,
|
||||
TEXTURE_SRC_CODE_CINEMATIC_A = 0x19,
|
||||
TEXTURE_SRC_CODE_REFLECTION_PROBE = 0x1A,
|
||||
|
||||
TEXTURE_SRC_CODE_COUNT
|
||||
};
|
||||
|
||||
enum CustomSamplers
|
||||
{
|
||||
CUSTOM_SAMPLER_REFLECTION_PROBE = 0x0,
|
||||
CUSTOM_SAMPLER_LIGHTMAP_PRIMARY = 0x1,
|
||||
CUSTOM_SAMPLER_LIGHTMAP_SECONDARY = 0x2,
|
||||
|
||||
CUSTOM_SAMPLER_COUNT
|
||||
};
|
||||
|
||||
enum MaterialUpdateFrequency
|
||||
{
|
||||
MTL_UPDATE_PER_PRIM = 0x0,
|
||||
MTL_UPDATE_PER_OBJECT = 0x1,
|
||||
MTL_UPDATE_RARELY = 0x2,
|
||||
MTL_UPDATE_CUSTOM = 0x3,
|
||||
};
|
||||
|
||||
struct MaterialShaderArgument
|
||||
@@ -1270,10 +1194,12 @@ namespace IW3
|
||||
STREAM_SRC_COLOR = 0x1,
|
||||
STREAM_SRC_TEXCOORD_0 = 0x2,
|
||||
STREAM_SRC_NORMAL = 0x3,
|
||||
|
||||
STREAM_SRC_PRE_OPTIONAL_BEGIN = 0x4,
|
||||
|
||||
STREAM_SRC_TANGENT = 0x4,
|
||||
|
||||
STREAM_SRC_OPTIONAL_BEGIN = 0x5,
|
||||
STREAM_SRC_PRE_OPTIONAL_BEGIN = 0x4,
|
||||
|
||||
STREAM_SRC_TEXCOORD_1 = 0x5,
|
||||
STREAM_SRC_TEXCOORD_2 = 0x6,
|
||||
@@ -1370,6 +1296,18 @@ namespace IW3
|
||||
MaterialShaderArgument* args;
|
||||
};
|
||||
|
||||
enum TechniqueFlags
|
||||
{
|
||||
MTL_TECHFLAG_NEEDS_RESOLVED_POST_SUN = 0x1,
|
||||
MTL_TECHFLAG_NEEDS_RESOLVED_SCENE = 0x2,
|
||||
MTL_TECHFLAG_ZPREPASS = 0x4,
|
||||
|
||||
MTL_TECHFLAG_DECL_HAS_OPTIONAL_SOURCE = 0x8,
|
||||
|
||||
MTL_TECHFLAG_USES_LIGHT_SPOT_FACTORS = 0x10,
|
||||
MTL_TECHFLAG_USES_FLOATZ = 0x20,
|
||||
};
|
||||
|
||||
struct MaterialTechnique
|
||||
{
|
||||
const char* name;
|
||||
|
||||
858
src/ObjCommon/Game/IW3/Techset/TechsetConstantsIW3.h
Normal file
858
src/ObjCommon/Game/IW3/Techset/TechsetConstantsIW3.h
Normal file
@@ -0,0 +1,858 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/IW3/IW3.h"
|
||||
#include "Techset/CommonTechnique.h"
|
||||
#include "Techset/CommonTechset.h"
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
inline const char* techniqueTypeNames[]{
|
||||
"depth prepass",
|
||||
"build floatz",
|
||||
"build shadowmap depth",
|
||||
"build shadowmap color",
|
||||
"unlit",
|
||||
"emissive",
|
||||
"emissive shadow",
|
||||
"lit",
|
||||
"lit sun",
|
||||
"lit sun shadow",
|
||||
"lit spot",
|
||||
"lit spot shadow",
|
||||
"lit omni",
|
||||
"lit omni shadow",
|
||||
"lit instanced",
|
||||
"lit instanced sun",
|
||||
"lit instanced sun shadow",
|
||||
"lit instanced spot",
|
||||
"lit instanced spot shadow",
|
||||
"lit instanced omni",
|
||||
"lit instanced omni shadow",
|
||||
"light spot",
|
||||
"light omni",
|
||||
"light spot shadow",
|
||||
"fakelight normal",
|
||||
"fakelight view",
|
||||
"sunlight preview",
|
||||
"case texture",
|
||||
"solid wireframe",
|
||||
"shaded wireframe",
|
||||
"shadowcookie caster",
|
||||
"shadowcookie receiver",
|
||||
"debug bumpmap",
|
||||
"debug bumpmap instanced",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(techniqueTypeNames)> == TECHNIQUE_COUNT);
|
||||
static inline techset::CommonTechniqueTypeNames commonTechniqueTypeNames(techniqueTypeNames, std::extent_v<decltype(techniqueTypeNames)>);
|
||||
|
||||
static inline techset::CommonStreamRoutingSourceInfo streamRoutingSources[]{
|
||||
{
|
||||
.name = "position",
|
||||
.abbreviation = "p",
|
||||
.optional = false,
|
||||
},
|
||||
{
|
||||
.name = "color",
|
||||
.abbreviation = "c",
|
||||
.optional = false,
|
||||
},
|
||||
{
|
||||
.name = "texcoord[0]",
|
||||
.abbreviation = "t0",
|
||||
.optional = false,
|
||||
},
|
||||
{
|
||||
.name = "normal",
|
||||
.abbreviation = "n",
|
||||
.optional = false,
|
||||
},
|
||||
{
|
||||
.name = "tangent",
|
||||
.abbreviation = "t",
|
||||
.optional = false,
|
||||
},
|
||||
{
|
||||
.name = "texcoord[1]",
|
||||
.abbreviation = "t1",
|
||||
.optional = true,
|
||||
},
|
||||
{
|
||||
.name = "texcoord[2]",
|
||||
.abbreviation = "t2",
|
||||
.optional = true,
|
||||
},
|
||||
{
|
||||
.name = "normalTransform[0]",
|
||||
.abbreviation = "n0",
|
||||
.optional = true,
|
||||
},
|
||||
{
|
||||
.name = "normalTransform[1]",
|
||||
.abbreviation = "n1",
|
||||
.optional = true,
|
||||
},
|
||||
};
|
||||
static_assert(std::extent_v<decltype(streamRoutingSources)> == STREAM_SRC_COUNT);
|
||||
|
||||
static inline techset::CommonStreamRoutingDestinationInfo streamRoutingDestinations[]{
|
||||
{
|
||||
.name = "position",
|
||||
.abbreviation = "p",
|
||||
},
|
||||
{
|
||||
.name = "normal",
|
||||
.abbreviation = "n",
|
||||
},
|
||||
{
|
||||
.name = "color[0]",
|
||||
.abbreviation = "c0",
|
||||
},
|
||||
{
|
||||
.name = "color[1]",
|
||||
.abbreviation = "c1",
|
||||
},
|
||||
{
|
||||
.name = "texcoord[0]",
|
||||
.abbreviation = "t0",
|
||||
},
|
||||
{
|
||||
.name = "texcoord[1]",
|
||||
.abbreviation = "t1",
|
||||
},
|
||||
{
|
||||
.name = "texcoord[2]",
|
||||
.abbreviation = "t2",
|
||||
},
|
||||
{
|
||||
.name = "texcoord[3]",
|
||||
.abbreviation = "t3",
|
||||
},
|
||||
{
|
||||
.name = "texcoord[4]",
|
||||
.abbreviation = "t4",
|
||||
},
|
||||
{
|
||||
.name = "texcoord[5]",
|
||||
.abbreviation = "t5",
|
||||
},
|
||||
{
|
||||
.name = "texcoord[6]",
|
||||
.abbreviation = "t6",
|
||||
},
|
||||
{
|
||||
.name = "texcoord[7]",
|
||||
.abbreviation = "t7",
|
||||
},
|
||||
};
|
||||
static_assert(std::extent_v<decltype(streamRoutingDestinations)> == STREAM_DST_COUNT);
|
||||
|
||||
static inline techset::CommonStreamRoutingInfos commonRoutingInfos(streamRoutingSources,
|
||||
std::extent_v<decltype(streamRoutingSources)>,
|
||||
streamRoutingDestinations,
|
||||
std::extent_v<decltype(streamRoutingDestinations)>);
|
||||
|
||||
static inline techset::CommonCodeConstSourceInfo commonCodeConstSources[]{
|
||||
{
|
||||
.value = CONST_SRC_CODE_LIGHT_POSITION,
|
||||
.accessor = "lightPosition",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_LIGHT_DIFFUSE,
|
||||
.accessor = "lightDiffuse",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_LIGHT_SPECULAR,
|
||||
.accessor = "lightSpecular",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_LIGHT_SPOTDIR,
|
||||
.accessor = "lightSpotDir",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_LIGHT_SPOTFACTORS,
|
||||
.accessor = "lightSpotFactors",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_USES_LIGHT_SPOT_FACTORS,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_NEARPLANE_ORG,
|
||||
.accessor = "nearPlaneOrg",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_NEARPLANE_DX,
|
||||
.accessor = "nearPlaneDx",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_NEARPLANE_DY,
|
||||
.accessor = "nearPlaneDy",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_SHADOW_PARMS,
|
||||
.accessor = "shadowParms",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_SHADOWMAP_POLYGON_OFFSET,
|
||||
.accessor = "shadowmapPolygonOffset",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_RENDER_TARGET_SIZE,
|
||||
.accessor = "renderTargetSize",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_LIGHT_FALLOFF_PLACEMENT,
|
||||
.accessor = "lightFalloffPlacement",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_DOF_EQUATION_VIEWMODEL_AND_FAR_BLUR,
|
||||
.accessor = "dofEquationViewModelAndFarBlur",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_DOF_EQUATION_SCENE,
|
||||
.accessor = "dofEquationScene",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_DOF_LERP_SCALE,
|
||||
.accessor = "dofLerpScale",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_DOF_LERP_BIAS,
|
||||
.accessor = "dofLerpBias",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_DOF_ROW_DELTA,
|
||||
.accessor = "dofRowDelta",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_PARTICLE_CLOUD_COLOR,
|
||||
.accessor = "particleCloudColor",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_GAMETIME,
|
||||
.accessor = "gameTime",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_PIXEL_COST_FRACS,
|
||||
.accessor = "pixelCostFracs",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_PIXEL_COST_DECODE,
|
||||
.accessor = "pixelCostDecode",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_FILTER_TAP_0,
|
||||
.accessor = "filterTap",
|
||||
.arrayCount = 8,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_COLOR_MATRIX_R,
|
||||
.accessor = "colorMatrixR",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_COLOR_MATRIX_G,
|
||||
.accessor = "colorMatrixG",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_COLOR_MATRIX_B,
|
||||
.accessor = "colorMatrixB",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_SHADOWMAP_SWITCH_PARTITION,
|
||||
.accessor = "shadowmapSwitchPartition",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_SHADOWMAP_SCALE,
|
||||
.accessor = "shadowmapScale",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_ZNEAR,
|
||||
.accessor = "zNear",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_SUN_POSITION,
|
||||
.accessor = "sunPosition",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_SUN_DIFFUSE,
|
||||
.accessor = "sunDiffuse",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_SUN_SPECULAR,
|
||||
.accessor = "sunSpecular",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_LIGHTING_LOOKUP_SCALE,
|
||||
.accessor = "lightingLookupScale",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_DEBUG_BUMPMAP,
|
||||
.accessor = "debugBumpmap",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_MATERIAL_COLOR,
|
||||
.accessor = "materialColor",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_FOG,
|
||||
.accessor = "fogConsts",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_FOG_COLOR,
|
||||
.accessor = "fogColor",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_GLOW_SETUP,
|
||||
.accessor = "glowSetup",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_GLOW_APPLY,
|
||||
.accessor = "glowApply",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_COLOR_BIAS,
|
||||
.accessor = "colorBias",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_COLOR_TINT_BASE,
|
||||
.accessor = "colorTintBase",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_COLOR_TINT_DELTA,
|
||||
.accessor = "colorTintDelta",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_OUTDOOR_FEATHER_PARMS,
|
||||
.accessor = "outdoorFeatherParms",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_ENVMAP_PARMS,
|
||||
.accessor = "envMapParms",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_SPOT_SHADOWMAP_PIXEL_ADJUST,
|
||||
.accessor = "spotShadowmapPixelAdjust",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_CLIP_SPACE_LOOKUP_SCALE,
|
||||
.accessor = "clipSpaceLookupScale",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_CLIP_SPACE_LOOKUP_OFFSET,
|
||||
.accessor = "clipSpaceLookupOffset",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_PARTICLE_CLOUD_MATRIX,
|
||||
.accessor = "particleCloudMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_DEPTH_FROM_CLIP,
|
||||
.accessor = "depthFromClip",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_CODE_MESH_ARG_0,
|
||||
.accessor = "codeMeshArg",
|
||||
.arrayCount = 2,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_BASE_LIGHTING_COORDS,
|
||||
.accessor = "baseLightingCoords",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_WORLD_MATRIX,
|
||||
.accessor = "worldMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_TRANSPOSE_WORLD_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_WORLD_MATRIX,
|
||||
.accessor = "inverseWorldMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_TRANSPOSE_WORLD_MATRIX,
|
||||
.accessor = "transposeWorldMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_WORLD_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_MATRIX,
|
||||
.accessor = "inverseTransposeWorldMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_WORLD_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_VIEW_MATRIX,
|
||||
.accessor = "viewMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_TRANSPOSE_VIEW_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_VIEW_MATRIX,
|
||||
.accessor = "inverseViewMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_TRANSPOSE_VIEW_MATRIX,
|
||||
.accessor = "transposeViewMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_VIEW_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_MATRIX,
|
||||
.accessor = "inverseTransposeViewMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_VIEW_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_PROJECTION_MATRIX,
|
||||
.accessor = "projectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_TRANSPOSE_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_PROJECTION_MATRIX,
|
||||
.accessor = "inverseProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_TRANSPOSE_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_TRANSPOSE_PROJECTION_MATRIX,
|
||||
.accessor = "transposeProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_PROJECTION_MATRIX,
|
||||
.accessor = "inverseTransposeProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_WORLD_VIEW_MATRIX,
|
||||
.accessor = "worldViewMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_WORLD_VIEW_MATRIX,
|
||||
.accessor = "inverseWorldViewMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_MATRIX,
|
||||
.accessor = "transposeWorldViewMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_WORLD_VIEW_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX,
|
||||
.accessor = "inverseTransposeWorldViewMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_WORLD_VIEW_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_VIEW_PROJECTION_MATRIX,
|
||||
.accessor = "viewProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_TRANSPOSE_VIEW_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_VIEW_PROJECTION_MATRIX,
|
||||
.accessor = "inverseViewProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_TRANSPOSE_VIEW_PROJECTION_MATRIX,
|
||||
.accessor = "transposeViewProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_VIEW_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_PROJECTION_MATRIX,
|
||||
.accessor = "inverseTransposeViewProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_VIEW_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_WORLD_VIEW_PROJECTION_MATRIX,
|
||||
.accessor = "worldViewProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_WORLD_VIEW_PROJECTION_MATRIX,
|
||||
.accessor = "inverseWorldViewProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX,
|
||||
.accessor = "transposeWorldViewProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_WORLD_VIEW_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX,
|
||||
.accessor = "inverseTransposeWorldViewProjectionMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_WORLD_VIEW_PROJECTION_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_SHADOW_LOOKUP_MATRIX,
|
||||
.accessor = "shadowLookupMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_TRANSPOSE_SHADOW_LOOKUP_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_SHADOW_LOOKUP_MATRIX,
|
||||
.accessor = "inverseShadowLookupMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_TRANSPOSE_SHADOW_LOOKUP_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_TRANSPOSE_SHADOW_LOOKUP_MATRIX,
|
||||
.accessor = "transposeShadowLookupMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_SHADOW_LOOKUP_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_SHADOW_LOOKUP_MATRIX,
|
||||
.accessor = "inverseTransposeShadowLookupMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_SHADOW_LOOKUP_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_WORLD_OUTDOOR_LOOKUP_MATRIX,
|
||||
.accessor = "worldOutdoorLookupMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_WORLD_OUTDOOR_LOOKUP_MATRIX,
|
||||
.accessor = "inverseWorldOutdoorLookupMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX,
|
||||
.accessor = "transposeWorldOutdoorLookupMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_WORLD_OUTDOOR_LOOKUP_MATRIX,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX,
|
||||
.accessor = "inverseTransposeWorldOutdoorLookupMatrix",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,
|
||||
.transposedMatrix = CONST_SRC_CODE_INVERSE_WORLD_OUTDOOR_LOOKUP_MATRIX,
|
||||
},
|
||||
};
|
||||
|
||||
static inline techset::CommonCodeSamplerSourceInfo commonCodeSamplerSources[]{
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_BLACK,
|
||||
.accessor = "black",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_WHITE,
|
||||
.accessor = "white",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_IDENTITY_NORMAL_MAP,
|
||||
.accessor = "identityNormalMap",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_MODEL_LIGHTING,
|
||||
.accessor = "modelLightingSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_LIGHTMAP_PRIMARY,
|
||||
.accessor = "lightmapSamplerPrimary",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM,
|
||||
.customSamplerIndex = CUSTOM_SAMPLER_LIGHTMAP_PRIMARY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_LIGHTMAP_SECONDARY,
|
||||
.accessor = "lightmapSamplerSecondary",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM,
|
||||
.customSamplerIndex = CUSTOM_SAMPLER_LIGHTMAP_SECONDARY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_SHADOWCOOKIE,
|
||||
.accessor = "shadowCookieSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_SHADOWMAP_SUN,
|
||||
.accessor = "shadowmapSamplerSun",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_SHADOWMAP_SPOT,
|
||||
.accessor = "shadowmapSamplerSpot",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_FEEDBACK,
|
||||
.accessor = "feedbackSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_RESOLVED_POST_SUN,
|
||||
.accessor = "resolvedPostSun",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_RESOLVED_SCENE,
|
||||
.accessor = "resolvedScene",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_POST_EFFECT_0,
|
||||
.accessor = "postEffect0",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_POST_EFFECT_1,
|
||||
.accessor = "postEffect1",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_SKY,
|
||||
.accessor = "sky",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_LIGHT_ATTENUATION,
|
||||
.accessor = "attenuationSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_DYNAMIC_SHADOWS,
|
||||
.accessor = "dynamicShadowSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_OUTDOOR,
|
||||
.accessor = "outdoor",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_FLOATZ,
|
||||
.accessor = "floatZSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_USES_FLOATZ,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_PROCESSED_FLOATZ,
|
||||
.accessor = "processedFloatZSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_USES_FLOATZ,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_RAW_FLOATZ,
|
||||
.accessor = "rawFloatZSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_USES_FLOATZ,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_CASE_TEXTURE,
|
||||
.accessor = "caseTexture" /* ? */,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_CINEMATIC_Y,
|
||||
.accessor = "cinematicYSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_CINEMATIC_CR,
|
||||
.accessor = "cinematicCrSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_CINEMATIC_CB,
|
||||
.accessor = "cinematicCbSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_CINEMATIC_A,
|
||||
.accessor = "cinematicASampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_REFLECTION_PROBE,
|
||||
.accessor = "reflectionProbeSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM,
|
||||
.customSamplerIndex = CUSTOM_SAMPLER_REFLECTION_PROBE,
|
||||
},
|
||||
};
|
||||
|
||||
// See MaterialShaderArgumentType
|
||||
static inline techset::CommonShaderArgumentType commonArgumentTypes[]{
|
||||
{.m_shader_type = techset::CommonTechniqueShaderType::VERTEX, .m_value_type = techset::CommonShaderValueType::MATERIAL_CONST },
|
||||
{.m_shader_type = techset::CommonTechniqueShaderType::VERTEX, .m_value_type = techset::CommonShaderValueType::LITERAL_CONST },
|
||||
{.m_shader_type = techset::CommonTechniqueShaderType::PIXEL, .m_value_type = techset::CommonShaderValueType::MATERIAL_SAMPLER},
|
||||
{.m_shader_type = techset::CommonTechniqueShaderType::VERTEX, .m_value_type = techset::CommonShaderValueType::CODE_CONST },
|
||||
{.m_shader_type = techset::CommonTechniqueShaderType::PIXEL, .m_value_type = techset::CommonShaderValueType::CODE_SAMPLER },
|
||||
{.m_shader_type = techset::CommonTechniqueShaderType::PIXEL, .m_value_type = techset::CommonShaderValueType::CODE_CONST },
|
||||
{.m_shader_type = techset::CommonTechniqueShaderType::PIXEL, .m_value_type = techset::CommonShaderValueType::MATERIAL_CONST },
|
||||
{.m_shader_type = techset::CommonTechniqueShaderType::PIXEL, .m_value_type = techset::CommonShaderValueType::LITERAL_CONST },
|
||||
};
|
||||
static_assert(std::extent_v<decltype(commonArgumentTypes)> == MTL_ARG_COUNT);
|
||||
|
||||
static inline techset::CommonCodeSourceInfos commonCodeSourceInfos(commonCodeConstSources,
|
||||
std::extent_v<decltype(commonCodeConstSources)>,
|
||||
commonCodeSamplerSources,
|
||||
std::extent_v<decltype(commonCodeSamplerSources)>,
|
||||
nullptr,
|
||||
0,
|
||||
commonArgumentTypes,
|
||||
std::extent_v<decltype(commonArgumentTypes)>);
|
||||
|
||||
static inline MaterialTypeInfo g_materialTypeInfo[]{
|
||||
{"", "" },
|
||||
{"m/", "m_" },
|
||||
{"mc/", "mc_"},
|
||||
{"w/", "w_" },
|
||||
{"wc/", "wc_"},
|
||||
};
|
||||
static_assert(std::extent_v<decltype(g_materialTypeInfo)> == MTL_TYPE_COUNT);
|
||||
} // namespace IW3
|
||||
@@ -1,102 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/IW3/CommonIW3.h"
|
||||
#include "Game/IW3/IW3.h"
|
||||
|
||||
#include <type_traits>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
inline const char* techniqueTypeNames[]{
|
||||
"depth prepass",
|
||||
"build floatz",
|
||||
"build shadowmap depth",
|
||||
"build shadowmap color",
|
||||
"unlit",
|
||||
"emissive",
|
||||
"emissive shadow",
|
||||
"lit",
|
||||
"lit sun",
|
||||
"lit sun shadow",
|
||||
"lit spot",
|
||||
"lit spot shadow",
|
||||
"lit omni",
|
||||
"lit omni shadow",
|
||||
"lit instanced",
|
||||
"lit instanced sun",
|
||||
"lit instanced sun shadow",
|
||||
"lit instanced spot",
|
||||
"lit instanced spot shadow",
|
||||
"lit instanced omni",
|
||||
"lit instanced omni shadow",
|
||||
"light spot",
|
||||
"light omni",
|
||||
"light spot shadow",
|
||||
"fakelight normal",
|
||||
"fakelight view",
|
||||
"sunlight preview",
|
||||
"case texture",
|
||||
"solid wireframe",
|
||||
"shaded wireframe",
|
||||
"shadowcookie caster",
|
||||
"shadowcookie receiver",
|
||||
"debug bumpmap",
|
||||
"debug bumpmap instanced",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(techniqueTypeNames)> == TECHNIQUE_COUNT);
|
||||
|
||||
static const char* materialStreamDestinationNames[]{
|
||||
"position",
|
||||
"normal",
|
||||
"color[0]",
|
||||
"color[1]",
|
||||
"texcoord[0]",
|
||||
"texcoord[1]",
|
||||
"texcoord[2]",
|
||||
"texcoord[3]",
|
||||
"texcoord[4]",
|
||||
"texcoord[5]",
|
||||
"texcoord[6]",
|
||||
"texcoord[7]",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(materialStreamDestinationNames)> == STREAM_DST_COUNT);
|
||||
|
||||
static const char* materialStreamSourceNames[]{
|
||||
"position",
|
||||
"color",
|
||||
"texcoord[0]",
|
||||
"normal",
|
||||
"tangent",
|
||||
"texcoord[1]",
|
||||
"texcoord[2]",
|
||||
"normalTransform[0]",
|
||||
"normalTransform[1]",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(materialStreamSourceNames)> == STREAM_SRC_COUNT);
|
||||
|
||||
static constexpr std::pair<uint32_t, const char*> KnownMaterialSource(const char* name)
|
||||
{
|
||||
return std::make_pair(Common::R_HashString(name, 0u), name);
|
||||
}
|
||||
|
||||
inline std::unordered_map knownMaterialSourceNames{
|
||||
KnownMaterialSource("colorMap"), KnownMaterialSource("colorMap0"), KnownMaterialSource("colorMap1"),
|
||||
KnownMaterialSource("colorMap2"), KnownMaterialSource("colorMap3"), KnownMaterialSource("colorMap4"),
|
||||
KnownMaterialSource("colorMap5"), KnownMaterialSource("colorMap6"), KnownMaterialSource("colorMap7"),
|
||||
KnownMaterialSource("normalMap"), KnownMaterialSource("normalMap0"), KnownMaterialSource("normalMap1"),
|
||||
KnownMaterialSource("normalMap2"), KnownMaterialSource("normalMap3"), KnownMaterialSource("normalMap4"),
|
||||
KnownMaterialSource("normalMap5"), KnownMaterialSource("normalMap6"), KnownMaterialSource("normalMap7"),
|
||||
KnownMaterialSource("specularMap"), KnownMaterialSource("specularMap0"), KnownMaterialSource("specularMap1"),
|
||||
KnownMaterialSource("specularMap2"), KnownMaterialSource("specularMap3"), KnownMaterialSource("specularMap4"),
|
||||
KnownMaterialSource("specularMap5"), KnownMaterialSource("specularMap6"), KnownMaterialSource("specularMap7"),
|
||||
KnownMaterialSource("detailMap"), KnownMaterialSource("detailMap0"), KnownMaterialSource("detailMap1"),
|
||||
KnownMaterialSource("detailMap2"), KnownMaterialSource("detailMap3"), KnownMaterialSource("detailMap4"),
|
||||
KnownMaterialSource("detailMap5"), KnownMaterialSource("detailMap6"), KnownMaterialSource("detailMap7"),
|
||||
KnownMaterialSource("attenuationMap"), KnownMaterialSource("attenuationMap0"), KnownMaterialSource("attenuationMap1"),
|
||||
KnownMaterialSource("attenuationMap2"), KnownMaterialSource("attenuationMap3"), KnownMaterialSource("attenuationMap4"),
|
||||
KnownMaterialSource("attenuationMap5"), KnownMaterialSource("attenuationMap6"), KnownMaterialSource("attenuationMap7"),
|
||||
KnownMaterialSource("distortionScale"), KnownMaterialSource("eyeOffsetParms"), KnownMaterialSource("falloffBeginColor"),
|
||||
KnownMaterialSource("falloffEndColor"),
|
||||
};
|
||||
} // namespace IW3
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "ObjWriterIW3.h"
|
||||
|
||||
#include "Game/IW3/Material/MaterialJsonDumperIW3.h"
|
||||
#include "Game/IW3/Techset/TechsetDumperIW3.h"
|
||||
#include "Game/IW3/XModel/XModelDumperIW3.h"
|
||||
#include "Image/ImageDumperIW3.h"
|
||||
#include "Localize/LocalizeDumperIW3.h"
|
||||
@@ -17,7 +18,13 @@ void ObjWriter::RegisterAssetDumpers(AssetDumpingContext& context)
|
||||
// REGISTER_DUMPER(AssetDumperXAnimParts)
|
||||
RegisterAssetDumper(std::make_unique<xmodel::DumperIW3>());
|
||||
RegisterAssetDumper(std::make_unique<material::JsonDumperIW3>());
|
||||
// REGISTER_DUMPER(AssetDumperMaterialTechniqueSet)
|
||||
RegisterAssetDumper(std::make_unique<techset::DumperIW3>(
|
||||
#ifdef TECHSET_DEBUG
|
||||
true
|
||||
#else
|
||||
false
|
||||
#endif
|
||||
));
|
||||
RegisterAssetDumper(std::make_unique<image::DumperIW3>());
|
||||
// REGISTER_DUMPER(AssetDumpersnd_alias_list_t)
|
||||
// REGISTER_DUMPER(AssetDumperSndCurve)
|
||||
|
||||
@@ -4,10 +4,7 @@
|
||||
|
||||
#set DUMPER_HEADER "\"PixelShaderDumper" + GAME + ".h\""
|
||||
|
||||
#if GAME == "IW3"
|
||||
#define FEATURE_IW3
|
||||
#define IS_DX9
|
||||
#elif GAME == "IW4"
|
||||
#if GAME == "IW4"
|
||||
#define FEATURE_IW4
|
||||
#define IS_DX9
|
||||
#elif GAME == "IW5"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#options GAME(IW4, T6)
|
||||
#options GAME(IW3, IW4, T6)
|
||||
|
||||
#filename "Game/" + GAME + "/Techset/TechsetDumper" + GAME + ".cpp"
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#if GAME == "IW3"
|
||||
#define FEATURE_IW3
|
||||
#define IS_DX9
|
||||
#define DUMP_SHADERS "1"
|
||||
#elif GAME == "IW4"
|
||||
#define FEATURE_IW4
|
||||
#define IS_DX9
|
||||
@@ -58,7 +59,7 @@ namespace
|
||||
if (!shaderFile)
|
||||
return;
|
||||
|
||||
#if defined(FEATURE_T6)
|
||||
#if defined(IS_DX11)
|
||||
shaderFile->write(pixelShader.prog.loadDef.program, pixelShader.prog.loadDef.programSize);
|
||||
#else
|
||||
shaderFile->write(reinterpret_cast<const char*>(pixelShader.prog.loadDef.program),
|
||||
@@ -73,7 +74,7 @@ namespace
|
||||
if (!shaderFile)
|
||||
return;
|
||||
|
||||
#if defined(FEATURE_T6)
|
||||
#if defined(IS_DX11)
|
||||
shaderFile->write(vertexShader.prog.loadDef.program, vertexShader.prog.loadDef.programSize);
|
||||
#else
|
||||
shaderFile->write(reinterpret_cast<const char*>(vertexShader.prog.loadDef.program),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#options GAME(IW4, T6)
|
||||
#options GAME(IW3, IW4, T6)
|
||||
|
||||
#filename "Game/" + GAME + "/Techset/TechsetDumper" + GAME + ".h"
|
||||
|
||||
|
||||
@@ -4,10 +4,7 @@
|
||||
|
||||
#set DUMPER_HEADER "\"VertexShaderDumper" + GAME + ".h\""
|
||||
|
||||
#if GAME == "IW3"
|
||||
#define FEATURE_IW3
|
||||
#define IS_DX9
|
||||
#elif GAME == "IW4"
|
||||
#if GAME == "IW4"
|
||||
#define FEATURE_IW4
|
||||
#define IS_DX9
|
||||
#elif GAME == "IW5"
|
||||
|
||||
Reference in New Issue
Block a user