@@ -37,6 +37,7 @@ public static ShaderInstance getProjectorsShader() {
3737 return projectorsShader ;
3838 }
3939
40+ @ SuppressWarnings ("ConstantConditions" ) // Setting samples to null to clear them is fine.
4041 public static void configureProjectorsShader (
4142 final RenderTarget target ,
4243 final Matrix4f inverseCameraMatrix ,
@@ -51,10 +52,15 @@ public static void configureProjectorsShader(
5152 projectorsShader .setSampler ("MainCameraDepth" , target .getDepthTextureId ());
5253 projectorsShader .safeGetUniform ("InverseMainCamera" ).set (inverseCameraMatrix );
5354
54- for (int i = 0 ; i < projectorCount ; i ++) {
55- projectorsShader .setSampler (PROJECTOR_COLOR_NAMES [i ], colors [i ].getId ());
56- projectorsShader .setSampler (PROJECTOR_DEPTH_NAMES [i ], depths [i ].getDepthTextureId ());
57- projectorsShader .safeGetUniform (PROJECTOR_CAMERA_NAMES [i ]).set (projectorCameraMatrices [i ]);
55+ for (int i = 0 ; i < MAX_PROJECTORS ; i ++) {
56+ if (i < projectorCount ) {
57+ projectorsShader .setSampler (PROJECTOR_COLOR_NAMES [i ], colors [i ].getId ());
58+ projectorsShader .setSampler (PROJECTOR_DEPTH_NAMES [i ], depths [i ].getDepthTextureId ());
59+ projectorsShader .safeGetUniform (PROJECTOR_CAMERA_NAMES [i ]).set (projectorCameraMatrices [i ]);
60+ } else {
61+ projectorsShader .setSampler (PROJECTOR_COLOR_NAMES [i ], null );
62+ projectorsShader .setSampler (PROJECTOR_DEPTH_NAMES [i ], null );
63+ }
5864 }
5965 }
6066
0 commit comments