NewLight Point/Bugs and limitations

From Valve Developer Community
Jump to navigation Jump to search
Todo: make a TOC specifically for this box to make navigation easier

Deferred lighting have issues with transparency

Deferred lighting is incompatible with transparency. In some cases, it shows one of the lighting layers applied to the color of the transparent texture.

This bug is currently available by default for VertexLitGeneric and Lightmapped_4WayBlend, if they are using $translucent material parameter.


The same happen if used $decal material parameter.

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 func_detail). This happen even if transparency used for shader that doesn't shows one of the lighting layers.

If a func entity or model uses render mode Glow (3) or 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.

Other render modes will have similar effect, but only for brushes.

Similar issue happen with overlays/decals on brushes with $translucent.

In some cases, use $alphatest, if it'll give similar to $translucent resualts, with this your surface also will cast dynamic shadows.

Confirm:Is there more shaders with this issue ?
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.


Flicker near light volume edges

Often meeting strange clipping/flickering, strange bug that was in early stages of the game (this can be seen even in videos before new lights release in public). Somehow related to Range value, since changing its value halfway fixes this bug, because it move away the bugged area. With Necro Patch, this is fixed for newLight_Spot.


Brush polygons may clip 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.

Note.pngNote:Most often happen if map used fast compile settings.




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.

PlacementTip.pngWorkaround: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.



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 while cubemaps is building

Deferred lighting, godrays, xog and other gbuffer effects doesn't draw while cubemaps is building. This means that you will not see any lighting from new lights in cubemaps.


New lights doesn't work with 3D Skybox

Don't use new lights in your 3D skyboxes, none of them will work at all.


Materials reload cause new lights disappear

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


Gbuffer incorrect work with cloak

Cloak is a material shader parameter for VertexLitGeneric 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


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.


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 effect.


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.


Moving lights with shadows are buggy

In some cases, your attached lights may have buggy shadows if parent is moving.

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) - highly recommended to leave shadows disabled to save limits and performance.


Shadows incorrect work with newLight_Point cube edges

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.


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 immediately after reload

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.

PlacementTip.pngWorkaround:Enable in worldspawn settings Level Fade In to hide this problem, this setting also will hide some other issues with loads that avaible in Black Mesa Black Mesa.



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.


Weapons dynamic light incorrect work with damaged func_breakable_surf

For some reason weapons dynamic light can illuminate damaged func_breakable_surf even if position of it very far from position of damaged func_breakable_surf.

Confirm:Is there a way to fix this?