Skip to content

Commit 5f24d20

Browse files
authored
Update PointLightShadowRenderer.java
1 parent 8751505 commit 5f24d20

File tree

1 file changed

+19
-26
lines changed

1 file changed

+19
-26
lines changed

jme3-core/src/main/java/com/jme3/shadow/PointLightShadowRenderer.java

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2009-2021 jMonkeyEngine
2+
* Copyright (c) 2009-2025 jMonkeyEngine
33
* All rights reserved.
44
*
55
* Redistribution and use in source and binary forms, with or without
@@ -53,31 +53,30 @@
5353
/**
5454
* PointLightShadowRenderer renders shadows for a point light
5555
*
56-
* @author Rémy Bouquet aka Nehon
56+
* @author Nehon
5757
*/
5858
public class PointLightShadowRenderer extends AbstractShadowRenderer {
5959

6060
public static final int CAM_NUMBER = 6;
6161
protected PointLight light;
6262
protected Camera[] shadowCams;
6363
private Geometry[] frustums = null;
64+
private final Vector3f X_NEG = Vector3f.UNIT_X.mult(-1f);
65+
private final Vector3f Y_NEG = Vector3f.UNIT_Y.mult(-1f);
66+
private final Vector3f Z_NEG = Vector3f.UNIT_Z.mult(-1f);
6467

6568
/**
66-
* Used for serialization.
67-
* Use PointLightShadowRenderer#PointLightShadowRenderer(AssetManager
68-
* assetManager, int shadowMapSize)
69-
* instead.
69+
* For serialization only. Do not use.
7070
*/
7171
protected PointLightShadowRenderer() {
7272
super();
7373
}
7474

7575
/**
76-
* Creates a PointLightShadowRenderer
76+
* Creates a PointLightShadowRenderer.
7777
*
78-
* @param assetManager the application asset manager
79-
* @param shadowMapSize the size of the rendered shadowmaps (512,1024,2048,
80-
* etc...)
78+
* @param assetManager the application's asset manager
79+
* @param shadowMapSize the size of the rendered shadow maps (512, 1024, 2048, etc...)
8180
*/
8281
public PointLightShadowRenderer(AssetManager assetManager, int shadowMapSize) {
8382
super(assetManager, shadowMapSize, CAM_NUMBER);
@@ -95,9 +94,9 @@ private void init(int shadowMapSize) {
9594
protected void initFrustumCam() {
9695
Camera viewCam = viewPort.getCamera();
9796
frustumCam = viewCam.clone();
98-
frustumCam.setFrustum(viewCam.getFrustumNear(), zFarOverride, viewCam.getFrustumLeft(), viewCam.getFrustumRight(), viewCam.getFrustumTop(), viewCam.getFrustumBottom());
97+
frustumCam.setFrustum(viewCam.getFrustumNear(), zFarOverride,
98+
viewCam.getFrustumLeft(), viewCam.getFrustumRight(), viewCam.getFrustumTop(), viewCam.getFrustumBottom());
9999
}
100-
101100

102101
@Override
103102
protected void updateShadowCams(Camera viewCam) {
@@ -108,30 +107,24 @@ protected void updateShadowCams(Camera viewCam) {
108107
}
109108

110109
//bottom
111-
shadowCams[0].setAxes(Vector3f.UNIT_X.mult(-1f), Vector3f.UNIT_Z.mult(-1f), Vector3f.UNIT_Y.mult(-1f));
112-
110+
shadowCams[0].setAxes(X_NEG, Z_NEG, Y_NEG);
113111
//top
114-
shadowCams[1].setAxes(Vector3f.UNIT_X.mult(-1f), Vector3f.UNIT_Z, Vector3f.UNIT_Y);
115-
112+
shadowCams[1].setAxes(X_NEG, Vector3f.UNIT_Z, Vector3f.UNIT_Y);
116113
//forward
117-
shadowCams[2].setAxes(Vector3f.UNIT_X.mult(-1f), Vector3f.UNIT_Y, Vector3f.UNIT_Z.mult(-1f));
118-
114+
shadowCams[2].setAxes(X_NEG, Vector3f.UNIT_Y, Z_NEG);
119115
//backward
120116
shadowCams[3].setAxes(Vector3f.UNIT_X, Vector3f.UNIT_Y, Vector3f.UNIT_Z);
121-
122117
//left
123-
shadowCams[4].setAxes(Vector3f.UNIT_Z, Vector3f.UNIT_Y, Vector3f.UNIT_X.mult(-1f));
124-
118+
shadowCams[4].setAxes(Vector3f.UNIT_Z, Vector3f.UNIT_Y, X_NEG);
125119
//right
126-
shadowCams[5].setAxes(Vector3f.UNIT_Z.mult(-1f), Vector3f.UNIT_Y, Vector3f.UNIT_X);
120+
shadowCams[5].setAxes(Z_NEG, Vector3f.UNIT_Y, Vector3f.UNIT_X);
127121

128122
for (int i = 0; i < CAM_NUMBER; i++) {
129123
shadowCams[i].setFrustumPerspective(90f, 1f, 0.1f, light.getRadius());
130124
shadowCams[i].setLocation(light.getPosition());
131125
shadowCams[i].update();
132126
shadowCams[i].updateViewProjection();
133127
}
134-
135128
}
136129

137130
@Override
@@ -237,13 +230,13 @@ protected boolean checkCulling(Camera viewCam) {
237230
}
238231

239232
Camera cam = viewCam;
240-
if(frustumCam != null){
241-
cam = frustumCam;
233+
if (frustumCam != null) {
234+
cam = frustumCam;
242235
cam.setLocation(viewCam.getLocation());
243236
cam.setRotation(viewCam.getRotation());
244237
}
245238
TempVars vars = TempVars.get();
246-
boolean intersects = light.intersectsFrustum(cam,vars);
239+
boolean intersects = light.intersectsFrustum(cam, vars);
247240
vars.release();
248241
return intersects;
249242
}

0 commit comments

Comments
 (0)