public class DirectionalLightShadowRenderer extends AbstractShadowRenderer
| Modifier and Type | Field and Description |
|---|---|
protected float |
lambda |
protected DirectionalLight |
light |
protected Vector3f[] |
points |
protected Camera |
shadowCam |
protected ColorRGBA |
splits |
protected float[] |
splitsArray |
assetManager, debug, dispPic, dummyTex, edgeFilteringMode, edgesThickness, fadeInfo, fadeLength, forcedRenderState, frustumCam, lightReceivers, lightViewProjectionsMatrices, logger, matCache, nbShadowMaps, needsfallBackMaterial, postshadowMat, postTechniqueName, preshadowMat, prof, renderBackFacesShadows, renderManager, shadowCompareMode, shadowFB, shadowIntensity, shadowMapOccluders, shadowMaps, shadowMapSize, skipPostPass, viewPort, zFarOverride| Modifier | Constructor and Description |
|---|---|
protected |
DirectionalLightShadowRenderer()
Used for serialization use
DirectionalLightShadowRenderer#DirectionalLightShadowRenderer(AssetManager
assetManager, int shadowMapSize, int nbSplits)
|
|
DirectionalLightShadowRenderer(AssetManager assetManager,
int shadowMapSize,
int nbSplits)
Create a DirectionalLightShadowRenderer More info on the technique at https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch10.html
|
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
checkCulling(Camera viewCam)
Directional light are always in the view frustum
|
protected void |
clearMaterialParameters(Material material)
This method is called once per frame and is responsible for clearing any
material parameters that subclasses may need to clear on the post material.
|
void |
cloneFields(Cloner cloner,
java.lang.Object original)
Implemented to perform deep cloning for this object, resolving
local cloned references using the specified cloner.
|
protected void |
doDisplayFrustumDebug(int shadowMapIndex)
responsible for displaying the frustum of the shadow cam for debug
purpose
|
float |
getLambda()
returns the lambda parameter see #setLambda(float lambda)
|
DirectionalLight |
getLight()
return the light used to cast shadows
|
protected GeometryList |
getOccludersToRender(int shadowMapIndex,
GeometryList shadowMapOccluders)
Returns a subclass-specific geometryList containing the occluders to be
rendered in the shadow map
|
protected void |
getReceivers(GeometryList lightReceivers) |
protected Camera |
getShadowCam(int shadowMapIndex)
return the shadow camera to use for rendering the shadow map according
the given index
|
protected void |
initFrustumCam()
delegates the initialization of the frustum cam to child renderers
|
boolean |
isEnabledStabilization() |
void |
read(JmeImporter im)
De-serialize this instance, for example when loading from a J3O file.
|
void |
setEnabledStabilization(boolean stabilize)
Enables the stabilization of the shadow's edges.
|
void |
setLambda(float lambda)
Adjust the repartition of the different shadow maps in the shadow extend.
|
void |
setLight(DirectionalLight light)
Sets the light to use to cast shadows
|
protected void |
setMaterialParameters(Material material)
This method is called once per frame and is responsible for setting any
material parameters that subclasses may need to set on the post material.
|
protected void |
updateShadowCams(Camera viewCam)
Invoked once per frame to update the shadow cams according to the light
view.
|
void |
write(JmeExporter ex)
Serialize this instance, for example when saving to a J3O file.
|
cleanup, createFrustum, displayDebug, displayFrustum, displayShadowMap, getEdgeFilteringMode, getEdgesThickness, getNumShadowMaps, getPreShadowForcedRenderState, getShadowCompareMode, getShadowIntensity, getShadowMapSize, getShadowZExtend, getShadowZFadeLength, initForcedRenderState, initialize, isFlushQueues, isInitialized, isRenderBackFacesShadows, jmeClone, postFrame, postQueue, preFrame, renderShadowMap, reshape, setEdgeFilteringMode, setEdgesThickness, setPostShadowMaterial, setPostShadowParams, setProfiler, setRenderBackFacesShadows, setShadowCompareMode, setShadowIntensity, setShadowZExtend, setShadowZFadeLengthprotected float lambda
protected Camera shadowCam
protected ColorRGBA splits
protected float[] splitsArray
protected DirectionalLight light
protected Vector3f[] points
protected DirectionalLightShadowRenderer()
public DirectionalLightShadowRenderer(AssetManager assetManager, int shadowMapSize, int nbSplits)
assetManager - the application asset managershadowMapSize - the size of the rendered shadowmaps (512,1024,2048,
etc...)nbSplits - the number of shadow maps rendered (the more shadow maps
the more quality, the less fps).protected void initFrustumCam()
AbstractShadowRendererinitFrustumCam in class AbstractShadowRendererpublic DirectionalLight getLight()
public void setLight(DirectionalLight light)
light - a DirectionalLightprotected void updateShadowCams(Camera viewCam)
AbstractShadowRendererupdateShadowCams in class AbstractShadowRendererviewCam - the scene camprotected GeometryList getOccludersToRender(int shadowMapIndex, GeometryList shadowMapOccluders)
AbstractShadowRenderergetOccludersToRender in class AbstractShadowRenderershadowMapIndex - the index of the shadow map being renderedshadowMapOccluders - the list of occludersprotected void getReceivers(GeometryList lightReceivers)
getReceivers in class AbstractShadowRendererprotected Camera getShadowCam(int shadowMapIndex)
AbstractShadowRenderergetShadowCam in class AbstractShadowRenderershadowMapIndex - the index of the shadow map being renderedprotected void doDisplayFrustumDebug(int shadowMapIndex)
AbstractShadowRendererdoDisplayFrustumDebug in class AbstractShadowRenderershadowMapIndex - the index of the shadow mapprotected void setMaterialParameters(Material material)
AbstractShadowRenderersetMaterialParameters in class AbstractShadowRenderermaterial - the material to use for the post shadow passprotected void clearMaterialParameters(Material material)
AbstractShadowRendererclearMaterialParameters in class AbstractShadowRenderermaterial - the material that was used for the post shadow passpublic float getLambda()
public void setLambda(float lambda)
lambda - the lambda value.public boolean isEnabledStabilization()
public void setEnabledStabilization(boolean stabilize)
stabilize - true to stabilize, false to disable stabilizationpublic void cloneFields(Cloner cloner, java.lang.Object original)
JmeCloneableNote: during normal clone operations the original object will not be needed as the clone has already had all of the fields shallow copied.
cloneFields in interface JmeCloneablecloneFields in class AbstractShadowRenderercloner - The cloner that is performing the cloning operation. The
cloneFields method can call back into the cloner to make
clones of its subordinate fields.original - The original object from which this object was cloned.
This is provided for the very rare case that this object needs
to refer to its original for some reason. In general, all of
the relevant values should have been transferred during the
shallow clone and this object need merely clone what it wants.public void read(JmeImporter im) throws java.io.IOException
AbstractShadowRendererread in interface Savableread in class AbstractShadowRendererim - importer (not null)java.io.IOException - from the importerpublic void write(JmeExporter ex) throws java.io.IOException
AbstractShadowRendererwrite in interface Savablewrite in class AbstractShadowRendererex - exporter (not null)java.io.IOException - from the exporterprotected boolean checkCulling(Camera viewCam)
checkCulling in class AbstractShadowRendererviewCam - a Camera to define the view frustum