ead7dc9d32
This was done because the original "_biasLightWorldViewProjectionMatrix" relies on renderpath.light, which is problematic when rendering the deferred light pass and there is a sun and other lights of different type on the scene. Which would result on the wrong light being picked up for the calculation of the uniform value.
146 lines
3.1 KiB
JSON
Executable file
146 lines
3.1 KiB
JSON
Executable file
{
|
|
"contexts": [
|
|
{
|
|
"name": "volumetric_light",
|
|
"depth_write": false,
|
|
"compare_mode": "always",
|
|
"cull_mode": "none",
|
|
"links": [
|
|
{
|
|
"name": "snoise",
|
|
"link": "$blue_noise64.png"
|
|
},
|
|
{
|
|
"name": "eye",
|
|
"link": "_cameraPosition"
|
|
},
|
|
{
|
|
"name": "eyeLook",
|
|
"link": "_cameraLook"
|
|
},
|
|
{
|
|
"name": "invVP",
|
|
"link": "_inverseViewProjectionMatrix"
|
|
},
|
|
{
|
|
"name": "cameraProj",
|
|
"link": "_cameraPlaneProj"
|
|
},
|
|
{
|
|
"name": "lightsArray",
|
|
"link": "_lightsArray",
|
|
"ifdef": ["_Clusters"]
|
|
},
|
|
{
|
|
"name": "lightsArraySpot",
|
|
"link": "_lightsArraySpot",
|
|
"ifdef": ["_Clusters", "_Spot"]
|
|
},
|
|
{
|
|
"name": "clustersData",
|
|
"link": "_clustersData",
|
|
"ifdef": ["_Clusters"]
|
|
},
|
|
{
|
|
"name": "cameraPlane",
|
|
"link": "_cameraPlane",
|
|
"ifdef": ["_Clusters"]
|
|
},
|
|
{
|
|
"name": "sunDir",
|
|
"link": "_sunDirection",
|
|
"ifdef": ["_Sun"]
|
|
},
|
|
{
|
|
"name": "sunCol",
|
|
"link": "_sunColor",
|
|
"ifdef": ["_Sun"]
|
|
},
|
|
{
|
|
"name": "shadowsBias",
|
|
"link": "_sunShadowsBias",
|
|
"ifdef": ["_Sun", "_ShadowMap"]
|
|
},
|
|
{
|
|
"name": "LWVP",
|
|
"link": "_biasLightWorldViewProjectionMatrixSun",
|
|
"ifndef": ["_CSM"],
|
|
"ifdef": ["_Sun", "_ShadowMap"]
|
|
},
|
|
{
|
|
"name": "casData",
|
|
"link": "_cascadeData",
|
|
"ifdef": ["_Sun", "_ShadowMap", "_CSM"]
|
|
},
|
|
{
|
|
"name": "smSizeUniform",
|
|
"link": "_shadowMapSize",
|
|
"ifdef": ["_SMSizeUniform"]
|
|
},
|
|
{
|
|
"name": "lightProj",
|
|
"link": "_lightPlaneProj",
|
|
"ifdef": ["_ShadowMap"]
|
|
},
|
|
{
|
|
"name": "pointPos",
|
|
"link": "_pointPosition",
|
|
"ifdef": ["_SinglePoint"]
|
|
},
|
|
{
|
|
"name": "pointCol",
|
|
"link": "_pointColor",
|
|
"ifdef": ["_SinglePoint"]
|
|
},
|
|
{
|
|
"name": "pointBias",
|
|
"link": "_pointShadowsBias",
|
|
"ifdef": ["_SinglePoint", "_ShadowMap"]
|
|
},
|
|
{
|
|
"name": "spotDir",
|
|
"link": "_spotDirection",
|
|
"ifdef": ["_SinglePoint", "_Spot"]
|
|
},
|
|
{
|
|
"name": "spotData",
|
|
"link": "_spotData",
|
|
"ifdef": ["_SinglePoint", "_Spot"]
|
|
},
|
|
{
|
|
"name": "LWVPSpotArray",
|
|
"link": "_biasLightWorldViewProjectionMatrixSpotArray",
|
|
"ifdef": ["_Clusters", "_ShadowMap", "_Spot"]
|
|
},
|
|
{
|
|
"name": "LWVPSpot[0]",
|
|
"link": "_biasLightWorldViewProjectionMatrixSpot0",
|
|
"ifndef": ["_ShadowMapAtlas"],
|
|
"ifdef": ["_Spot", "_ShadowMap"]
|
|
},
|
|
{
|
|
"name": "LWVPSpot[1]",
|
|
"link": "_biasLightWorldViewProjectionMatrixSpot1",
|
|
"ifndef": ["_ShadowMapAtlas"],
|
|
"ifdef": ["_Spot", "_ShadowMap"]
|
|
},
|
|
{
|
|
"name": "LWVPSpot[2]",
|
|
"link": "_biasLightWorldViewProjectionMatrixSpot2",
|
|
"ifndef": ["_ShadowMapAtlas"],
|
|
"ifdef": ["_Spot", "_ShadowMap"]
|
|
},
|
|
{
|
|
"name": "LWVPSpot[3]",
|
|
"link": "_biasLightWorldViewProjectionMatrixSpot3",
|
|
"ifndef": ["_ShadowMapAtlas"],
|
|
"ifdef": ["_Spot", "_ShadowMap"]
|
|
}
|
|
],
|
|
"texture_params": [],
|
|
"vertex_shader": "../include/pass_viewray.vert.glsl",
|
|
"fragment_shader": "volumetric_light.frag.glsl"
|
|
}
|
|
]
|
|
}
|