Skip to content

Graphical Changes

Blixibon edited this page Feb 18, 2021 · 15 revisions

This article is an overview for changes in Mapbase which alter the game's graphics or visuals and have a visible effect in-game.

For the most part, Mapbase is supposed to be "invisible" to players so it could maintain a vanilla feel and serve as a blank slate to work from without having to obligate to a new visual style brought on by "improvements". For graphics and visuals, Mapbase makes strictly objective or optional changes which are intended to serve at least one of the following purposes:

  • Fixing issues which annoy mappers trying to use existing features.
  • Providing more options for presentation without interfering with existing visuals.
  • Making it easier for mappers to opt into different art styles.
  • Providing controllable effects for simple utility purposes.

Despite the strict criteria for including these kinds of changes, Mapbase has grown to contain a lot of them. It also makes shader changes which require special responsibilities for custom materials.

Projected textures


Main article: Projected textures

Mapbase overhauls projected textures to function similarly to later Source games. To fix most of the issues with projected textures, Mapbase uses shader code originating from the Alien Swarm SDK and certain snippets or open-source repositories. See the main article for more information.

Warning:  Some of the changes require materials to use custom shaders. See Shader changes for more information.

Radial fog


Mapbase uses radial fog, a fog calculation method which draws fog radially and doesn't change as you rotate the camera. Normally, Half-Life 2 uses "planar" fog, which is calculated as a plane and changes as you rotate the camera. You could often see past it by rotating the camera and looking at the edge of your screen.

Radial fog was introduced in Left 4 Dead and has been used in all Valve games ever since. Mapbase used Half-Life 2: Downfall's repo as a guide for porting the involved shader code from the Alien Swarm SDK.

Warning:  Radial fog requires materials to use custom shaders. See Shader changes for more information.

Dynamic RTT shadow angles


Mapbase uses Saul Rennison's dynamic RTT shadow angles from the VDC, which means shadows draw their direction from nearby lights and don't stay in one constant direction. This feature is off by default and must be enabled through an input/keyvalue in shadow_control, an option from later Source games.

Fun fact: This was originally implemented by accident.

Brush phong (phong on LightmappedGeneric)


"Brush phong" means phong reflections on brush shaders like SDK_LightmappedGeneric. It highlights regions of a face when lit by a projected texture. This effect originated from City 17: Episode One and you could find more information on their ModDB page.

Warning:  Brush phong requires materials to use custom shaders. See Shader changes for more information.

Parallax Corrected Cubemaps


Mapbase adds parallax corrected cubemaps, a technique implemented by Brian Charles and popularized by this video. It was implemented in Mapbase via this VDC article. In order to use parallax corrected cubemaps, you must create a parallax_obb brush entity filling in the entire room. The brush must be a box. You then go to the env_cubemaps you wish to be parallax corrected and add your new parallax_obb entity to the "Cubemap Bounds" keyvalue.

Warning:  Parallax corrected cubemaps require materials to use custom shaders and also require the map to be compiled using Mapbase's VBSP. See Shader changes and Map Compilers for more information.

Tree sway


Mapbase adds support for $treeSway, a special feature introduced in Left 4 Dead and used in all Valve games ever since. It allows trees to "sway" with the wind. Some existing tree models have been given additional skins which use $treeSway. Mapbase used Half-Life 2: Downfall's repo as a guide for porting the involved shader code from the Alien Swarm SDK.

Warning:  Tree sway requires materials to use custom shaders. See Shader changes for more information.

L4D post-processing and DOF control


Mapbase adds support for postprocess_controller and env_dof_controller, which include special post-processing effects introduced in Left 4 Dead. Mapbase used Momentum's public repo as a guide for porting the involved code from the Alien Swarm SDK.