Skip to content

Rendering Mods and Libraries

grondag edited this page Jun 11, 2019 · 21 revisions

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.

Fabric Rendering API

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

FREX defines extensions to the Fabric API for shaders, conditional materials, multi-layer materials, and other features in active development. 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

Indigo is the default implementation of the Fabric Renderer API defined in the fabric-renderer-api-v1 package. 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 maximum compatibility with Vanilla Minecraft and other mods, 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

JMX

Satin

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

Simple Model Loader

COMING SOON...

Brocade

COMING SOON...

Clone this wiki locally