Package com.jme3.material.logic
Interface TechniqueDefLogic
- All Known Implementing Classes:
DefaultTechniqueDefLogic
,MultiPassLightingLogic
,SinglePassAndImageBasedLightingLogic
,SinglePassLightingLogic
,StaticPassLightingLogic
public interface TechniqueDefLogic
TechniqueDefLogic
is used to customize how
a material should be rendered.
Typically used to implement lighting modes
.
Implementations can register
unmapped defines
in their constructor and then later set them based on the geometry
or light environment being rendered.-
Method Summary
Modifier and TypeMethodDescriptionmakeCurrent
(AssetManager assetManager, RenderManager renderManager, EnumSet<Caps> rendererCaps, LightList lights, DefineList defines) Determine the shader to use for the given geometry / material combination.void
render
(RenderManager renderManager, Shader shader, Geometry geometry, LightList lights, Material.BindUnits lastBindUnits) Requests that theTechniqueDefLogic
renders the given geometry.
-
Method Details
-
makeCurrent
Shader makeCurrent(AssetManager assetManager, RenderManager renderManager, EnumSet<Caps> rendererCaps, LightList lights, DefineList defines) Determine the shader to use for the given geometry / material combination.- Parameters:
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, anyunmapped defines
should be set here to change shader behavior.- Returns:
- The shader to use for rendering.
-
render
void render(RenderManager renderManager, Shader shader, Geometry geometry, LightList lights, Material.BindUnits lastBindUnits) Requests that theTechniqueDefLogic
renders the given geometry. Fixed material functionality such asRenderState
,material parameters
, anduniform bindings
have already been applied by the material, however,RenderState
,uniforms
,textures
, can still be overridden.- Parameters:
renderManager
- The render manager to perform the rendering against.shader
- The shader that was selected by this logic inmakeCurrent(com.jme3.asset.AssetManager, com.jme3.renderer.RenderManager, java.util.EnumSet, com.jme3.light.LightList, com.jme3.shader.DefineList)
.geometry
- The geometry to renderlights
- Lights which influence the geometry.lastTexUnit
- the index of the most recently used texture unit
-