NewLight Point/Bugs and limitations: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
 
(11 intermediate revisions by the same user not shown)
Line 6: Line 6:
-->
-->


====Deferred lighting have issues with transparency====
====Transparency issues with deferred lighting====
Deferred lighting is incompatible with transparency. In some cases, it shows one of the lighting layers applied to the color of the transparent texture.
None of the available shaders that support transparency can render shadows and lighting on on objects if transparency is enabled. Usually other games and engines use deferred shading for opaque objects, then switch to forward rendering for transparent objects, but {{bms|1}} rendering is not doing so.
 
This bug is currently available by default for [[VertexLitGeneric]] and [[Lightmapped_4WayBlend]], if they are using [[$translucent]] material parameter.
<br>
<gallery mode=packed heights=250px>
<gallery mode=packed heights=250px>
File:C BugHah.jpg| frame |No [[$translucent]]. Behind the wall placed lighting and some models with small room.
File:LDSOTM_.jpg| frame |Example from {{code|bm_c2a5g}}, expected that the shadows from the ropes and the plastic road cone on the window will be rendered, but this doesn't happen.
File:C BugDamn.jpg| frame |With [[$translucent]]. Now player see everything, but only what lighted.
File:LDSOTM_p2ce.jpg| frame |The same scene, but with {{csgo|4}} cascade lighting which is not using gbuffer.
</gallery>
</gallery>
<br>
 
Deferred lighting is also incompatible with transparency for [[VertexLitGeneric]] and [[Lightmapped_4WayBlend]], it shows one of the lighting layers applied to the color of the transparent texture.
<gallery mode=packed heights=250px>
<gallery mode=packed heights=250px>
File:firethinghaha.jpg| frame |An example with model.
File:C BugHah.jpg| frame |No [[$translucent]]. Behind the wall placed lighting and some models with in a small room.
File:C BugDamn.jpg| frame |With [[$translucent]]. Now the player can see everything, but only what the light covers.
</gallery>
</gallery>
The same happen if used [[$decal]] material parameter.
 
<br>
This issue also applies to brushes with no transparency, but which is a part of a [[func]] entity with a transparent brush (the only exception is {{ent|func_detail}}). This happen even if transparency used for shader that doesn't shows one of the lighting layers. Doesn't work only if brush has alpha texture.
<gallery mode=packed heights=250px>
File:GbufferDecalBrush.jpg| frame |An example.
</gallery>
This problem also applies to brushes which don't use [[$translucent]], but which is a part of a [[func]] entity with a transparency brush (the only exception is {{ent|func_detail}}). This happen even if transparency used for shader that doesn't shows one of the lighting layers.
<br>
<gallery mode=packed heights=250px>
<gallery mode=packed heights=250px>
File:C BSFL1.jpg| frame |This sticker is brush, that is part of [[func_brush]], which uses glass as part of itself. Flashlight off.
File:C BSFL1.jpg| frame |This sticker is brush, that is part of [[func_brush]], which uses glass as part of itself. Flashlight off.
File:C BSFL2.jpg| frame |This sticker is brush, that is part of [[func_brush]], which uses glass as part of itself. Flashlight on.
File:C BSFL2.jpg| frame |This sticker is brush, that is part of [[func_brush]], which uses glass as part of itself. Flashlight on.
</gallery>
</gallery>
If a func entity or model uses [[render mode]] {{code|Glow}} (3) or {{code|World Space Glow}} (9) - they will show one of the lighting layers. This means that you can't use this renders to make your brush transparent, you will have to create a separate texture.
 
<br>
The same will happen if used [[$decal]] material parameter.
<gallery mode=packed heights=350px>
File:GbufferDecalBrush.jpg| frame |Example from {{code|bm_c1a1c}}.
</gallery>
 
