S&box Wiki

Shader Reference

Variables

Variables will show up in Material Editor. They're defined like this.

float3 g_vColorTint < UiType( Color ); Default3( 1.0, 1.0, 1.0 ); UiGroup( "Color,10/20" ); >; Float3Attribute( g_vColorTint, g_vColorTint ); // Only needed if your variable is not showing up in the material editor

A list of attributes you can expose can be seen below

Data Type Attribute Function
bool BoolAttribute
int/uint IntAttribute
float FloatAttribute
float2 Float2Attribute
float3 Float3Attribute
float4 Float4Attribute
float/float2/float3/float4 TextureAttribute

UiType

Describes how the variable should be represented in the editor.

Name Description
VectorText Text boxes and sliders (this is the default)
Slider A slider type. Usually combined with a Range setting.
Color A Color picker, works on float3 or float4.
Texture A texture picker
CheckBox On or off, generally used on bool

Default

The Default lets you specify the default value for the variable. If you're filling a float2, it should be Default2, if you're filling a float4 it should be Default4 etc.

UiGroup

The UiGroup is used to sort the variable into a group, subgroup and define its order. So for example, given this..

float4 BorderColorL < UiType( Color ); Default4( 0.0, 0.0, 0.0, 1.0 ); UiGroup( "Border,10/Colors,10/1" ); >; float4 BorderColorT < UiType( Color ); Default4( 0.0, 0.0, 0.0, 1.0 ); UiGroup( "Border,10/Colors,10/2" ); >; float4 BorderColorR < UiType( Color ); Default4( 0.0, 0.0, 0.0, 1.0 ); UiGroup( "Border,10/Colors,10/3" ); >; float4 BorderColorB < UiType( Color ); Default4( 0.0, 0.0, 0.0, 1.0 ); UiGroup( "Border,10/Colors,10/4" ); >;

You end up with this

image.png

The format is:

Heading,Order / Group,Order / VariableOrder

Internal Shader Includes

This is a list of shaders that are included internally:

Shader Includes
ambient_cube.fxc
baked_lighting_constants.fxc
bindlessfastpath.fxc
common.fxc
descriptor_set_support.fxc
encoded_normals.fxc
instancing.fxc
light_probe_volume.fxc
lighting_model.fxc
math_general.fxc
morph.fxc
msaa_offsets.fxc
pcss.fxc
reflection.fxc
sbox_lighting.fxc
sbox_pixel.fxc
sbox_shared.fxc
sbox_vertex.fxc
sfm_lighting_nocombos.fxc
sky.fxc
sun_shadowing.fxc
system.fxc
texture_blending.fxc
transform_buffer.fxc
turbo.fxc
volumetric_fog.fxc
vr_common.fxc
vr_common_features.fxc
vr_common_ps_code.fxc
vr_common_ps_input.fxc
vr_common_samplers.fxc
vr_common_vs_code.fxc
vr_common_vs_input.fxc
vr_cubemap_fog.fxc
vr_detail_texture.fxc
vr_environment_map.fxc
vr_foliage_animation.fxc
vr_foliage_uv_animation.fxc
vr_gradient_fog.fxc
vr_lighting.fxc
vr_per_view_lighting_constants.fxc
vr_pre_baked_vertex_animation.fxc
vr_shared_standard_features.fxc
vr_shared_standard_ps_input.fxc
vr_shared_standard_vs_code.fxc
vr_shared_standard_vs_input.fxc
vr_spherical_vignette.fxc
vr_tools_vis.fxc
vs_decompress.fxc