Is this possible? Control how lighting is rendered

I’m wondering if it is possible to control how lighting is rendered in a material or a whole scene.

Basically, I’d like to be able to intercept the value of the lighting (after it has been calculated) before it is applied to a material so that I can manipulate that data to create special effects.

Here’s a couple examples of what I mean.

One, I’d like to be able to re-create the creepy lighting effect from old sector-based games where the lighting becomes modified by distance. It’s not the same as a fog effect because it varies by the object’s given distance; bright objects remain bright from far away and dark objects become visible when they are close to the player.
If I could inject a formula into the rendering process so that I could manipulate the rendered lighting values each frame, I would love to play around with the formula to see what other effect I could pull off.

Another lighting effect I have been interested in (although for a different project) is to recreate the shading effect in Valkyria Chronicles. To make the game look hand-drawn, the shadows never actually darken any materials but where there “are” shadows a hatch texture is drawn (in screen space.)
This is a more complicated effect, I know, but it still involves intercepting the lighting data. This time it keeps the lighting from actually drawing on a material, and then takes the lighting value to determine where on the screen to draw the texture.

Is it possible to adjust how the lighting works on an object/material/whole scene in any of the ways I have described?

All shaders must has its own lighting implementation
You can write your own shader with your own Lighting implementation
So you just need shader programming skills
Unity Standard shader or other pre-made shaders has been used unity lighting models (Lambert,BlinnPhong,Srandard PBR)

https://en.wikibooks.org/wiki/Cg_Programming/Unity

You can over ride the lighting calculation by creating an include file for the shader. Here’s an example that ignores all lighting and texturing information and just makes the pass return a red colour. You can then include this custom_BRDF.cginc file in any pass where you wanted to change the lighting behaviour in any shader that uses the standard PBS lighting in unity. I used this method in my Standard Toon shader.

#ifndef CUSTOM_BRDF_INCLUDED
#define CUSTOM_BRDF_INCLUDED

#if !defined (UNITY_BRDF_PBS)
    #define UNITY_BRDF_PBS Custom_BRDF
#else
    #error UNITY_BRDF_PBS already set
#endif

half4 Custom_BRDF (half3 diffColor, half3 specColor, half oneMinusReflectivity, half smoothness,
    half3 normal, half3 viewDir,
    UnityLight light, UnityIndirect gi)
{
    return float4(1,0,0,1);
}

#endif // CUSTOM_BRDF_INCLUDED