LUX
		
		
		
		Jump to navigation
		Jump to search
		
| LUX | |
|---|---|
|  In Alpha development | |
| Wiki | |
| Type | Modification | 
| Developers | ShiroDkxtro2 | 
| Engine |  Source | 
| Platforms | (only in PC) | 
| Based on |  Source 2013 | 
LUX is a mod specifically made and developed for use in  Source 2013 Singleplayer and
 Source 2013 Singleplayer and  Source 2013 Multiplayer.
 Source 2013 Multiplayer.
The Project is to entirely rewrite all existing "SDK_" Shaders, that come with the SDK and all those available in  Mapbase.
 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 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 Note:Linux is not officially supported. MacOS is also not officially supported. Users of said system will have to either patche- toglto 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, 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 . This was a direct result of LUX development, although the focus was mainly on  as their code is publicly available. 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 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 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
Template:ModernNote
 Important:LUX does not use any leaked code. Features like $phongalbedoboost(only in csgo) are not rocket-science. They can safely be recreated without the use of leaked code.
Important:LUX does not use any leaked code. Features like $phongalbedoboost(only in csgo) are not rocket-science. They can safely be recreated without the use of leaked code.
Features required for  Mapbase compatibility
 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. 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. 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 + - Also needed for 
- $phongexponentfactor From   , with LUX also on , with LUX also on 
- $phongalbedoboost From  - Its just - Its justBaseTexture * $PhongAlbedoBoost... No leaked code!
- $basemapluminancephongmask From  + +
- $selfillumtexture Deprecated since  - This used to be obsolete - 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 for brushes + AND models (only in + AND models (only in )+ )+
Features that are being discarded
- $envmapsphere and related - These features have been removed since  and are obsolete. 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... - 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
 Note:$basealphaenvmapmask requires inverted masks
Note:$basealphaenvmapmask requires inverted masks
LUX_LightMappedGeneric
 Note:Caveat - Has higher priority than $selfillum/$selfillummask.
Note:Caveat - Has higher priority than $selfillum/$selfillummask. Note:Caveat - $selfillumtexture has higher priority than both. Note:Caveat - $selfillumtexture has higher priority than both.
 Important:$basealphaenvmapmask does no longer require a flipped mask.
Important:$basealphaenvmapmask does no longer require a flipped mask.
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. 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. Counter-Strike: Global Offensive.
 Note:When no $phongexponenttexture is specified, Mask will be 1.0f! 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. 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.- $phongforcebasealphaenvmapmaskand- $phongforcenormalmapalphaenvmapmask
- $basemapalphaphongmask no longer makes $phong ignore the $bumpmap.
 Note:This will make materials that previously used this intentionally, look different. 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 . ( 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. Note: Probably better as their own pages to document all parameters.



























