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.voidrender(RenderManager renderManager, Shader shader, Geometry geometry, LightList lights, int lastTexUnit) Requests that theTechniqueDefLogicrenders 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 definesshould 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, int lastTexUnit) Requests that theTechniqueDefLogicrenders the given geometry. Fixed material functionality such asRenderState,material parameters, anduniform bindingshave 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
-