|Constructor and Description|
|Modifier and Type||Method and Description|
Determine the shader to use for the given geometry / material combination.
Requests that the
Uploads the lights in the light list as two uniform arrays.
public SinglePassAndImageBasedLightingLogic(TechniqueDef techniqueDef)
public Shader makeCurrent(AssetManager assetManager, RenderManager renderManager, java.util.EnumSet<Caps> rendererCaps, LightList lights, DefineList defines)
assetManager- The asset manager to use for loading shader source code, shader nodes, and lookup textures.
renderManager- The render manager for which rendering is to be performed.
rendererCaps- Renderer capabilities. The returned shader must support these capabilities.
lights- The lights with which the geometry shall be rendered. This list must not include culled lights.
defines- The define list used by the technique, any
unmapped definesshould be set here to change shader behavior.
protected int updateLightListUniforms(Shader shader, Geometry g, LightList lightList, int numLights, RenderManager rm, int startIndex, int lastTexUnit)
uniform vec4 g_LightColor[numLights]; //
g_LightColor.rgb is the diffuse/specular color of the light. //
g_LightColor.a is the type of light, 0 = Directional, 1 = Point, 2 = Spot.
uniform vec4 g_LightPosition[numLights]; //
g_LightPosition.xyz is the position of the light (for point lights)
// or the direction of the light (for directional lights). //
g_LightPosition.w is the inverse radius (1/r) of the light (for
shader- the Shader being used
g- the Geometry being rendered
lightList- the list of lights
numLights- the number of lights to upload
rm- to manage rendering
startIndex- the starting index in the LightList
lastTexUnit- the index of the most recently-used texture unit
public void render(RenderManager renderManager, Shader shader, Geometry geometry, LightList lights, int lastTexUnit)
TechniqueDefLogicrenders the given geometry. Fixed material functionality such as
material parameters, and
uniform bindingshave already been applied by the material, however,
textures, can still be overridden.
renderManager- The render manager to perform the rendering against.
shader- The shader that was selected by this logic in
TechniqueDefLogic.makeCurrent(com.jme3.asset.AssetManager, com.jme3.renderer.RenderManager, java.util.EnumSet, com.jme3.light.LightList, com.jme3.shader.DefineList).
geometry- The geometry to render
lights- Lights which influence the geometry.
lastTexUnit- the index of the most recently used texture unit
protected void extractIndirectLights(LightList lightList, boolean removeLights)