LUX
Jump to navigation
Jump to search
LUX | |
---|---|
![]() | |
Wiki | |
Type | Modification |
Developers | ShiroDkxtro2 |
Engine | ![]() |
Platforms | (only in PC) |
Based on | ![]() |
LUX is a mod specifically made and developed for use in Source 2013 Singleplayer and
Source 2013 Multiplayer.
The Project is to entirely rewrite all existing "SDK_" Shaders, that come with the SDK and all those available in Mapbase.
Goals
- Overhauled/Cleaned
materialsystem\stdshaders\
Folder
- Drastically decreased compile-times for all Shaders
Note:Even on a good CPU it can take half a day, or more. As an example for LUX. Compiling the entirety of LUX_LightMappedGeneric takes around 30 seconds on 4 cores @4.1GHz
- SM3.0 Shaders Only
- Why?: ps20b and below is too limiting. The lack of available constant registers causes extreme branching and a lot of 'combos'. Making the code terrible to read and complicated. This disincentives Modders.
Note:Linux is not officially supported. MacOS is also not officially supported. Users of said system will have to either patche
togl
to work with SM3.0 or use DxVK.- Template:ModernNote
- Totally rewritten .h, .cpp, .fxc files
- More Documentation for Shaders, their parameters, how they work and any possible caveats
Note:You might have noticed Articles like $lightwarptexture, $detail, UnlitTwoTexture and $envmapmask getting major updates from ShiroDkxtro2,
- where new information about Caveats and bugs were added for
. This was a direct result of LUX development, although the focus was mainly on
as their code is publicly available.
- Template:ModernNote
- See also:
Planned Features
. This includes old features such as $selfillumtexture and newer features like $phongalbedoboost(only in).
- Fixing most Parameter "bugs:" and other caveats
- See also:
Stock Shaders VS LUX
- Easy way of disabling features
Important:A custom Pre-Processor program has been made. It automatically sets
// STATIC:
's to predefined values depending on#define
's in an included header file.- Template:ModernNote
- Mapbase compatibility
Note:Replacing SDK_ Shaders in SDK mods, SDK2013CE or Mapbase mods should be as simple as replacing the
stdshaders\
Folder.- Template:ModernNote
Planned Features
This is a list of new features that are being implemented, or features that will be ported/recreated from newer branches such as
Template:ModernNote

Features required for
Mapbase compatibility
- $phongdisablehalflambert from
+
- Radial Fog for all "Geometry" Shaders
- Spline-Ropes
- Parallax Corrected Cubemaps ( PCC )
- $envmapmask + $bumpmap on VertexLitGeneric
- Replacement for the "Postprocessing" Controller Shader
- Replacement for the "Engine_post" Shader from
- Hammer $blendmodulatetexture previewing fix.
- Brush $phong
- Treesway
New Features
- In
Models utilizing Model Lightmapping can use $bumpmap. Additionally all Model shaders will be able to utilize this feature. Except they have $phong.
Important:The Lightmap does not do bumped-lighting using the bumpmap. Only named-lights/projected textures will be able to do so.
- Template:ModernNote
Features ported/recreated/revived
- $phongdisablehalflambert From
+ - Also needed for
- $phongexponentfactor From
, with LUX also on
- $phongalbedoboost From
- Its just
BaseTexture * $PhongAlbedoBoost
... No leaked code! - $basemapluminancephongmask From
+
- $selfillumtexture Deprecated since
- This used to be obsolete
- Template:ModernNote
- See also: PBR Shaders in the community commonly have a $emissiontexture parameter that does EXACTLY what $selfillumtexture does in LUX.
- Water Shader with $flowmap Support - From
- $envmaplightscale From
for brushes
+ AND models (only in
)+
Features that are being discarded
- $envmapsphere and related - These features have been removed since
and are obsolete.
- $bumpmask and related
Features that won't be ported/recreated/revived
- $basealphaenvmapmaskminmaxexp from
- This parameter is not yet documented on the VDC, it is also unclear what exactly it does...
- $EnvMapLightScaleMinMax from
Not functional - FOR NOW
- $emissiveblend - Non-Existant. Planned for later.
- $distancealpha - Non-Functional. Planned for later.
- $ssbump - Non-Functional. Planned for later.
- $detailblendmode
10 & 11
. - Non-Functional. Planned for later.
Stock Shaders VS LUX
Todo: Move This to their own pages or something like that.
LightMappedGeneric
Stock Shaders

LUX_LightMappedGeneric

Note:Caveat - $selfillumtexture has higher priority than both.

VertexLitGeneric
Stock Shaders
Always
$envmaplightscale(only in ).
Without $Bumpmap
Template:ModernBug
Template:ModernNote
With $Bumpmap
Template:ModernBug
Template:ModernNote
With $Phong
LUX_VertexLitGeneric
Without $Bumpmap
- $detailblendmode 10-11 planned. If possible.
- $selfillumfresnel Exists now.
- $lightwarptexture Exists now.
With $Bumpmap
- $detailblendmode 5-9 work.
- $detailblendmode 10-11 planned. If possible.
- $envmapmask Exists now.
- $selfillummask Exists now.
- $selfillum_envmapmask_alpha Exists now.
- $selfillumfresnel + $normalmapalphaenvmapmask Works now.
With $Phong
- $detailblendmode 8-9 work now.
- $detailblendmode 10-11 planned. If possible.
Note:Will use entirety of $basetexture, without being masked.
- $phongwarptexture works. ( does not work in
).
- $phongalbedoboost Exists now. Used to be (only in
.)
- $phongalbedoboost + $detail Works. Does not work in
Counter-Strike: Global Offensive.
Note:When no $phongexponenttexture is specified, Mask will be 1.0f!
- $envmap Can now be not-masked by using a new parameter (
$phongenvmapnomask
)
Important:By default the original masking for the $envmap will be replicated as to not have disparity. However it can now be overriden using two new parameters.
$phongforcebasealphaenvmapmask
and$phongforcenormalmapalphaenvmapmask
- $basemapalphaphongmask no longer makes $phong ignore the $bumpmap.
Note:This will make materials that previously used this intentionally, look different.
- $selfillumfresnel + $normalmapalphaenvmapmask will no longer multiply the $envmap by
0.0f
- $phongdisablehalflambert Exists now. ( Used to be (only in
+)
- $phongexponentfactor Exists now for
. ( Used to be (only in
)
- $basemapluminancephongmask Exists now. ( Used to be (only in
+)
- $phongalbedoboost Exists now. ( Used to be (only in
+)
Todo: Add LUX_WorldVertexTransition and other LUX_ Shaders to this list of comparison and changes.
Note: Probably better as their own pages to document all parameters.