Class LightRenderer
java.lang.Object
foundry.veil.api.client.render.light.renderer.LightRenderer
- All Implemented Interfaces:
AutoCloseable
,org.lwjgl.system.NativeResource
Renders all lights in a scene.
Lights can be added with addLight(Light)
, and subsequently removed with
removeLight(Light)
. Lights are automatically updated the next time render(AdvancedFbo)
is called if Light.isDirty()
is true
.
There is no way to retrieve a light, so care should be taken to keep track of what lights have been added to the scene and when they should be removed.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addDebugInfo
(Consumer<String> consumer) void
Adds a light to the renderer.boolean
Applies the shader set toVeilRenderSystem
.void
Disables ambient occlusion.void
Enables ambient occlusion.void
free()
getLights
(LightTypeRegistry.LightType<? extends T> type) Retrieves all lights of the specified type.boolean
<T extends Light>
voidremoveLight
(T light) Removes the specified light from the renderer.boolean
render
(AdvancedFbo lightFbo) Draws the lights to the specified framebuffer.void
setup
(CullFrustum frustum) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.lwjgl.system.NativeResource
close
-
Constructor Details
-
LightRenderer
public LightRenderer()Creates a new light renderer.
-
-
Method Details
-
applyShader
public boolean applyShader()Applies the shader set toVeilRenderSystem
. -
setup
-
render
Draws the lights to the specified framebuffer.- Parameters:
lightFbo
- The framebuffer to render lights into- Returns:
- If any lights were actually rendered
-
addLight
Adds a light to the renderer.- Parameters:
light
- The light to add
-
removeLight
Removes the specified light from the renderer.- Parameters:
light
- The light to remove
-
getLights
Retrieves all lights of the specified type.- Parameters:
type
- The type of lights to get- Returns:
- A list of lights for the specified type in the scene
-
enableAmbientOcclusion
public void enableAmbientOcclusion()Enables ambient occlusion. -
disableAmbientOcclusion
public void disableAmbientOcclusion()Disables ambient occlusion. -
isAmbientOcclusionEnabled
public boolean isAmbientOcclusionEnabled()- Returns:
- Whether chunks can have ambient occlusion
-
free
public void free()- Specified by:
free
in interfaceorg.lwjgl.system.NativeResource
-
addDebugInfo
-