NewLight Point
Lightcookies
What is a lightcookie texture ?
Lightcookie (a. k. a. "Texture Light") a texture or mask applied to a light source. It is usually used to shape the light's output or fake shadows with specific patterns (which, unlike shadowmaps, can be translucent and look more accurate). It also can be used for stuff like projectors, cautists, disco spheres, etc.
In Black Mesa, it can be used via "Texture name for TexLight (texName)" property (to specify the texture) and "Enable Texture Light (bTexLight)" (to enable the feature).
This game used lightcookies mainly for fake shadowmaps and cautists. They are used for some entities by default (batteries and grunt pods for example).
Lightcookies are disabled with 2 (Low) value for nr_shadow_quality (Dynamic Shadow Quality).
Texture mask
The texture mask defines which pixels will display the lighting and also affects their color. Black pixel color will not render the light at all, white will render the light and its color value, other colors (red, blue, yellow, etc.) will be mixed with the light color value, depending on their intensity and how close they are to white. Alpha channel doesn't affect anything, so make sure you don't use it in your texture.
Point lights requires "Environment Map" texture to work with lightcookies, because point lights are using 6 separate faces, so each face requires separate texture. Follow these steps to create "Environment Map" texture.
Spot lights can use any texture basically.
It is recommended to use No Mipmap and No Level Of Detail flags for your VTF file, so the texture will not cause aliasing issues.

Animation
Spot lights also support 2 different animation types, which allow you to animate a texture in two different ways.
Texture Cookie FPS
[Todo]
Texture Cookie Scroll Mode
In this mode, lightcookie texture can scroll in X and Y directions. This feature can be enabled with Tex Cookie Scroll Mode (bTexCookieScrollMode) property.
X direction controlled by ScrollSpeedU (fScrollSpeedU) property. Y direction controlled by ScrollSpeedV (fScrollSpeedV) property. Both takes a float value. The default X direction is left, Y is up. Using a value multiplied by -1 will reverse direction, this allows you to use 8 different scroll directions. 0 means don't move in this direction. The size of the value affects the scroll speed.
Here is the video showcase of all 8 directions and how the feature look like.
Shadow filtering
Versions of the game before Necro Patch uses PСF filter. The shadow edges are sharper and exhibit a more distinct transition. There are visible aliasing artifacts, particularly on the edges. Shadows from small or thin objects were also indistinguishable. However, it was pretty good for shadows with low resolution, because they looked blurry. The shadows are somewhat similar to those that can be seen from the projected textures in Portal 2.
The Necro Patch replaced PСF filter with PCSS filter. The shadow edges appear smoother and less jagged. The transition from the shadow to the lit area has more gradient-like softening. Shadows have become more detailed for small objects. Because of this, you have to adjust the shadows more carefully.
This filter has one significant issue: there is now noticeable noise in the shadows. This is mostly noticeable in low resolution shadows, this spoils them quite a lot (although it makes them more detailed). There is no way to disable this effect. The noise also makes the shadows more similar to shadows from flashlight in Half-Life 2. It is worth noting that such thing exists in more modern engines (Unreal Engine 5 for example), so you can ignore the noise if it's not very noticeable, especially on shadows with high quality.
The noise is adjusted via ShadowRadius and ShadowMapLOD values, mainly via ShadowRadius; you even can disable the noise with 0 value, but this will make your shadows will look like stairs/pixels.
