-
Notifications
You must be signed in to change notification settings - Fork 0
Rendering Mods and Libraries
The Fabric tool chain is host to rapidly-advancing rendering capabilities. However, the modular and community-driven nature of Fabric means there are many components! Here is a handy list. More information about each is below.
-
Fabric Rendering API: Defines standard rendering features available to Fabric mods.
-
Indigo: Default implementation of the Fabric Rendering API, ships with overall Fabric API.
-
FREX: Unofficial extensions to the Fabric Rendering API, including shaders.
-
Canvas: Shader-based alternative to Indigo - currently the only renderer that implements FREX.
-
JMX: Extensions to Minecraft JSON Model Loader enabling features of the Rendering API and FREX.
-
Satin: Full-frame, post-render shader loader.
-
Simple Model Loader: (Future) Base model classes and loader supporting all API features.
-
Brocade: (Future) Advanced library for dynamic models with extensive features.
Most of the capabilities documented on this site are part of or enabled by the Fabric API. If you don't know what Fabric is yet, you should learn about it before you continue.
Render-related APIs in Fabric are split into separate modules:
- fabric-models-v0: Hooks for loading custom models and model-related resources.
- fabric-renderer-api-v1: Interfaces for fancy/dynamic terrain and item rendering.
- fabric-rendering-data-attachment-v1: Thread-safe access to BlockEntity data during terrain rendering.
- fabric-rendering-fluids-v1: Hooks for custom fluid textures.
- fabric-rendering-v0: General hooks (entity renderers, block colors, reload event)
- fabric-textures-v0: Hooks for loading custom textures
Links
FREX defines extensions to the Fabric API for shaders, conditional materials, multi-layer materials, and other features in active development. It also includes a shaded copy of the JOML math library which offers specialized support for common rendering use cases in vector and matrix math.
FREX interfaces extend the Fabric Renderer API interfaces where applicable, so that any renderer that implements FREX will be fully backwards compatible with the Fabric Renderer API and any mods that depend on it. If your mod does not require FREX features (or JOML) then you should reference the Fabric API instead of FREX. Your mod will still benefit from performance and visual improvements offered by FREX-compliant renderers.
FREX is not a Fabric project, but FREX features that become popular may be proposed for inclusion in the Fabric API.
Random Fact: The "F" in FREX does not stand for Fabric. What it does stand for varies based on how well the code is behaving.
Links
Indigo is the default implementation of the Fabric Renderer API and is included in the standard Fabric API distribution. It supports all features defined by the API, including:
- Per-quad control of emissive lighting and diffuse plus ambient occlusion shading.
- Per-quad control of render layer.
- Per-quad integer tag values for dynamic transformation and analysis.
- Fully dynamic block and item model output.
- Improved lighting for angled and irregular shapes
Indigo was designed for high fidelity to Vanilla Minecraft rendering and maximum compatibility in heavily modded environments, but may offer some minor performance improvements for chunk-loading.
Indigo will be automatically disabled when another renderer is loaded that implements the Fabric Renderer API.
Canvas is a shader-based implementation of FREX, which means it also fully supports the Fabric Renderer API. It is currently the only FREX-compliant renderer.
Links
Satin makes it easier to create and manage data-driven full-frame effect shaders and provides various utilities and events for working with those shaders.
Links
COMING SOON...
COMING SOON...