-
Notifications
You must be signed in to change notification settings - Fork 2
Shader
devonium edited this page Jun 12, 2023
·
7 revisions
An integer representing a vmt parameter, there are also standard parameters:
- PARAM_FLAGS
- PARAM_FLAGS_DEFINED
- PARAM_FLAGS2
- PARAM_FLAGS_DEFINED2
- PARAM_COLOR
- PARAM_ALPHA
- PARAM_BASETEXTURE
- PARAM_FRAME
- PARAM_BASETEXTURETRANSFORM
- PARAM_FLASHLIGHTTEXTURE
- PARAM_FLASHLIGHTTEXTUREFRAME
- PARAM_COLOR2
- PARAM_SRGBTINT
- SHADER_PARAM_TYPE_TEXTURE
- SHADER_PARAM_TYPE_COLOR
- SHADER_PARAM_TYPE_VEC2
- SHADER_PARAM_TYPE_VEC3
- SHADER_PARAM_TYPE_VEC4
- SHADER_PARAM_TYPE_FLOAT
- SHADER_PARAM_TYPE_MATRIX
- SHADER_PARAM_TYPE_STRING
- SHADER_PARAM_TYPE_MATRIX4X2
- STDTEXTURE_LIGHTMAP
- STDTEXTURE_LIGHTMAP_FULLBRIGHT
- STDTEXTURE_LIGHTMAP_BUMPED
- STDTEXTURE_LIGHTMAP_BUMPED_FULLBRIGHT
- STDTEXTURE_WHITE
- STDTEXTURE_BLACK
- STDTEXTURE_GREY
- STDTEXTURE_GREY_ALPHA_ZERO
- STDTEXTURE_NORMALMAP_FLAT
- STDTEXTURE_NORMALIZATION_CUBEMAP
- STDTEXTURE_NORMALIZATION_CUBEMAP_SIGNED
- STDTEXTURE_FRAME_BUFFER_FULL_TEXTURE_0
- STDTEXTURE_FRAME_BUFFER_FULL_TEXTURE_1
- STDTEXTURE_COLOR_CORRECTION_VOLUME_0
- STDTEXTURE_COLOR_CORRECTION_VOLUME_1
- STDTEXTURE_COLOR_CORRECTION_VOLUME_2
- STDTEXTURE_COLOR_CORRECTION_VOLUME_3
- STDTEXTURE_FRAME_BUFFER_ALIAS
- STDTEXTURE_SHADOW_NOISE_2D
- STDTEXTURE_MORPH_ACCUMULATOR
- STDTEXTURE_MORPH_WEIGHTS
- STDTEXTURE_FRAME_BUFFER_FULL_DEPTH
- STDTEXTURE_IDENTITY_LIGHTWARP
- STDTEXTURE_DEBUG_LUXELS
HLSL type | STDConstID |
---|---|
float3 | STDCONST_EYE_POS |
float | STDCONST_CURTIME |
PixelShaderLightInfo[3] | STDCONST_LIGHT_INFO |
float3[6] | STDCONST_AMBIENT_CUBE |
float4 | STDCONST_FOG_PARAMS |
float4 | STDCONST_SHADER_CONTROLS |
float4 | STDCONST_DIFFUSE_MODULATION |
- PSREG_SELFILLUMTINT = 0
- PSREG_DIFFUSE_MODULATION
- PSREG_ENVMAP_TINT__SHADOW_TWEAKS
- PSREG_SELFILLUM_SCALE_BIAS_EXP
- PSREG_AMBIENT_CUBE
- PSREG_ENVMAP_FRESNEL__SELFILLUMMASK
- PSREG_EYEPOS_SPEC_EXPONENT
- PSREG_FOG_PARAMS
- PSREG_FLASHLIGHT_ATTENUATION
- PSREG_FLASHLIGHT_POSITION_RIM_BOOST
- PSREG_FLASHLIGHT_TO_WORLD_TEXTURE
- PSREG_FRESNEL_SPEC_PARAMS
- PSREG_LIGHT_INFO_ARRAY
- PSREG_SPEC_RIM_PARAMS
- PSREG_FLASHLIGHT_COLOR
- PSREG_LINEAR_FOG_COLOR
- PSREG_LIGHT_SCALE
- PSREG_FLASHLIGHT_SCREEN_SCALE
- PSREG_SHADER_CONTROLS = 32
What index should the texture occupy in pixel shader
Sets the vertex shader
Sets the pixel shader
ParamIndex Shader:AddParam(string paramName, ParamType paramType, string defValue)
Creates a vmt param
https://learn.microsoft.com/en-us/windows/win32/direct3d9/multiple-render-targets
Sets the count of vertex texcoords
Shader:SetParamDefValue(ParamIndex, string defValue)
shader:SetParamDefValue(PARAM_BASETEXTURE, "_rt_ResolvedFullFrameDepth")
Shader:SetPixelShaderConstantM(int index, VMatrix m, int rowsCount = 4)
Each rigester in HLSL can carry up to 4 float values
Thus, to write a 4x4 matrix we need 4 registers
shader:SetPixelShaderConstantM(0, Matrix(
{{1, 0, 0, 0},
{0, 1, 0, 0},
{0, 0, 1, 0},
{0, 0, 0, 1}}), 4)
float4x4 m : register(c0);
//first row : register(c0);
//second row : register(c1);
//third row : register(c2);
//fourth row : register(c3);
Shader:SetVertexShaderConstantM(int index, VMatrix m, int rowsCount = 4)
Each rigester in HLSL can carry up to 4 float values
Thus, to write a 4x4 matrix we need 4 registers
shader:SetVertexShaderConstantM(0, Matrix(
{{1, 0, 0, 0},
{0, 1, 0, 0},
{0, 0, 1, 0},
{0, 0, 0, 1}}), 4)
float4x4 m : register(c0);
//first row : register(c0);
//second row : register(c1);
//third row : register(c2);
//fourth row : register(c3);
Shader:SetPixelShaderConstantFP(int index, ParamIndex paramIndex)
Puts the value from the vmt parameter to the specified register
local Color = shader:AddParam("$CColor", SHADER_PARAM_TYPE_COLOR)
shader:SetPixelShaderConstantFP(0, Color)
float4 color : register(c0);
Shader:SetVertexShaderConstantFP(int index, ParamIndex paramIndex)
Puts the value from the vmt parameter to the specified register
local Color = shader:AddParam("$CColor", SHADER_PARAM_TYPE_COLOR)
shader:SetVertexShaderConstantFP(0, Color)
float4 color : register(c0);
Shader:SetPixelShaderStandardConstant(int index, STDConstID index)
Shader:SetVertexShaderStandardConstant(int index, STDConstID index)
Shader:BindTexture(Sampler samplerID, ParamIndex index)
Binds the texture from the vmt parameter in the sampler
shader:BindTexture(0, PARAM_BASETEXTURE)
sampler BaseTexture : register(s0);
Shader:BindCubeMap(Sampler samplerID, ParamIndex index)
Binds the texture from the vmt parameter in the sampler
shader:BindTexture(0, BASETEXTURE)
sampler BaseTexture : register(s0);
Shader:BindBumpMap(Sampler samplerID, ParamIndex index)
Binds the texture from the vmt parameter in the sampler
shader:BindTexture(0, BASETEXTURE)
sampler BaseTexture : register(s0);
Shader:BindStandardTexture(Sampler samplerID, STDTextureID stdTexture)
Enables/Disables flashlight support
When enabled occupies:
sampler4 for ShadowDepthSampler
sampler5 for NormalizeRandRotSampler
sampler6 for FlashlightSampler
Shader:SetStencilFailOperation(STENCILOPERATION stencilOP)
Shader:SetStencilZFailOperation(STENCILOPERATION stencilOP)
Shader:SetStencilPassOperation(STENCILOPERATION stencilOP)
Shader:SetStencilCompareFunction(STENCILCOMPARISONFUNCTION stencilCompFn)
Shader:SetCullMode(CullMode cullMode)
int bitfield possible values:
MATERIAL_VAR_DEBUG
MATERIAL_VAR_NO_DEBUG_OVERRIDE
MATERIAL_VAR_NO_DRAW
MATERIAL_VAR_USE_IN_FILLRATE_MODE
MATERIAL_VAR_VERTEXCOLOR
MATERIAL_VAR_VERTEXALPHA
MATERIAL_VAR_SELFILLUM
MATERIAL_VAR_ADDITIVE
MATERIAL_VAR_ALPHATEST
MATERIAL_VAR_MULTIPASS
MATERIAL_VAR_ZNEARER
MATERIAL_VAR_MODEL
MATERIAL_VAR_FLAT
MATERIAL_VAR_NOCULL
MATERIAL_VAR_NOFOG
MATERIAL_VAR_IGNOREZ
MATERIAL_VAR_DECAL
MATERIAL_VAR_ENVMAPSPHERE
MATERIAL_VAR_NOALPHAMOD
MATERIAL_VAR_ENVMAPCAMERASPACE
MATERIAL_VAR_BASEALPHAENVMAPMASK
MATERIAL_VAR_TRANSLUCENT
MATERIAL_VAR_NORMALMAPALPHAENVMAPMASK
MATERIAL_VAR_NEEDS_SOFTWARE_SKINNING
MATERIAL_VAR_OPAQUETEXTURE
MATERIAL_VAR_ENVMAPMODE
MATERIAL_VAR_SUPPRESS_DECALS
MATERIAL_VAR_HALFLAMBERT
MATERIAL_VAR_WIREFRAME
MATERIAL_VAR_ALLOWALPHATOCOVERAGE
MATERIAL_VAR_IGNORE_ALPHA_MODULATION
int bitfield possible values:
MATERIAL_VAR2_LIGHTING_UNLIT
MATERIAL_VAR2_LIGHTING_VERTEX_LIT
MATERIAL_VAR2_LIGHTING_LIGHTMAP
MATERIAL_VAR2_LIGHTING_BUMPED_LIGHTMAP
MATERIAL_VAR2_DIFFUSE_BUMPMAPPED_MODEL
MATERIAL_VAR2_USES_ENV_CUBEMAP
MATERIAL_VAR2_NEEDS_TANGENT_SPACES
MATERIAL_VAR2_NEEDS_SOFTWARE_LIGHTING
MATERIAL_VAR2_BLEND_WITH_LIGHTMAP_ALPHA
MATERIAL_VAR2_NEEDS_BAKED_LIGHTING_SNAPSHOTS
MATERIAL_VAR2_USE_FLASHLIGHT
MATERIAL_VAR2_USE_FIXED_FUNCTION_BAKED_LIGHTING
MATERIAL_VAR2_NEEDS_FIXED_FUNCTION_FLASHLIGHT
MATERIAL_VAR2_USE_EDITOR
MATERIAL_VAR2_NEEDS_POWER_OF_TWO_FRAME_BUFFER_TEXTURE
MATERIAL_VAR2_NEEDS_FULL_FRAME_BUFFER_TEXTURE
MATERIAL_VAR2_IS_SPRITECARD
MATERIAL_VAR2_USES_VERTEXID
MATERIAL_VAR2_SUPPORTS_HW_SKINNING
MATERIAL_VAR2_SUPPORTS_FLASHLIGHT