-
-
Notifications
You must be signed in to change notification settings - Fork 130
Emissive Textures (Geckolib3)
GeckoLib provides built-in functionality for allowing your animatable objects to have fullbright textures or texture parts. You may also know this as emissive textures, or glow textures. This is similar to the functionality that vanilla Spider eyes have. where they glow in the dark.
To do this, GeckoLib implements a GeoRenderLayer
called LayerGlowingAreasGeo.
To use the emissive rendering functionality that GeckoLib provides, you'll first need to add an instance of LayerGlowingAreasGeo
to your animatable renderer, in its constructor. This is similar to how you would normally add render layers to any other renderer.
The constructor of LayerGlowingAreasGeo
takes the renderer instance you're registering it to, a function that returns the texture to render, a function that returns the model to render, and a function that takes the id of the generated glowing texture, and returns the RenderType instance to render with.
This can be a little bit confusing to understand at face value, so an example has been provided below to help show its usage.
public class ExampleRenderer extends GeoEntityRenderer<ExampleEntity> {
public ExampleRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new ExampleEntityModel());
addRenderLayer(new LayerGlowingAreasGeo(this,
entity -> getGeoModel().getTextureResource(entity),
entity -> getGeoModel().getModelResource(entity),
RenderType::eyes));
}
}
GeckoLib generates a special texture automatically that is used to render the glowing parts of your texture.
To do this however, it needs some information provided in the form of an .mcmeta
json file.
This .mcmeta
file should be placed in the same location as your texture file, and be named the same as your texture file, with .mcmeta
appended to the end.
E.G.
my_entity_texture.png
my_entity_texture.png.mcmeta
Inside the .mcmeta
file, you will need to create a glowsections
section, which contains a sections
section, which is an array of coordinates. which represent the pixels in your texture file that you want to glow.
To reduce confusion, an example has been provided below:
{
"glowsections": {
"sections": [
{
"x": 0,
"y": 0,
"w": 5,
"h": 10
},
{
"x": 5,
"y": 0,
"w": 5,
"h": 5
}
]
}
}
This example file tells GeckoLib that the regions of the original texture from x0,y0 -> x5,y10 and x5,y0 -> x10,y5 should be made to glow. Coordinates 0,0 are the top-left pixel in the .png file.
For clarity, the four values in the json are as follows:
- x -> The left-most coordinate of the glowing region
- y -> The top-most coordinate of the glowing region
- w -> The width of the glowing region, starting from
x
and going right - h -> The height of the glowing region, starting from
y
and going down
Geckolib 3
Geckolib 4
- Installation
- Getting Started
- Upgrading from GeckoLib 3.1.x to 4.0
- Updating to GeckoLib 4.5
- Basic
- Advanced
- Miscellaneous
Package repository hosting is graciously provided by Cloudsmith.
Cloudsmith is the only fully hosted, cloud-native, universal package management solution that enables your organization to create, store and share packages in any format, to any place, with total confidence.