stk-code_catmod/data/shaders/sps_00_solid.xml
2018-04-12 16:31:01 +08:00

132 lines
6.1 KiB
XML

<spshader>
<!--
Notice: boolean Y or N here is case-sensitive
name: The name of the shader (cannot be empty), you have to make sure
no duplicated name will be introduced, and "_skinned" word is
reserved for automatic skinned mesh shader adding.
fallback-shader: The name of the shader to be used when advanced
lighting is off, make sure that shader is loaded first
(default is empty). STK will load list of sps*.xml
files in ascending order from a directory.
transparent: If Y, than this shader will be used in transparent pass
(default N).
drawing-priority: The larger this number, the later the meshes using
this shader will be drawn. Only useful in transparent
shader where drawing order matters because of alpha
blending (default 0 which means order doesn't
matter).
use-alpha-channel: If Y, this shader is going to access alpha channel
from mesh texture layers. It's used to hint STK not
to encode colorization mask for this material using
this shader which it will overwrite the alpha
channel (default N).
use-tangents: If Y, than meshes using this shader will have tangents
and bitangents defined and you can access them in shader
(default N).
srgb: Sample mesh texture layers in srgb or not (in 6 Ys / Ns), when
advanced lighting is off, srgb will always be false,
default (Y Y N N N N), even if any texture layer is unused in
shader, you cannot skip it from the above Y / N array.
You can only specific 1st and shadow pass of shader in .xml
-->
<shader-info name="solid" fallback-shader="" transparent="N"
drawing-priority="0" use-alpha-channel="N" use-tangents="N"
srgb="Y Y N N N N"/>
<!--
use-function: Specify function to be run before drawing meshes with
this shader:
alphaBlendUse will be suitable for drawing alpha blend material.
additiveUse will be suitable for drawing additive material.
ghostUse will be suitable for drawing object with translucent
effect with face culling and depth buffer writing on.
unuse-function: Specify function to be run after drawing meshes with
this shader (none at the moment).
vertex-shader: Specify the vertex shader, it will search in the
directory of the location of this xml file first, if not
found it will search in the official shader directory.
Notice: if you use #stk_include in your shader file, STK
will only search the include header in official shader
directory.
fragment-shader: Specify the fragment shader, searching rule is the
same as above.
skinned-mesh-shader: Specify the skinned mesh version of the vertex
shader, searching rule is the same as above. You
have to make sure the uniforms and the textures
used in both skinned mesh / non-skinned mesh
shader are the same.
-->
<first-pass use-function="" unuse-function="" vertex-shader="sp_pass.vert"
fragment-shader="sp_solid.frag" skinned-mesh-shader="sp_skinning.vert">
<prefilled-textures>
<!--
prefilled-textures: Define the prefilled textures used in
shaders, they will be the same for all
meshes drawn using this shader.
name: Name of the texture used in shader (cannot be empty).
file: Filename of the texture, it will search using the order
in pushed texture searching directory
(cannot be empty).
srgb: Sample in srgb or not (specify in Y/N, default is N).
When advanced lighting is off, srgb will always be
false.
sampler: nearest, nearest_clamped, bilinear,
bilinear_clamped, trilinear, trilinear_clamped
and semi_trilinear are possible right now, default
is trilinear.
Example:
<prefilled-texture name="name_used_in_shader" file="texture.png"
srgb="Y" sampler="trilinear"/>-->
</prefilled-textures>
</first-pass>
<shadow-pass use-function="" unuse-function=""
vertex-shader="sp_shadow.vert" fragment-shader="white.frag"
skinned-mesh-shader="sp_skinning_shadow.vert">
</shadow-pass>
<!--
uniform-assigners: List of uniform assigners functions to be auto-run
when "use" the shader which set the uniform
variables in shader, currently there are:
shadowCascadeUniformAssigner will set the current shadow
cascade being drawn.
windDirectionUniformAssigner will set the wind direction.
zeroAlphaUniformAssigner should be used in transparent shader.
fogUniformAssigner will set 0 / 1 if fog is enabled in track.
ghostAlphaUniformAssigner will set ghost (kart) color based on sun
color of track.
You have to specify the uniform name in shader together with the
bundled uniform-assigners.
Currently you can automatically assign to uniform type int, float,
mat4, vec4, vec3 and vec2 only.
-->
<uniform-assigners>
<uniform-assigner name="layer"
function="shadowCascadeUniformAssigner"/>
</uniform-assigners>
</spshader>