Replacing ARB shaders
This table should summarize the current state for every ARB shader.
Filename | Type | Status | Replacement | Testing instructions & Comments | |
---|---|---|---|---|---|
heatHazeWithDepth.vfp | Material | OK (2019.05.26) | heatHazeWithDepth.?s | map test/glass
everything behind glass should be warped as you strafe along it | |
heatHazeWithAlphaDepth.vfp | Material | OK (2019.09.15) | heatHazeWithAlphaDepth.?s | Volta 2 Cauldron / setviewpos -880 390 -2700 45 80 15.
The underwater stones are darkened with increasing layers of water on top of them (link). This FM has its own copy of ARB shader. Three more FMs have a copy, but don't use their materials with this shader. | |
heatHaze.vfp | Material | OK (2019.09.14) | heatHaze.?s | Accountant1 / setviewpos -2020 -2570 -125 20 130 0
Rain drops cause waves, which warp the picture of the ground. | |
heatHazeWithMask.vfp | Material | OK (2019.09.14) | heatHazeWithMask.?s | A Night To Remember / setviewpos 4500 -1500 -1210 -90 0 0 (noclip)
When looking up from the bloody water, the ceiling is distorted: that's this shader working. | |
HeatHazeWithMaskAndDepth.vfp | Material | OK (2019.09.15) | HeatHazeWithMaskAndDepth.?s | Used by water_clear material, which is almost everywhere.
For instance, in Accountant1 in sewers at setviewpos -2150 -1720 -445 45 -180 0, water surface distorts floor. | |
heatHazeWithMaskAndBlur.vfp | Material | OK (2019.09.15) | heatHazeWithMaskAndBlur.?s | Currently used only in material water_blurred.
A Night To Remember / setviewpos 6370 -1500 -1350 50 30. Look closer into pot: carrots are not only warped, but also blurred. | |
heatHazeWithMaskAndVertex.vfp | Material | DEAD (2019.09.15) | heatHazeWithMaskAndVertex.?s | Only used in legacy textures/sfx/vpring3 material, which is only used in as a part of caco_lightninghit particle in Requiem FM.
However, the mentioned particle is not referenced in that FM, and is not even loaded. | |
ambientEnvironment.vfp | Material | DEAD (2019.09.14) | ambientEnvironment.?s | Not used anywhere in TDM 2.0+. Was used for new ambient lighting, enabled under tdm_ambient_method 2. Still present in all materials under if (global5==2).
See the original thread and probably disclaimer in wiki article. | |
ambientEnvVertexBlend.vfp | Material | DEAD (2019.09.14) | ambientEnvVertexBlend.?s | A rare special case of ambientEnvironment (link)
Mentioned in St. Alban's Cathedral and NHAT, but seems to be as dead as the ambientEnvironment.vfp. | |
fresnel.vfp | Material | OK (2019.09.14) | fresnel.?s | Accountant1 / setviewpos -2260 -2030 -130 30 -150 0 (better enable lantern)
This puddle is rendered with this shader (no idea about its effect). It seems to be the only usage across all FMs. | |
metaball.vfp | Material/FM | Needs REPACK!!! | metaball.?s | In the Black / setviewpos 4800 3350 600 30 -90 0.
You should see on the TV screen: bright yellow spots on blue background; moving, merging, and splitting. If the screen looks uniform without any spots, then it is broken. | |
rotoedge.vfp | Postprocessing | OK (2019.09.14) | rotoedge.?s | This is optional/test postprocess shader (reference).
Enabled by g_testPostProcess textures/postprocess/rotoedge on any map. WS3 and WS4 missions have custom version of the material, but don't use it anywhere. | |
soft_particle.vfp | Ambient (particles) | OK (2019.09.14) | soft_particle.?s | Set r_useSoftParticles 1 and check e.g. fire.
Start NewJob, go to setviewpos 390 -1440 45 45 22 0 (noclip). Soft particles remove the blocky quadrilateral edges from the piece of wood. | |
environment.vfp | Ambient | OK (2019.05.26) | environment.?s | map test/glass
fake yellow reflections should be visible on the windows | |
bumpyEnvironment.vfp | Ambient | OK (2019.05.27) | bumpyEnvironment.?s | PD2: All the Way Up / setviewpos 4700 -250 -250 / link
Potions should look properly: see t_useGLSL 0, r_uniformTransforms 0 for reference Be sure to check that fake reflection texture is oriented the same way. | |
(fixed pipeline) | Designed for use in the 'old stage' routine (draw_common.cpp) but at some point became the 'default' shader for GUI's, etc | OK (2019.05.26) | oldStage.?s | Check any map (e.g. test/glass) + main menu | |
(extra material stages) | Replacement for material stage frob highlight. The ARB2 version does not seem to be used anywhere? | WIP (2019.05.26) | frob.?s | Any map +r_newFrob 1
| |
(legacy gl texgen's) | Replacement for deprecated texgen code. Material stages TG_SKYBOX_CUBE/TG_WOBBLESKY_CUBE | Stable in 2.07 | cubemap.?s | (insert map name here - Hidden Hands 1?)
| |
(legacy gl texgen's) | Replacement for deprecated texgen code. Light material "fogLight" | Stable in 2.07 | fog.?s | (insert map name here - Heart of Lone Salvation?)
| |
(legacy gl texgen's) | Replacement for deprecated texgen code. Light material "blendLight" | Stable in 2.07 | blend.?s | (insert map name here - Closemouthed Shadows?)
| |
shadow.vp | ARB2 to GLSL manual conversion | Stable in 2.07 | stencilshadow.?s | (insert map name here - Closemouthed Shadows?)
| |
ambientInteraction.vfp/ambient_cubic_light.vfp | ARB2 to GLSL manual conversion | Stable in 2.07 | ambientInteraction.?s | (insert map name here - Closemouthed Shadows?)
| |
test_direct.vfp/interaction_direct.vfp/cubic_light_point.vfp/cubic_light_proj.vfp/test_cubic_light_point.vfp/test_cubic_light_proj.vfp | ARB2 to GLSL manual conversion | Stable in 2.07 | interaction.?s | (insert map name here - Closemouthed Shadows?) | |
(fixed pipeline) | DepthPass | OK (2019.05.27) | depthAlpha.?s | Check any map (e.g. test/glass).
Used for depth prepass, so if it uses incompatible vertex transform, everything would depth-fight like crazy. |
|
test.vfp
interaction.vfp |
Unused (?) ARB2 shaders | ||||
cookMath_pass1.vfp
cookMath_pass2.vfp brightPass_opt.vfp blurx.vfp blury.vfp finalScenePass_opt.vfp |
Shaders to check |
List of shader Types:
- Material: shader filename is referenced in a stage of stock material definition.
- Currently, each of these shaders exists in both ARB and GLSL version, and GLSL version is used only if r_forceGlglPrograms is set.
- FM: shader supplied or overrided by a particular FM --- most likely, specified in material definition.
- Ambient: shader is loaded directly by C++ code and used during rendering, independent of any light source.
- Interaction: shader is loaded directly by C++ code and used during rendering, in a light-surface interaction.
- Postprocessing: shader used for full-screen effects after main rendering is over.
This post explains different modes for testing.
In order to set OK Status to a shader, please check that it works properly with following settings:
- r_useGLSL 1
- r_forceGlslPrograms 1 (2019.09.14: already removed)
- r_uniformTransforms 0 and 1 (both cases)
Also set the date when you checked it.
Replacement should specify which files contain the equivalent or superseding code in GLSL.
If the replacing code is active only with some settings, write those settings under filename.
Testing instructions must explain how to properly test this shader to ensure that replacement works correctly.
Write exact FM/map, coordinates, settings, what to see/expect, etc.