Home - jedlimlx/supplemental-patches GitHub Wiki

Supplemental Patches enables users to create custom shaders for modded blocks, entities, items, particles, etc, through a resource-pack.

Pre-requisites

To build a resource-pack that Supplemental Patches can use, you will need

  • A suitable text editor for modifying shader code.
  • An instance of Minecraft with Iris / Oculus, Complementary Shaders and Euphoria Patches. Note that Supplemental Patches DOES NOT work with Optifine.
  • A basic understanding of the syntax of OpenGL Shading Language (GLSL), which for the most part, is largely similar to C.

Getting Started

You will need to create a resource-pack to add new shaders. An example of the directory structure is below, taken from the default Supplemental Patches resource pack. All files should be located under "euphoria/".

.
├── <your mod / resource pack id>
│   └── euphoria
│       ├── block.properties.json
│       ├── entity.properties.json
│       ├── item.properties.json
│       ├── atmospherics
│       │   └── fog
│       │       ├── fogs
│       │       │   ├── doom_and_gloom_fog.glsl
│       │       │   └── sandstorm_fog.glsl
│       │       └── functions
│       │           ├── doom_and_gloom_fog.glsl
│       │           └── sandstorm_fog.glsl
│       ├── block_entity
│       │   ├── aquarium.glsl
│       │   ├── aquarium.json
│       │   ...
│       ├── colors
│       │   ├── buzzier_bees
│       │   │   ├── cupric_candle.json
│       │   │   ├── ender_candle.json
│       │   │   └── soul_candle.json
│       │   ...
│       ├── deferred
│       │   ├── caverns_and_chasms
│       │   │   ├── sanguine.glsl
│       │   │   └── sanguine.json
│       │   ...
│       ├── entity
│       │   ├── enderman_overhaul
│       │   │   ├── crimson_forest_enderman.glsl
│       │   │   └── crimson_forest_enderman.json
│       │   ...
│       ├── items
│       │   ├── caverns_and_chasms
│       │   │   ├── golden_bucket.glsl
│       │   │   └── golden_bucket.json
│       │   ...
│       ├── mixins
│       │   ├── doom_and_gloom
│       │   │   ├── aurora_visibility.glsl
│       │   │   └── aurora_visibility.json
│       │   ...
│       ├── particles
│       │   ├── potion_effect.glsl
│       │   ├── potion_effect.json
│       │   ...
├── settings
│       │   ├── caverns_and_chasms
│       │   │   ├── glowing_mime_energy.json
│       │   │   ├── glowing_silver_ore.json
│       │   │   ├── glowing_soul_silver_ore.json
│       │   │   └── glowing_spinel_ore.json
│       │   ├── caverns_and_chasms.json
│       │   ├── divider.json
│       │   ...
│       ├── specific_materials
│       │   ├── caverns_and_chasms
│       │   │   ├── spinel_block.glsl
│       │   │   └── spinel_block.json
│       │   ...
│       ├── terrain
│       │   ├── buzzier_bees
│       │   │   ├── soul_candle.glsl
│       │   │   └── soul_candle.json
│       │   ...
│       ├── tints
│       │   ├── dye_depot
│       │   │   │── stained_glass
│       │   │   │   ├── amber.json
│       │   │   │   └── aqua.json
│       │   │   ...
│       ├── translucent
│       │   ├── quark
│       │   │   └── corundum
│       │   │       ├── crystal_lamps.glsl
│       │   │       └── crystal_lamps.json
│       │   ...
│       ├── uniforms
│       │   └── brain_damage.json
│       │   ...
│       └── waving
│           ├── functions
│           │   └── waving_curtain.glsl
│           └── objects
│               ├── waving_gilded_beads.glsl
│               └── waving_gilded_beads.json
...

Each of the different features of Supplemental Patches (separated into the different folders shown above) are detailed below:

  • *.properties.json
  • Material Shaders
    • Basic Materials
      • Blocks (Opaque)
      • Blocks (Translucent)
      • Block Entities
      • Items
      • Entities
    • Deferred Materials
    • Particle Shaders
    • Waving Objects
  • Advanced Coloured Lighting (ACL)
    • Colors
    • Tints
  • Atmospherics
    • Fog
  • Shader Mixins