NewLight Point: Difference between revisions
MyGamepedia (talk | contribs) No edit summary |
MyGamepedia (talk | contribs) |
||
Line 510: | Line 510: | ||
{{{varcom|mat_unlock_gfx_highend_unsupported|0|[[Bool]]|When enabled this convar will unlock extreme graphics options. There will be a significant FPS drop when running game on ULTRA or INSANE configs. Game will consume upto 3 gigs of VRAM when some of the extreme graphics options have been enabled. These high end graphics config options are not officially supported. Don't enable this unless you have at least 3.5 GHZ quad core CPU with GTX 1080. These options are mainly for debugging and modders.}} | {{{varcom|mat_unlock_gfx_highend_unsupported|0|[[Bool]]|When enabled this convar will unlock extreme graphics options. There will be a significant FPS drop when running game on ULTRA or INSANE configs. Game will consume upto 3 gigs of VRAM when some of the extreme graphics options have been enabled. These high end graphics config options are not officially supported. Don't enable this unless you have at least 3.5 GHZ quad core CPU with GTX 1080. These options are mainly for debugging and modders.}} | ||
{{varcom|nr_lights_quality|4| | {{varcom|nr_lights_quality|4|Integer|Sets lights quality, state (for specific entities), enable/disable effects. Controlled by '''Dynamic Light Quality''' option. Only 7 values are available here. | ||
0 (POTATO) - Disabled muzzle flash light (regardless of {{command|muzzleflash_light}}), lighting from batteries (regardless of {{command|cl_battery_dlights}}), light sources from [[dynlightscript.txt]], dynamic lights are also disabled for some other entities. Halflambertion is disabled. New specular is disabled. Bumpmaps are disabled. Lights are disabled completely in secondary cameras (monitors, water, etc). Overlaying on viewmodel looks pretty broken. Light is not smoothed out (most noticeable in the least bright areas). | 0 (POTATO) - Disabled muzzle flash light (regardless of {{command|muzzleflash_light}}), lighting from batteries (regardless of {{command|cl_battery_dlights}}), light sources from [[dynlightscript.txt]], dynamic lights are also disabled for some other entities. Halflambertion is disabled. New specular is disabled. Bumpmaps are disabled. Lights are disabled completely in secondary cameras (monitors, water, etc). Overlaying on viewmodel looks pretty broken. Light is not smoothed out (most noticeable in the least bright areas). |
Revision as of 09:39, 1 January 2025



newLight_Point
is a point entity available in Black Mesa. It is one of the many new lighting entities available. Black Mesa incorporates a new lighting system which utilizes Deferred lighting to create dynamic lighting system with dynamic shadows, which allows to complement and quite enliven some scenes, it is also nice effect for moving objects, such as trains. It is also include fine tuning Godrays and lightcookies.


Represented by class CNewLightPoint
.
Keyvalues
- Name (targetname) <string>
- The name that other entities refer to this entity by.
- Parent (parentname) <targetname>
- The name of this entity's parent in the movement hierarchy. Entities with parents move with their parent.
- Pitch Yaw Roll (Y Z X) (angles) <angle> !FGD
- This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
Important:Have huge differences if you use texture for your newLight_Point.
- Enabled (Enabled) <choices>
- Enable/Disable this Entity.
Determines if the light is off at level start.
- 0: Enabled
- 1: Disabled
- Appearance (FlareStyle) <choices>
- Appearance presets.
Tip:Static lightmapped lights reduces performance with custom appearance (especially near displacements). If this cause problems, you can use replace your static lights with new lights, if used correctly - in most cases this will significantly preserve performance.
- Light Color (LightColor) <color255>
- This is the color of the sunlight.
Determines color of light.
- Light Ambient Color (LightColorAmbient) <color255>
- This is the ambient color of the sunlight.
Determines color of shadows that light source creates.
|
- Light Intensity (Intensity) <float>
- RGB * Intensity.
Brightness of the light.
Note:With 0 will not draw, process and specular shader be disabled.
- SpecularMultiplier (SpecMultiplier) <float>
- 0 to 1 RGB * Intensity * SpecularMultiplier.
Brightness of the specular shader from this light source.
|
- Range (Range) <float>
- How far the light source illuminates. Measured in Hammer Units.
Important:It greatly affects optimization, less is better.
|
- Light Type (LightType) <choices>
- Determines the light type.
- 0: Static - shadows are cast only by static objects (prop_static, geometry, etc.). Lighting does not update if it has parent (use if part scene has no large moving parts, or shadow accuracy is not important).
- 1: Stationary - shadows are cast by static and dynamic objects, lighting does not update if it has a parent.
Important:Shadows for dynamic props update, but baked for geometry. That means that shadows from func_physbox and other dynamic geometry will never update, and shadows from other geometry on them too.
- 2: Dynamic - lighting is not baked at all. Shadows are cast by static and dynamic objects, lighting updates if it does have a parent. This light is quite expensive, and should only be used for moving light sources, or if your scene have moving geometry.
|
- HasShadow (HasShadow) <choices>
- Do you want this light to have shadows?
Determines whether the light source will cast shadows. Remember that default choices is No.
- 0: No
- 1: Yes
|
- ShadowMapLOD (ShadowLod) <choices>
- Resolution of ShadowMap used by this light.
Determines quality of shadows. 1024 is very expensive, use it only in places where it's really needed, in most cases 512 is good alternative. 256 produces the blurriest shadows, but it is also the cheapest.
- 0: 256
- 1: 512
- 2: 1024
|
- ShadowFaceX (ShadowFaceX) <choices>
- Shadow Enabled for this Face ?
Determines whether the given side lighting will display shadows.
- 0: Enabled
- 1: Disabled
- ShadowFaceX_Minus (ShadowFaceX_Minus) <choices>
- Shadow Enabled for this Face ?
Determines whether the given side lighting will display shadows.
- 0: Enabled
- 1: Disabled
- ShadowFaceY (ShadowFaceY) <choices>
- Shadow Enabled for this Face ?
Determines whether the given side lighting will display shadows.
- 0: Enabled
- 1: Disabled
- ShadowFaceY_Minus (ShadowFaceY_Minus) <choices>
- Shadow Enabled for this Face ?
Determines whether the given side lighting will display shadows.
- 0: Enabled
- 1: Disabled
- ShadowFaceZ (ShadowFaceZ) <choices>
- Shadow Enabled for this Face ?
Determines whether the given side lighting will display shadows.
- 0: Enabled
- 1: Disabled
- ShadowFaceZ_Minus (ShadowFaceZ_Minus) <choices>
- Shadow Enabled for this Face ?
Determines whether the given side lighting will display shadows.
- 0: Enabled
- 1: Disabled
- NearZ (NearZ) <float>
- NearZ used by shadowmap camera for this light.
Determines distance at which light source will cast shadows.
- DepthBias (DepthBias) <float>
- DepthBias - Offset added to depth values in shadowmaps.
|
- SlopeDepthBias (SlopeDepthBias) <float>
- Slope Depth Bias - For surfaces having aliasing due to steep angles with light.
|
- NormalBias (NormalBias) <float>
- While rendering objects into shadow maps, each vertex will be moved along -ve Normal direction, giving it an appearance of shrinking while rendering to shadow maps. This property determines the amount of Units to be moved. Helps with shadow aliasing.
|
Bug*:Numbers lower than 0.8 can cause huge graphics problems.
|
- ShadowRadius (ShadowRadius) <float>
- Radius of shadow edges for soft shadows. If its value is negative, code will auto assign a value depending on shadowlod. These code based values can be adjusted via convars nr_shadow_rad_High,nr_shadow_rad_Med and nr_shadow_rad_Low.
Determines shadow blur. Low numbers are expensive to render.
|
- Enable Texture Light (bTexLight) <choices>
- Enable Texture Ligh.
Determines whether the given light source uses .vtf texture from game files (just like env_projectedtexture). With NewLight_Point, this technically works like a cube. The best example is the batteries that use lights/lightcookie_battery.vtf.
- 0: Disabled
- 1: Enabled
|
Tip:Lightcookie texture works just like static cubemap textures. Follow this steps to create your own lightcookie texture.
Note:One of the most expensive features, use wisely. If shadows enabled - it can work with lags even with powerful PC.
- Texture name for TexLight (texName) <string>
- Determines which texture will use light source. It use .vtf files, not .vmt.
- .Enable Prop Only Mode (bNegLight) <choices>
- Enable Prop Only Mode.
- 0: Disabled
- 1: Enabled
- LightnGodRayMode (LightnGodRayMode) <choices>
- 0:Light 1:Godrays 2:Both Light and GodRays.
- 0: Light
- 1: Godrays
- 2: Both Light and GodRays
|
Note:The game will think that the godrays is used if choice is
Godrays
orBoth Light and GodRays
, even if godrays is turned off.
- EnableGodRays (EnableGodRays) <choices>
- Enable GodRays.
Determines whether godrays are enabled or not at map start.
- 0: Disabled
- 1: Enabled
Warning:You can have only 40 point lights with godrays enabled simultaneously, otherwise game will crash with this error message.
Note:Godrays are draw and process even with closed areaportals.
|
- Density (Density) <float>
- Density Controls the length of rays/volumetric shadows. 1.0 should work in 99% cases. Good values to start from: 0.5 to 1.5.
|
- Weight (Weight) <float>
- Weight Controls the intensity of volumetric shadow. Blocking of rays by geometry. Good values to start from: 0.1 - 10.0.
|
- Decay (Decay) <float>
- Decay NOT being used.
- Exposure (Exposure) <float>
- Exposure Controls the intensity of Rays during blending pass with main scene. 2.0 is a good start. Good values are 1.0 - 10.0.
|
- DistFactor (DistFactor) <float>
- DistFactor Controls the falloff of rays / length. 1.0f is a good starting value increase or decrease in the increments of 0.1. 0.0 will make the rays dissappear only disk will be rendererd.
|
- DiskRadius (DiskRadius) <float>
- Radius of Disk/circle of sun in texturespace. 1.0 will be full screen 0.5 is half screen etc.
|
Note:With 0 - will not render.
- ColorInner (ColorInner) <color255>
- This is the color of the inner circle.
|
Note:Unlike lighting - brightness of inner depends on fourth number which can be written here.
- ColorRays (ColorRays) <color255>
- This is the color of the rays.
|
Note:Unlike lighting - brightness of rays depends on fourth number which can be written here.
- GodRaysType (GodRaysType) <choices>
- GodRaysType.
- 0: Normal
- 1: Fancy
|
- DiskInnerSizePercent (DiskInnerSizePercent) <float>
- Used only in Fancy Gaphics Mode. Disk inner circle radius = DiskRadius * DiskInnerSizePercent.
|
Note:With 0 - will not render.
- ColorOuter (ColorOuter) <color255>
- Used only in Fancy Mode. This is the color of the outer circle.
|
Note:Unlike lighting - brightness of outer depends on fourth number which can be written here.
- Ell_FR_ConstA (Ell_FR_ConstA) <float>
- This is fancy Godrays disk size.
Note:For fancy Godrays only.
|
- Ell_FR_ConstB (Ell_FR_ConstB) <float>
- This is fancy Godrays disk distortion.
Note:For fancy Godrays only.
|
- EEll_SR_ConstA (EEll_SR_ConstA) <float>
- This is fancy Godrays disk hole size.
Note:For fancy Godrays only.
|
- EEll_SR_ConstB (EEll_SR_ConstB) <float>
- This is fancy Godrays disk hole distortion.
Note:For fancy Godrays only.
|
- Ell_RRF_ConstA (Ell_RRF_ConstA) <float>
- This is fancy Godrays inner size.
Note:For fancy Godrays only.
|
- Ell_RRF_ConstB (Ell_RRF_ConstB) <float>
- This is fancy Godrays inner distortion.
Note:For fancy Godrays only.
|
- RotSpeed (RotSpeed) <float>
Determines rotating speed of fancy rays, 0 - don't rotate, negative number - will rotate to left.
Note:For fancy Godrays only.
|
- RotPatternFreq (RotPatternFreq) <float>
Determines count of fancy rays in frame, with negative number will deny RotSpeed +/- effect.
Note:For fancy Godrays only.
|
- RenderInWorldSpace (m_bEnableWorldSpace) <choices>
- Disables disks if this enabled.
- m_fAlphaDiskInner (m_fAlphaDiskInner) <float>
- m_fAlphaDiskOuter (m_fAlphaDiskOuter) <float>
- UseToneMapRays (m_bUseToneMapRays) <choices>
- 0: Enabled
- 1: Disabled
- UseToneMapDisk (m_bUseToneMapDisk) <choices>
- 0: Enabled
- 1: Disabled
- ShadowPass_Brush (m_bSRO_Brush) <choices>
- Do we want to Render Brushes in shadow passes for this light?
- 0: YES
- 1: NO
- ShadowPass_StaticProp (m_bSRO_StaticProp) <choices>
- Do we want to Render StaticProps in shadow passes for this light?
- 0: YES
- 1: NO
- ShadowPass_DynProp (m_bSRO_DynProp) <choices>
- Do we want to Render Dynamic Props in shadow passes for this light?
- 0: YES
- 1: NO
- ShadowPass_AlphaTest (m_bSRO__Trans) <choices>
- Do we want to Render AlphaTested Objects in shadow passes for this light?
- 0: YES
- 1: NO
bUseOldFallOff (bUseOldFallOff) <choices>!FGD- Deprecated.
Enable old falloff similar to light/light_spot.
- 0: No
- 1: Yes
falloffConstant (falloffConstant) <integer>!FGD- Deprecated.
Constant (work only if bUseOldFallOff enabled).
falloffLinear (falloffLinear) <integer>!FGD- Deprecated.
Linear (work only if bUseOldFallOff enabled).
falloffQuadratic (falloffQuadratic) <integer>!FGD- Deprecated.
Quadratic (work only if bUseOldFallOff enabled).
Inputs
- SetColorLight <color255 >
- Change Light's Color value. Doesn't affect the godrays.
- SetIntensityForLight <float >
- Change Light's intensity value. Doesn't affect the godrays.
- TurnOnGodRays <void>
- Turn the Godrays on.
- TurnOffGodRays <void>
- Turn the Godrays off.
- TurnOn <void>
- Turn the light on.
- TurnOff <void>
- Turn the light off.
- Toggle <void>
- Toggle the light's current state.
Shadow map slots
Shadow map slots is how many lights with shadows you can have per level. There are 3 separate shadow map slots, High
(for lights with 1024
value for ShadowMap LOD
property), Medium
(for lights with 512
value for ShadowMap LOD
property) and Low
(for lights with 256
value for ShadowMap LOD
property).
In High
and Medium
you can have 48 separate shadow maps, for Low
you can have 47 separate shadow maps (143 shadow maps in total).
Each spot light with shadows takes 1 shadow map slot, so you can have 48/47 spot lights with shadows, if they are using the same value for ShadowMap LOD
property.
Each point light with shadows takes 6 shadow map slots. This is due to point light isn't just omnidirectional light source, it's 6 spot lights in one entity. This means that you can have 8 point lights with shadows, if they are using the same value for ShadowMap LOD
property. You can increase this value if you need, just disable shadows for one of the shadow face properties.
If one of the shadow map slots is full - you will not be able to have shadows for more lights with such shadow quality, you will need to use other value for ShadowMap LOD
property.
Point lights and spot lights doesn't counts separately. You can't have 48 spot lights with 8 point lights, but you can have 6 spot lights with 7 point lights.
You can free up shadow map slots with Kill
input. So, you can place triggers which will Kill
lights that player can't see and spawn new lights via point_template (uncheck the second flag for point_template, this prevents some bugs). This helps a lot when you want to have many dynamic lights in different areas.
Important to note that due to some engine bugs you can't use many lights with shadows. Some tests show that 9th point light cause lights with shadows to be very glitchy. This can be done with spot lights as well. So don't be surprised if at some point you find something like this.
It looks like you can workaround it if you will switch ShadowMap LOD
property values from higher to lower.
Lighting behavior With VIS and areaportals
Static type
Static type is the most stable, since its shadows are baked in and updates only with save loads or while lighting turning on. It shows all shadows even with closed areaportal.
Stationary type
Shadows for static props and brushes are baked, but not for physics props and other dynamic models. This means that shadows from dynamic models will disappear if they are hidden by a closed areaportal or if VIS is hiding such objects. Shadows for static props and brushes will not disappear.
In some cases, this can be noticeable if dynamic model creates a large shadow.
Dynamic type
Shadows for static props and world geometry are baked, but not for dynamic models and brushes. This means that shadows from dynamic models and brushes will disappear if they are hidden by a closed areaportal or if VIS is hiding such objects. Shadows for static props and world geometry will not disappear. Moving lighting will update shadows for static props and world geometry, even with closed areaportal.
Dedicated ConVars
{Cvar/Command | Parameters or default value | Descriptor | Effect |
---|---|---|---|
nr_shadow_max_passes_per_frame | 16 | Float | Frame per second in shadowmaps. The higher the value, the smoother and faster the shadows from objects can change. The recommended value is 25, not higher.
![]() ![]() |
nr_shadow_quality | 4 | Integer | Sets shadow quality and enable/disable shadows for all or certain objects. Controlled by Dynamic Shadow Quality option. Only 5 values are available here.
0 (Disabled) - Shadows are completely disabled. 1 (POTATO) - Shadows are available for world geometry and displacements, only for Static and Stationary light types. The shadows are very pixelated. The player's flashlight also gets very simple shadows with "stairs". 2 (Low) - Added brush entities in shadowmaps, only for Static and Stationary light types. 3 (Medium) - All the shadows are also available for Dynamic light type. 4 (Hight) - Added dynamic models in shadowmaps for Stationary and Dynamic. ![]() |
mat_unlock_gfx_highend_unsupported | 0 | Bool | When enabled this convar will unlock extreme graphics options. There will be a significant FPS drop when running game on ULTRA or INSANE configs. Game will consume upto 3 gigs of VRAM when some of the extreme graphics options have been enabled. These high end graphics config options are not officially supported. Don't enable this unless you have at least 3.5 GHZ quad core CPU with GTX 1080. These options are mainly for debugging and modders. |
nr_lights_quality | 4 | Integer | Sets lights quality, state (for specific entities), enable/disable effects. Controlled by Dynamic Light Quality option. Only 7 values are available here.
0 (POTATO) - Disabled muzzle flash light (regardless of muzzleflash_light), lighting from batteries (regardless of cl_battery_dlights), light sources from dynlightscript.txt, dynamic lights are also disabled for some other entities. Halflambertion is disabled. New specular is disabled. Bumpmaps are disabled. Lights are disabled completely in secondary cameras (monitors, water, etc). Overlaying on viewmodel looks pretty broken. Light is not smoothed out (most noticeable in the least bright areas). 1 (Low) - Allowed muzzle flash light, lighting from batteries, enabled light sources from dynlightscript.txt, other dynamic lights are also enabled for some other entities. Enabled bumpmaps for models. 2 (Medium) - Enabled bumpmaps for models. Lights in secondary cameras, but most effects is disabled. 3 (Hight) - Enabled bumpmaps for brushes. Halflambertion with new specular is enabled. Fixed overlaying on viewmodel. Light is smoothed out. 4 (Very Hight) - Bumpmaps are also uncompressed, this makes lighting on surfaces more detailed. 5 (INSANE) - All the effects is enabled in secondary cameras. 6 (DevOnly) - This one for developers only. Includes uncompressed buffers and 32-bit depth. Don't use if you are general player or modder. ![]() |
nr_shadow_res | 0 | Integer | Affects the quality of shadows. Controlled by Dynamic Shadow Memory option. Only 4 values are available here.
0 (Hight) - Hight quality. 1 (Medium) - Medium quality. 2 (Low) - Low quality. 3 (POTATO) - Very low quality. ![]() |
r_4way_minimal_mode_override | -1 | Integer | Enable/disable bumpmaps for Lightmapped_4WayBlend. Since one material of this shader provides 4 bumpmaps at once, disabling them will significantly affect performance.
-1/0 - Enabled. 1/2 - Disabled. ![]() |
np_gr_quality | 2 | Integer | Enable/disable godrays. Controlled by God Rays option or Enable God Rays button (if used VGUI).
0 - Disabled. 1/2 - Enabled. 1 supposed to enable godrays only for newlight_dir and 2 for point lights and newlight_dir, but currently both values enable both types. |
np_gr_quality_sample_count | 3 | Integer | Amount of samples for godrays. This affects the quality/detail of the rays. Controlled by God Rays option, although the original game never changes the value (always 3). Min value is 0, max is 4. The max value is not recommended, it has a huge impact on frame rate, at the same time it does not create a big difference in the game. |
np_gr_quality_pass_count | 1 | Integer | Pass count. Not very clear what exactly this affects, but it significantly reduces performance, and Fancy Rays also become pretty buggy. Controlled by God Rays option, although the original game never changes the value (always 1). Min value is 0, max is 4. Use the default value only. |

Bugs/Limitations
See also
- New Lights Editor
- newLight_Spot
- newLight_Dir
- NewLights_settings
- godrays_settings
- env_cascade_light
- New Specular
- newxog_volume
- Lighting
- Adding Light
- Intermediate Lighting
- Advanced Lighting
- Effect flags (dynamic light effects)
- Tool textures (for Block light)
- BlackMesa XenEngine: Part 4 – Lighting & Shadows (page from Black Mesa developer about new lights)
- BlackMesa XenEngine: Part2 – How a Frame is Rendered (page from Black Mesa developer about how a frame rendered, include Godrays.)
- BlackMesa XenEngine: Part1 – Heavily Modified Source Engine (page from Black Mesa developer about Black Mesa engine, better known as Xengine)