Similar issue will happen if [[overlay]]/[[decal]] is applied on a geometry with transparency.
<gallery mode=packed heights=350px>
File:C MS1.jpg| frame |The metal speaker is overlay that use [[$alphatest]], but lighting from the [[Item healthcharger (Black Mesa)|health charger]] is still visible, because the overlay is applied on the transparent window.
</gallery>
 
If a func entity or model uses [[render mode]] {{code|Glow}} (3) or {{code|World Space Glow}} (9) - they will show one of the lighting layers as well. This means that you can't use these renders to make your brush transparent, you will need a separate texture with alpha texture and material with [[$translucent]].  
<gallery mode=packed heights=250px>
<gallery mode=packed heights=250px>
File:WSGAGFI.jpg| frame |Clear example. The box with fire extinguisher and brush uses the render modes.
File:WSGAGFI.jpg| frame |Example with multiple props and brush entity, they are using {{code|Glow}} render mode.
</gallery>
</gallery>
Other render modes will have similar effect, but only for brushes.
 
<br>
Using other render modes (except {{code|Normal}} (0) and {{code|Don't Render}} (10)) on a brush entity will cause many rendering issues. Example in this short [https://youtu.be/p_I336XxbVE video].
 
The [[VertexLitGeneric#Cloak|cloak]] material shader parameter will also cause this issue, even if object is not transparent at the moment.
<gallery mode=packed heights=250px>
<gallery mode=packed heights=250px>
File:RenderModesBuggyMine.gif| frame |Clear example.
File:C_ASSASINDF.jpg| frame |Example in {{code|bm_c2a3c}}. The [[Npc human assassin|female assassin]] is not transparent, but the lighting layer is still showing through.
</gallery>
</gallery>
Similar issue happen with [[overlays]]/[[decals]] on brushes with [[$translucent]].
 
<br>
There is no much workarounds. In some cases, $alphatest can be used, because it can give similar to $translucent result, it will also allow object to create dynamic shadows.
<gallery mode=packed heights=350px>
File:C MS1.jpg| frame |Metal speaker is overlay that use [[$alphatest]], but lighting of the health charger visible anyway, because overlay pasted on the transparency window.
</gallery>
In some cases, use [[$alphatest]], if it'll give similar to [[$translucent]] resualts, with this your surface also will cast dynamic shadows.
<br>
<gallery mode=packed heights=250px>
<gallery mode=packed heights=250px>
File:C AF1.jpg| frame |[[$translucent]].
File:C AF1.jpg| frame |[[$translucent]].
File:C AF2.jpg| frame |[[$alphatest]].
File:C AF2.jpg| frame |[[$alphatest]].
</gallery>
</gallery>
{{Confirm|Is there more shaders with this issue ?}}
{{Confirm|Is there more ways to get transparency issues ?}}
{{Confirm|Is there more ways to get this bug ?}}
----
 
====Deferred lighting doesn't shows on transparency materials====
Very noticeable with shaders that doesn't shows one of the lighting layers applied to the color of the transparent texture. Properly works with [[$alphatest]].
<gallery mode=packed heights=250px>
File:LDSOTM_.jpg| frame |An example. Expected that you will see shadows from the ropes and the plastic road cone on the window.
File:LDSOTM_p2ce.jpg| frame |The same moment, but in {{p2ce|4}} (this game uses {{ent|env_cascade_light}} from {{csgo|4}}.)
</gallery>
----
----


Line 70: Line 62:
----
----


====Brush polygons may clip deferred lighting====
====Brush polygons clipping deferred lighting====
Rare phenomenon, sometimes brush polygons clip deferred lighting, the reason that cause this is unknown. Can be easy fixed if divide invalid brush into two parts.
Sometimes brush polygons clip deferred lighting. Can be fixed if divide invalid brush into two parts.
{{note|Most often happen if map used fast compile settings.}}
{{note|Usually happens if used fast compile settings for a map.}}
<br>
<gallery mode=packed heights=250px>
<gallery mode=packed heights=250px>
File:C BPl0.jpg| frame |One of examples (mat_wireframe 0).
File:C BPl0.jpg| frame |First example with {{cmd|mat_wireframe|0}}.
File:C BPl1.jpg| frame |One of examples (mat_wireframe 1).
File:C BPl1.jpg| frame |First example with {{cmd|mat_wireframe|1}}.
</gallery>
</gallery>
<br>
<gallery mode=packed heights=250px>
<gallery mode=packed heights=250px>
File:C BPb0.jpg| frame |One of examples (mat_wireframe 0).
File:C BPb0.jpg| frame |Second example with {{cmd|mat_wireframe|0}}.
File:C BPb1.jpg| frame |One of examples (mat_wireframe 1).
File:C BPb1.jpg| frame |Second example with {{cmd|mat_wireframe|1}}.
</gallery>
</gallery>
----
----


====Deferred lighting shines through [[nodraw]] texture====
====Deferred lighting shines through [[nodraw]] texture====
Not a bug, but a pattern. Unfortunately, this cannot be controlled in any way, you should keep in mind this before paint [[nodraw]] to escape situations like in the gifs.
The [[toolsnodraw]] texture doesn't create dynamic shadows for dynamic light sources, there is no option for this feature to be enabled/disabled.
{{workaround|If your dynamic light source illuminates face that player never see - use cheap textures with low resolution and which don't use material shader parameters, a good solution would be tools/toolsblack or any [[UnlitGeneric]] texture.}}
{{workaround|If a dynamic light source illuminates face that the player will never see, use cheap textures with low resolution, a good solution would be [[Tool textures (Source)|toolsblack]] or any [[UnlitGeneric]] texture.}}
<br>
<gallery mode=packed heights=350px>
<gallery mode=packed heights=350px>
File:cSLB1.gif| frame |Black Mesa - bm_c2a2a.
File:Bmsgb_lightingshinesthroughnodrawtexture_1.jpg | frame |The scene from player's position in {{code|bm_c2a2a}} map.
File:cSLB2.gif| frame |Black Mesa: Blue Shift - bs_c0m0c.
File:Bmsgb_lightingshinesthroughnodrawtexture_2.jpg| frame |The scene from the opposite side.
</gallery>
</gallery>
----
----
Line 160: Line 149:
----
----


====New lights doesn't work with [[3D Skybox]]====
====Gbuffer doesn't draw in [[3D Skybox]]====
Don't use new lights in your 3D skyboxes, none of them will work at all.
Due to gbuffer is not included for {{ent|sky_camera}}, this causes gbuffer effects not displayed in 3D Skybox, including lighting and godrays.
<br>
<br>
<gallery mode=packed heights=350px>
<gallery mode=packed heights=350px>
File:C NLDW3DS.jpg| frame |An example. We see that deferred lighting and Godrays works fine, but 3D Skybox doesn't draw both.
File:C NLDW3DS.jpg| frame |Example, ''sky_camera'' is used in this small area with model for {{ent|npc_alien_grunt_melee}} and {{ent|newlight_point}}, but the lighting and godrays is not visible in 3D Skybox.
</gallery>
</gallery>
----
----


====Materials reload cause new lights disappear====
====Materials reload causes new lights with enabled shadows to disappear====
Only for new lights which uses shadows. This issue happen when you open Hammer while game is opened, when you disable speculars with <code>mat_specular 0</code>, when you reload all matelias with <code>mat_reloadallmaterials</code>, e. t. c. Can be fixed with save reload.
Only for new lights which uses shadows. This issue happen when you open Hammer while game is opened, when a client disable [[$envmap|cubemaps]] with {{cmd|mat_specular|0}}, when a client reload all materials with {{cmd|mat_reloadallmaterials}}, e. t. c. Can be fixed with save reload.
<br>
<br>
<gallery mode=packed heights=250px>
<gallery mode=packed heights=250px>
File:DLDAMR_1.jpg| frame |Before <code>mat_reloadallmaterials</code>.
File:DLDAMR_1.jpg| frame |Before <code>mat_reloadallmaterials</code>.
File:DLDAMR_2.jpg| frame |After <code>mat_reloadallmaterials</code>.
File:DLDAMR_2.jpg| frame |After <code>mat_reloadallmaterials</code>. Note that the dynamic lighting from the tripod spotlight disappeared.
</gallery>
----
 
====Gbuffer incorrect work with cloak====
Cloak is a material shader parameter for <code>VertexLitGeneric</code> shader, female assassins uses it to make self transparent when they need it. Godrays all time fully render through them, same for deferred lighting and xog, even
<br>
<gallery mode=packed heights=250px>
File:C_ASSASINRAYS.jpg| frame |bm_c2a3c, the sun's rays are not cut off despite the fact that she is completely untransparent right now.
File:C_ASSASINDF.jpg| frame |bm_c2a3c, she is completely untransparent, but we still can see one of lighting layers.
</gallery>
----
 
====Deferred lighting incorrect work with [[Customize Character]] window====
For some reason [[Customize Character]] take player's screen, inserts it into character preview window and show one of deferred lighting layers.
<br>
<gallery mode=packed heights=350px>
File: BruhCharacter.jpg| thumb |An example with zombie scientist model.
</gallery>
</gallery>
----
----
Line 262: Line 234:
----
----


====Moving lights with shadows are buggy====
====Shadow acne with moving lights====
In some cases, your attached lights may have buggy shadows if parent is moving.
[https://digitalrune.github.io/DigitalRune-Documentation/html/3f4d959e-9c98-4a97-8d85-7a73c26145d7.htm Shadow acne] (also can be called "projection clipping") appears for moving lights with shadows if parent is moving at high speed. This issue appears even if used a very high value for {{cmd|nr_shadow_max_passes_per_frame}} console variable. This issue causes black squares or dark floors due to incorrect shadow overlaying. Multiple examples can be seen in this 1 minute long [https://youtu.be/l5t8Mdks8FM video].
<br>
<gallery mode=packed heights=350px>
<gallery mode=packed heights=350px>
File:CSDAIWALOLWS1.gif| frame |An example.
File:bmsgb shadowacnewithmovinglights 2.jpg| frame |Example in {{code|bm_c1a1c}}. Before the elevator falls.
File:cDLWSMB2.gif| frame |bm_c1a1c.
File:bmsgb shadowacnewithmovinglights 3.jpg| frame |Example in {{code|bm_c1a1c}}. During the elevator falls.
</gallery>
</gallery>
Can be partially fixed with <code>NormalBias</code> value increasing. Also, if your moving light is just simple decoration (the puzzle crystals from [[Xen]] is great example) - highly recommended to leave shadows disabled to save limits and performance.
 
Can be partially fixed with <code>NormalBias</code> value increasing. Also, if your moving light is just simple decoration (the puzzle crystals from [[Xen]] is great example), it is highly recommended to disable shadows to save limits and performance.
<gallery mode=packed heights=350px>
<gallery mode=packed heights=350px>
File:MLWSAR1.jpg| frame |<code>NormalBias</code> - 1
File:MLWSAR1.jpg| frame |<code>NormalBias</code> - 1
Line 276: Line 248:
----
----


====Shadows incorrect work with [[newLight_Point]] cube edges====
====Shadowmaps split boundary artifacts (newLight_Point only)====
Because [[newLight_Point]] is cube technically - we get shadows incorrect behavior with edges of this cube, this cause their serious distortion a.k.a. clipping. You only can minimize this if set shadow quality to maximum.
{{ent|newLight_Point}} uses 1–4 separate shadowmaps to cover its projection volume. When an object is positioned close to the boundary between these shadowmaps, the shadow may appear broken, clipped, or misaligned. This artifact is most noticeable with point lights using low-resolution shadowmaps, where precision issues become more visible.
<br>
<gallery mode=packed heights=250px>
<gallery mode=packed heights=350px>
File:Nlpb shadowmapssplitboundaryartifacts 1.jpg| frame |
File:cC SIWENCE0.jpg| frame |One of many examples.
File:Nlpb shadowmapssplitboundaryartifacts 2.jpg| frame |
File:Ccc_SIWENCE1.jpg| frame |One of many examples.
File:Nlpb shadowmapssplitboundaryartifacts 3.jpg| frame |
File:cC SIWENCE_2.jpg| frame |One of many examples.
</gallery>
</gallery>
----
----
Line 294: Line 265:
----
----


====Shadows doesn't appear immediately after reload====
====Shadows doesn't appear instantly after save load====
After game save and load shadows don't appear for short time, maybe it has something to do with caching. This appearance duration may vary depending on power of user PC and how much of lights with enabled shadows are turned on at level, but in any case user will get this issue even with most powerful PC.
The game doesn't load shadowmap for dynamic lights instantly, which is why light sources remain without shadows for a short time. This issue doesn't depends on how powerful device the game running at. The more dynamic lights with shadows level has, the more noticeable this issue, because for the game it takes longer to load shadowmaps. Example in a short [https://youtu.be/jZG12lzzS-s video].
{{workaround|Enable in [[worldspawn]] settings <code>Level Fade In</code> to hide this problem, this setting also will hide some other issues with loads that avaible in {{bms|4}}.}}
<gallery mode=packed heights=400px>
<br>
File:bmsgb_ShadowsDoesn'tAppearInstantlyAfterSaveLoad_1.jpg| frame |Before save load.
<gallery mode=packed heights=450px>
File:bmsgb_ShadowsDoesn'tAppearInstantlyAfterSaveLoad_2.jpg| frame |After save load (note that the large shadow from the bucket disappeared).
File:cSDAIAR1.gif| frame |With no <code>Level Fade In</code>. It seems like the shadows flicker, which makes it unpleasant for eyes.
File:cSDAIAR2.gif| frame |With <code>Level Fade In</code>. Everything looks fine.
</gallery>
</gallery>
{{workaround|Enable in {{ent|worldspawn}} settings <code>Level Fade In</code> to hide this issue, this setting also will hide some other issues with loads in {{bms|4}}. {{ent|env_fade}} entity can be used for this as well.}}
----
----



Latest revision as of 04:11, 15 September 2025

Todo: Rework this page.

Transparency issues with deferred lighting

None of the available shaders that support transparency can render shadows and lighting on on objects if transparency is enabled. Usually other games and engines use deferred shading for opaque objects, then switch to forward rendering for transparent objects, but Black Mesa rendering is not doing so.

Deferred lighting is also incompatible with transparency for VertexLitGeneric and Lightmapped_4WayBlend, it shows one of the lighting layers applied to the color of the transparent texture.

This issue also applies to brushes with no transparency, but which is a part of a func entity with a transparent brush (the only exception is func_detail). This happen even if transparency used for shader that doesn't shows one of the lighting layers. Doesn't work only if brush has alpha texture.

The same will happen if used $decal material parameter.

Similar issue will happen if overlay/decal is applied on a geometry with transparency.

If a func entity or model uses render mode Glow (3) or World Space Glow (9) - they will show one of the lighting layers as well. This means that you can't use these renders to make your brush transparent, you will need a separate texture with alpha texture and material with $translucent.

Using other render modes (except Normal (0) and Don't Render (10)) on a brush entity will cause many rendering issues. Example in this short video.

The cloak material shader parameter will also cause this issue, even if object is not transparent at the moment.

There is no much workarounds. In some cases, $alphatest can be used, because it can give similar to $translucent result, it will also allow object to create dynamic shadows.

Confirm:Is there more ways to get transparency issues ?

Clipping near new light BBOX volume corners (newLight_Point only)

If a client is near newlight_point's BBOX volume corner, the lighting starts clipping on the client side in a form of triangle shape. The size of clip depends on how close the client to the BBOX corner volume, it can be minimal or hide lighting completely. This bug disappears (the triangle shape goes away) if the client is in BBOX or is not near one of the 4 corners. The distance and how far/close should be the client directly depends on BBOX volume size.


Brush polygons clipping deferred lighting

Sometimes brush polygons clip deferred lighting. Can be fixed if divide invalid brush into two parts.

Note.pngNote:Usually happens if used fast compile settings for a map.

Deferred lighting shines through nodraw texture

The toolsnodraw texture doesn't create dynamic shadows for dynamic light sources, there is no option for this feature to be enabled/disabled.

PlacementTip.pngWorkaround:If a dynamic light source illuminates face that the player will never see, use cheap textures with low resolution, a good solution would be toolsblack or any UnlitGeneric texture.

Objects with refract shader self refract if illuminated by deferred render

Objects with refract shader in their own refraction disable self, to escape some problems. However - objects with refract shader illuminated by deferred render refract self because of game can't tell the depth of objects because of the transparency, what you are see in the pictures is just the lighting layer applied to the color of transparency texture.


Similar issue happen if model with refraction behind wall with refraction.

PlacementTip.pngWorkaround:Divide model into two separate parts, one should use only textures with refraction, the second without textures with refractions.

Viewmodel illuminated by deferred render draw in refract shader

Refract shader and Water shader take and refract player screen space without taking into account viewmodel. However - viewmodel illuminated by deferred render draw in refract shader because of game can't tell the depth of viewmodel because of the transparency, what you are see in the pictures is just the lighting layer applied to the color of transparency texture.


Motion Blur blurring viewmodel lighting layer

For some reason Motion Blur blurring viewmodel lighting layer, you can notice this when you just rotate camera.


Strange "holes" when player's camera is at a great distance

In some cases may will appear strange "holes" when player's camera is at a great distance. Strange bug that occurs quite rarely. It is affected by game resolution, for example in bm_c4a1b1 this bug shows up well with a resolution wtih 1920x1080, but with 3840x2160 the light source from the teleporter flickers, but does not form a hole.

Confirm:Does it happen with newLight_Spot ?
PlacementTip.pngWorkaround:Can be fixed with NormalBias value increasing.





Gbuffer doesn't draw during cubemaps building

This leads to lighting and other affects will not be shown in cubemap image, which in some cases significantly affects the difference between the scene in the cubemap and the real scene.


Gbuffer doesn't draw in 3D Skybox

Due to gbuffer is not included for sky_camera, this causes gbuffer effects not displayed in 3D Skybox, including lighting and godrays.


Materials reload causes new lights with enabled shadows to disappear

Only for new lights which uses shadows. This issue happen when you open Hammer while game is opened, when a client disable cubemaps with mat_specular 0, when a client reload all materials with mat_reloadallmaterials, e. t. c. Can be fixed with save reload.


Deferred lighting does not draw with -tools

If you don't use Full Screen - deferred lighting will not draw.


Broken water transition in viewmodel

You can note the broken lighting transition when you go into water (only if water is world geometry and uses refractions).


Godrays incorrect work with $translucent

Godrays (also disk) all time fully rendering through textures with material shader parameter $translucent, because of this you will see unexpected results like in the picture (the same issue happen if used material shader parameter $decal). Disable godrays when you need or use $alphatest if it'll give resualts similar to $translucent. You also can try use some other tricks to escape this problem.


Godrays fully draws through water

Deferred lighting doesn't fully draws through water, unlike godrays.


Godrays leaks

Due to way how godrays works, in some cases you can note the leaking. Can be drawn even through walls, appearing where they should not be visible at all. Disable rays with triggers or minimize the effect. Because of this, it is not recommanted to use rays in multiplayer, as there is no way to disable rays for each client individually.


Godrays doesn't process viewmodel if player is underwater

Necro Patch fixed the old issue with godrays that wasn't processing models above water. This fix caused new issue, now godrays doesn't process viewmodel if player is underwater. Doesn't happen with func_water and func_water_analog.


Godrays can't be displayed in monitors and reflections

Godrays is post process effect that depends on player screen. That means that they can't water reflections or monitors can't show it.

Note.pngNote:Godrays for monitors and reflections was added with Necro Patch. However, this is disabled in the code by default, because it didn't work correctly. There is no way to enable this feature.



Godrays doesn't refracting by refract shader and fully draws through

Unlike deferred lighting, godrays doesn't refracting by refract shader, also fully draws through.


Shadow acne with moving lights

Shadow acne (also can be called "projection clipping") appears for moving lights with shadows if parent is moving at high speed. This issue appears even if used a very high value for nr_shadow_max_passes_per_frame console variable. This issue causes black squares or dark floors due to incorrect shadow overlaying. Multiple examples can be seen in this 1 minute long video.

Can be partially fixed with NormalBias value increasing. Also, if your moving light is just simple decoration (the puzzle crystals from Xen is great example), it is highly recommended to disable shadows to save limits and performance.


Shadowmaps split boundary artifacts (newLight_Point only)

newLight_Point uses 1–4 separate shadowmaps to cover its projection volume. When an object is positioned close to the boundary between these shadowmaps, the shadow may appear broken, clipped, or misaligned. This artifact is most noticeable with point lights using low-resolution shadowmaps, where precision issues become more visible.


Shadows have noise

This noise appeared with Necro Patch, greatly spoils blurry shadows. The only workaround is to make ShadowRadius value very low, but then the shadows will become extremely sharp and stepped.


Shadows doesn't appear instantly after save load

The game doesn't load shadowmap for dynamic lights instantly, which is why light sources remain without shadows for a short time. This issue doesn't depends on how powerful device the game running at. The more dynamic lights with shadows level has, the more noticeable this issue, because for the game it takes longer to load shadowmaps. Example in a short video.

PlacementTip.pngWorkaround:Enable in worldspawn settings Level Fade In to hide this issue, this setting also will hide some other issues with loads in Black Mesa Black Mesa. env_fade entity can be used for this as well.

Shadows don't appear immediately with a lot of lights with shadows

If your level use a lot of lights with shadows - shadows from enabling lights will not appear immediately, this happens if light source was disabled and if player's camera did not see this light source enabled initially.

PlacementTip.pngWorkaround:Before turning on light, set the intensity for light (via SetIntensityForLight input) to 0, then turn on light source and set the intensity to the desired value with delay of 0.5 seconds. Also, nr_shadow_max_passes_per_frame set to 25 can help in some cases.



Shadows low passes per frame if used a lot of lights with shadows

Sometimes many lights with shadows sets low values for nr_shadow_max_passes_per_frame cvar. This cause shadows to be looking a lot less natural.

PlacementTip.pngWorkaround:Very easy to fix with point_servercommand, just place logic_timer which will fire nr_shadow_max_passes_per_frame 28 command each 2 seconds.



Viewmodel doesn't support self-shadowing with deferred ligths

Unlike cascade shadows - viewmodel doesn't support self-shadowing with deferred ligths. Not a bug, but this is not what you expect from real life, it also isn't so with env_projectedtexture.


Spot lights have sharpness bug if shadows enabled

It is most noticeable if spot light is at not a right angle. It greatly degrades quality of shadows. Issue can be partially fixed if make NormalBias value bigger. Also can be minimized with shadow quality, range, outer and inner angles.


Moving newLight_Spot clipping if shadows enabled

Even with low speed, newLight_Spot clipping when rotating, but only if shadows enabled. With pause this bug get fix.