{
	"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": "spotRight",
					"link": "_spotRight",
					"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"
		}
	]
}