Shaders List
For Static Objects:
shaders/std_effects/lightonly.fx - for types of objects< it supports textures with alpha channels (not
support skinning)
shaders/std_effects/lightonly_dc.fx - same as lightonly.fx but with constant diffuse color instead of
diffuse texture
shaders/std_effects/lightonly_ao.fx - supported ambient occlusion map with dual UV coordinates
shaders/std_effects/lightonly_ao_?.fx - supported ambient occlusion map with dual UV coordinates
(? channel is taken as occlusion term) *
shaders/std_effects/lightonly_ao_normal.fx - supported ambient occlusion map with <*jal UV
coordinates, also supports normal map.
shaders/std_cffects/lightonly_ao_?_nomial.fx - supported ambient occlusion map with dual UV
coordinates (? channel is taken as occlusion term), also supports normal map.
shaders/std_effects/lighionly_ao_normal.fx - supported ambient occlusion map with dual UV
coordinates, also supports reflection cubemap.
shaders/std_effects/lightonly_ao_?_normal.fx - supported ambient occlusion map with dual UV
coordinates (? channel is taken as occlusion term), also supports reflection cubemap.
shaders/std_effects/lightonly_ao_normal_reflection.fx - supported ambient occlusion map with
dual UV coordinates, also supports normal map and reflection cubemap.
shaders/std_effects/lightonly_ao_?_normal_reflection.fx - supported ambient occlusion map with
dual UV coordinates (? channel Is taken as occlusion term), also supports normal map and reflection
cubemap.
shaders/std_effects/lightonly_light_cone.fx - shader for transparent light cones which fades
our when angle between view direction and surface normal gets 90 deg.
shaders/std_effects/lightonly_reflection.fx - same as lightonly.fx but with reflection cubemap
applied to all surface, can be used for glass, metal, plastic and other reflecting surfaces.
shaders/std_effccts/lightonly_time.fx supports diffuse map, alternative diffuse map called time
map (both diffuse and time map use 1st texture coordinates set), and time-blend map, which uses 2nd
texture coordinates set where v coordinate is also shifted as the time flows. Color value from time-blend
map multiplies color from time map, and then alpha fetched from time-blend map Is used to blend
between diffuse map and modified time map.
shadcrs/std_cffects/lightonly_norinal.fx - same as lightonly.fx but with normal map support.
shaders/std_effects/lightonly_specular.fx - same as lightonly.fx but with specular map support.
Specular map alpha channel sets the specular reflection intensity and rgb charnels set material specular
color.
shaders/sld_effects/lightonly_specular_reflection.fx - same as lightonly.fx but with both specular
map and reflection cubemap support.
shaders/std_effects/lighlonly_nomial_speailar.fx - same as lightonly.fx but with both normal map
and specular map support.
shaders/std_effects/lightonly_city_window.fx - city window material with 2 textures (window
furniture level and glass surface) and window glow color, can be used for city facades, reason to select
this shader is to use just two textures (one for facade element wall and window furniture, and second
atlas texture for window insides) for all facade elements, so they all can be rendered with one draw call
but still have a variety of different windows content.
shaders/std_effects/lighionly_city_window_reflection.fx - same as previous but with reflection
cubemap on glass surface level.
shadcrs/std_effects/lightonly_window_reflection.fx - same as "lightonly_reflection.fx ', but it
doesn't reflect where alpha channel is white, doesn't contain window glow color. Can be used for simple
windows with single texture in landmarks, apartments, etc.
shaders/std_effects/lighlonly_chrome_alpha_double_sided.fx - complex glass shader with
environment map (env. map Is not supported, its better to use simply lightonly.fx )
shaders/std_cffects/lightonly_city_ground.fx - shader with 3 maps support: 1- diffuse map, 2 -
macro dirt map (multiplied by 1st one), 3 - detail map (blended with 1 and 2 multiplication result, by
detail map alpha). Supports texture coordinates scaling for 2nd and 3rd maps.
shadcrs/std_cffects/lightonly_city_ground.fx - shader with 3 maps support: 1- diffuse map, 2 -
macro dirt map (multiplied by 1st one), 3 - detail map (blended with 1 and 2 multiplication result, by
detail map alpha). Supports texture coordinates scaling for 2nd and 3rd maps.
For Avatars:
shaders/std_effects/fxcharacter.fx - for all types of character s clothes, it supports alpha textures
and skin
shaders/std_effects/fxcharacter_nomial.fx - for all types of character's clothes, it supports diffuse
map and normal map
shadcrs/std_effccts/fxcharacter_spccular.fx - fee all types of character's clothes, it supports diffuse
map and specular map. Specular map alpha channel sets the specular reflection intensity and rgb
channels set material specular color.
shaders/std_cffects/fxcharactcr_rcflection.fx - for all types of character’s clothes, it supports
diffuse map and reflection cube map.
shaders/std_effects/fxcharacter_nomial_specular.fx - for all types of character's clothes, it
supports diffuse map, normal map and specular map.
shaders/std_effects/fxcharacter_nomial_reflection.fx - for all types of character's clothes, it
supports diffuse map, normal map and reflection cube map.
shaders/std_effects/fxcharacter_specular_reflection.fx - for all types of character's clothes, It
supports diffuse map, specular map and reflection cube map.
shaders/std_effects/fxcharacter_nomial_specular_reflection.fx - for all types of character's
clothes, it supports diffuse map, normal map, specular map and reflection cube map.
shaders/std_effects/fxcharacter_time.fx - for all types of character's clothes, It supports diffuse
map and time / time-blend maps, see information about time map usage in lightonly_time.fx reference.
shaders/std_effects/fxcharacter_skincolor_nonnal.fx - complex shader to define the color of
avatars skin.
shaders/std_effects/fxcharacter_hair.fx - for avatar's hair cuts, it supports only diffuse map.
shaders/std_effects/fxcharacter_hair_normal.fx - for avatar's hair cuts, it supports diffuse map
and normal map.
Special Shaders:
shaders/std_effects/portal.fx - to define portal's mesh in locations
Notes:
• - "7* sign in ...ao_?... Is a placeholder for the color channel where value should be fetched from,
possible values are: r, g, b, a.
Shaders marked with green are CK to be used by end-users in collada models.
Shader Parameters FAQ
Q: VShat is alpha test, it seems to do nothing, why not use alpha blend everywhere?
A: Difference between transparent and solid objects is that transparent objects need special treatment in
engine and are not so good fcr performance optimization as transparent ones. Alpha test discards all
pixels that are not solid and leaves solid ones, so object with alpha test only is technically a solid one, but
it still can use alpha channel. So here's the guideline for these parameters definition:
- if your model doesn't use textures with alpha channel then uncheck both alphaTest and alphaBlend,
otherwise
- if your model has holes or edges that you want to mask out with alpha, then consider making these
holes and edges by modeling them, if s always better to have it modeled, because in general case
anti-aliasing works only on polygon edges
- if additional modeling Is not acceptable (complex shape of edges for example), then consider using
lbit alpha and turn on only alphaTest
- only if you need smooth transition between transparent and solid parts of model or if it's
semi-transparent by the nature of material (in case of windows) then you need both alphaTest and
alphaBlend turned on. However it's better to try to avoid using alphaBlend at all possible costs.
Q: Isn't shaders with refection decreasing performance?
A: Nope, adding reflections is about that complex as adding specular map (additional fetch from texture
and couple of shader instructions), so feel free to use it wherever you need, especially on metal surfaces.
However remember that cubemaps use 6 images, so keep their resolution as low as possible to save
memory and try to reuse some limited set of generic cubemaps.
Q: vshafs the discardDepth parameter?
A: If you are not sure about it, most likely you don't need to know about it, Just leave it in its default
state, which is unchecked. Here are the conditions indicating that you need it:
- model that uses this material uses alphaBlend (if model is not transparent, then you don't need it)
- whole or almost whole model surface is transparent (If most part of your model is solid, and you use
alpha only on the cut the edges, then you don't need it)
- transparency of your model is quite high, so you don't care if ambient occlusion calculation system
will ignore it as if there were no object at all