Skip to content

Latest commit

 

History

History
1115 lines (801 loc) · 56.9 KB

Core Shader List.md

File metadata and controls

1115 lines (801 loc) · 56.9 KB

Contents

The part in brackets is a summary and not a full list of everything each shader affects. Only the more common things are listed here for quick access.

Non-Rendertype

There are several shaders which are not prefixed with rendertype_. These seem to be for more general targets, such as the sky or all particles.

blit_screen

View on mcmeta: jsonvshfsh

Blit copies one buffer to another, however this cannot be overridden in a resource pack.

Back to Top


particle

View on mcmeta: jsonvshfsh

Weather (snow and rain) and all particles. The alpha value specified in the shader will override the particle’s inbuilt transparency e.g. in the sneeze particle. Others, like the splash particle, don't seem to allow this. More testing needed.

Back to Top


position

View on mcmeta: jsonvshfsh

The colour of the sky. Also affects text highlighting.

Back to Top


position_color

View on mcmeta: jsonvshfsh

Handles a few different things:

  • The transparent lower hemisphere overlay on the sky approximately between times 11315 to 14150 (sunset) and 21830 to 24670 (sunrise),
  • The f3+G chunk border displays,

Pre 1.20:

  • The black transparent background on UI elements such as the chat field, the pause menu, and the scoreboard sidebar,
  • The Mojang loading background,
  • Highlighting item slots,
  • The background of tooltips,
  • The black bars on the sides when scoped in with a spyglass,

For UI elements, Position is the screen size divided by the GUI scale. E.g. 1920x1080 with GUI scale 3 means Position for x will be [0,640] and for y [0,360].

Back to Top


position_tex

View on mcmeta: jsonvshfsh

Handles a few different things:

  • The Sun and Moon
  • The worldborder
  • Most GUI textures (like the hotbar, buttons, icons)
  • Overlays (pumpkin blur, powder snow, the vignette, spyglass glass)
  • The crosshair
  • The mojang logo in loading screens
  • The menus backgroud blur (blurring is done in post)
  • The Minecraft Java Edition logo on the main screen
  • The player heads and connections icons in tab

Also affects:

  • Chunk border display
  • Sky
  • Sunset and sunrise halo

For UI elements Position is the screen size divided by the gui scale. E.g. 1920x1080 with GUI scale 3 means Position for x will be [0,640] and for y [0,360].

Back to Top


position_tex_color

View on mcmeta: jsonvshfsh

Handles:

  • The End sky
  • main menu panorama and menu backgrounds
  • Fire overlay when the player is burning
  • Wall overlay when player is suffocating

Back to Top

Rendertype

These are shaders which are targeted towards a specific element of the display. For each shader name here, assume that it is prefixed with rendertype_.

Blocks

When dealing with block shaders which have something to do with translucent, cutout or cutout_mipped, here is a useful list for all blocks of those specific types.

Back to Top

solid

View on mcmeta: jsonvshfsh

All solid blocks, lava, and when in fast mode, leaves. Also affects non-translucent falling blocks.

Back to Top


cutout

View on mcmeta: jsonvshfsh

All non-cube-hitbox blocks, check the list in the section header. A list of all blocks rendered by this shader can be found here.

Back to Top


cutout_mipped

View on mcmeta: jsonvshfsh

Certain blocks not covered by other shaders, check the list in the section header. Covers leaves in fancy/fabulous graphics. A list of all blocks rendered by this shader can be found here.

Back to Top


translucent

View on mcmeta: jsonvshfsh

Translucent blocks like stained glass, check the list in the section header. A list of all blocks rendered by this shader can be found here.

Back to Top


translucent_moving_block

View on mcmeta: jsonvshfsh

Blocks which are translucent and are being moved by a piston.

Back to Top


tripwire

View on mcmeta: jsonvshfsh

The middle section(s) of a tripwire.

Back to Top


end_portal (and end_gateway)

View on mcmeta: jsonvshfsh

The strange image in the end portal and end gateways. The shader files are called end_portal.vsh/fsh/json, with end_gateway.json referencing them.

Back to Top


Entities

Shaders that render entities.

entity_cutout_no_cull

View on mcmeta: jsonvshfsh
  • All entities
  • Guardian beams
  • Placed signs
  • Shulker boxes (both placed and in inventory)
  • Player heads (if player is using one of the default Minecraft skins: Alex, Steve, etc.)

Back to Top


entity_translucent

View on mcmeta: jsonvshfsh

Translucent entities and parts of entities:

  • Slimes
  • Players (except for the lower layer of the arm in first person)
  • Player heads (if player has set a custom skin)
  • Markings on horses
  • Some other horses parts
  • Shulker bullets
  • Elder guardian particle effect
  • Piglin
  • Zombified Piglin

Sampler1 contains the red color that is overlayed on entities when they take damage.

Back to Top


entity_solid

View on mcmeta: jsonvshfsh

Handles a few different things:

  • The base (not flag) of banners,
  • Shulker heads,
  • Books on lecterns/enchantment tables,
  • Shields,
  • Beds,
  • The bell part of bells,
  • Capes,
  • Shells of conduits,
  • Paintings,
  • Tridents,
  • The ears on the Deadmau5 skin,
  • The bottom skin layer of the first-person hand,
  • The conduit item in the inventory.

With item frames, the item frame entity itself is part of the shader, however, items on it are not. Only the filled-in parts of maps placed on an item frame are part of the shader.

Back to Top


entity_translucent_cull

View on mcmeta: jsonvshfsh

Flat texture items and transparent blocks held by entities or on head, in the inventory, and as entities. If Fabulous graphics is off, this shader also affects translucent items like stained glass and their panes, however if it is on, you should check item_entity_translucent_cull.

Back to Top


armor_cutout_no_cull

View on mcmeta: jsonvshfsh

Armor and armor trims on entities.

Back to Top


armor_entity_glint

View on mcmeta: jsonvshfsh

The glint on enchanted armour. Slight transparency is inbuilt and unchangeable.

Back to Top


entity_glint_direct

View on mcmeta: jsonvshfsh

The glint on enchanted tridents.

Back to Top


glint

View on mcmeta: jsonvshfsh

Default enchant glint. Applies to items and blocks, in the inventory or in the world.

Back to Top


glint_translucent

View on mcmeta: jsonvshfsh

The enchant glint in translucent blocks (like stained glass) in world when graphics setting is Fabulous!.

Back to Top


energy_swirl

View on mcmeta: jsonvshfsh

Charged creeper and wither swirling outline.

Back to Top


eyes

View on mcmeta: jsonvshfsh

A shader for the entire body of an entity that has glowing eyes (not the eyes themselves). Not fully opaque.

Back to Top


leash

View on mcmeta: jsonvshfsh

Leads, both on entities and fences.

Back to Top


entity_shadow

View on mcmeta: jsonvshfsh

Blocks that are affected by an entity’s shadow, but not the shadow itself. Locked to the block grid.

Back to Top


entity_cutout_no_cull_z_offset

View on mcmeta: jsonvshfsh

Mob skulls, both on entities and as an item. Does not include player heads. Also handles shulker shells and minecarts.

Back to Top


entity_cutout

View on mcmeta: jsonvshfsh

Block items in the inventory or hand/head of an entity, chests, ender chests, chest in minecarts, and as entities. Does not include Shulker boxes (see entity_cutout_no_cull). Also used for the fire overlay on burning entities.

Back to Top


entity_decal

View on mcmeta: jsonvshfsh

Colors the Ender Dragon while it’s dying.

Back to Top


item_entity_translucent_cull

View on mcmeta: jsonvshfsh

Handles dropped translucent items in Fabulous graphics. Also affects invisible entities while using spectator mode or the gamerule seeFriendlyInvisibles, as well as experience orbs in all graphics settings.

Back to Top


entity_translucent_emissive

View on mcmeta: jsonvshfsh

Glowing parts of Warden texture.

image

Back to Top


entity_smooth_cutout

View on mcmeta: jsonvshfsh

End crystal beams.

Back to Top


entity_no_outline

View on mcmeta: jsonvshfsh

The color and pattern of banners.

Back to Top


entity_alpha

View on mcmeta: jsonvshfsh

Used in the death animation of the dragon. Seemingly only affects the dragon’s wings, possibly messed with in code?

Back to Top


water_mask

View on mcmeta: jsonvshfsh

Hides the water in a boat. Changing the color does not seem to have an effect, but changing the position does. Pictured left is moving the mask down by 64, pictured right is moving it to the right by 2.

Back to Top


outline

View on mcmeta: jsonvshfsh

Glowing effect on entities. This buffer draws color on the entire entity, which is later turned into an outline by the entity_outline post shader.

Back to Top


lightning

View on mcmeta: jsonvshfsh

Lightning bolts. Ender dragon death animation beams.

Back to Top


UI

These are shaders which affect some part of the UI. Some UI elements are rendered by Non-Rendertype shaders.


gui

View on mcmeta: jsonvshfsh
  • The black transparent background on UI elements such as the chat field, the pause menu, the scoreboard sidebar, and subtitles
  • The Mojang resource pack loading bar
  • Highlighting worlds, servers, and players in social interactions menu
  • The background of tooltips
  • Scroll bar and scroll bar background
  • World selection, recipe book, and social interactions search bar background
  • World loading animation
  • Crafting red missing item background (when using recipe book)

Back to Top


gui_ghost_recipe_overlay

View on mcmeta: jsonvshfsh
  • Crafting translucent missing item overlay (when using recipe book)

*highlighted in green for better contrast*

Back to Top


gui_overlay

View on mcmeta: jsonvshfsh
  • The Mojang resource pack loading background color
  • The black bars on the sides when scoped in with a spyglass
  • Highlighting item slots
  • World and server selection menu drop-shadow

Back to Top


gui_text_highlight

View on mcmeta: jsonvshfsh
  • All highlighted/selected text

Back to Top


text

View on mcmeta: jsonvshfsh

All parts of text, including the shadow. This encompasses all text rendered including: F3 Menu, Menu button text, Entity names, Text display entities, Item names, descriptions & amounts in the inventory and the Chat etc. It also does the explored parts of maps


Isolating Elements

Isolating certain texts. Different types of text can be isolated using their Position.z. Texts without a shadow are located at x, texts with a shadow are located at x + 0.03 with their shadow being at x. (e.g. at 0.0 and 0.03). This seems to no longer be true in 1.19.4

A basic list of where which text is located: (Not Complete! Last checked in 1.18, unless noted otherwise)

  • -200: Advancement menu text
  • 0: /title text, bossbar name, world/server selection name/description text, resourcepack selection "Available" and "Selected" text.
  • 0.03: Menu (pause/options) text and inventory Potion effect text
  • 0.06 [1.19.4]: Subtitle Text (shadow at 0.0)
  • 0.12 [1.19.4]: Title Text (shadow at 0.0)
  • 100: Chat display, Recipe book search text
  • 200: Item count in hotbar
  • 300: Item count in inventory
  • 400: Item count while dragging item, tooltip texts, compact potion info
  • 0 to 104: Maps (not actually text)

Since maps share the z value with the chat display and a part of the hotbar item count, you can test for Sampler0 having a size of 128 pixels in both directions to test for the face being a map.

Back to Top


text_see_through

View on mcmeta: jsonvshfsh
  • The background nameplate of an entity’s custom name
  • Nametag text when seen through walls
  • Text display entity text when see_through:true nbt is set

Back to Top


text_background

View on mcmeta: jsonvshfsh
  • Text display entity background box

Back to Top


text_background_see_through

View on mcmeta: jsonvshfsh
  • Text display entity background box when see_through:true nbt is set

Back to Top


text_intensity

View on mcmeta: jsonvshfsh
  • Behaves like rendertype_text but when TTF font is used in the resourcepack
  • See text

Back to Top


text_intensity_see_through

View on mcmeta: jsonvshfsh
  • Behaves like rendertype_text_see_through but when TTF font is used in the resourcepack
  • See text_see_through

Back to Top


Other

These are shaders that render things that aren't clearly either a block, an entity or a ui element.

lines

View on mcmeta: jsonvshfsh

Handles a few different things:

  • The outline when hovering over a block,
  • The debug crosshair,
  • The f3+B hitbox displays,
  • Previews in the structure block.

Back to Top


crumbling

View on mcmeta: jsonvshfsh

The block cracks when mining a block. Has some in-built transparency.

Back to Top


clouds

View on mcmeta: jsonvshfsh

Clouds.
Prior to 24w05a, the shader was not a rendertype and was named position_tex_color_normal.

Back to Top


beacon_beam

View on mcmeta: jsonvshfsh

The beam of a beacon. Seems to get rendered behind clouds.

Back to Top

Unknown

These are shaders that exist in the files that we do not currently know the purpose of. More testing is needed for these.

position_color_lightmap

View on mcmeta: jsonvshfsh

Similar to position_color, but includes a second sampler for lightmap calculations. Not observed ingame.

Back to Top


position_color_tex_lightmap

View on mcmeta: jsonvshfsh

Similar to position_color_tex, but includes a second sampler for lightmap calculations. Not observed ingame.

Back to Top

Removed

block

Removed in 23w18a
View last available version on mcmeta: jsonvshfsh

Has 2 ins (UV0 and UV2) and 2 outs (texCoord0 and texCoord2), no math other than what’s included in most other shaders. Not observed ingame, may only be used as a base.

Back to Top


new_entity

Removed in 23w18a
View last available version on mcmeta: jsonvshfsh

Has 3 ins (UV0, UV1, and UV2) and 3 outs (texCoord0, texCoord1, and texCoord2), no math other than what’s included in most other shaders. Not observed ingame, may only be used as a base.

Back to Top


rendertype_translucent_no_crumbling

Removed in 23w42a
View last available version on mcmeta: jsonvshfsh

Unknown.

Back to Top


position_color_tex

Removed in 24w21a
Merged with position_tex_color
View last available version on mcmeta: jsonvshfsh

Was previously used for:

  • Fire overlay when the player is burning
  • Wall overlay when player is suffocating

Back to Top


rendertype_glint_direct

Removed in 24w21a
Merged with rendertype_glint
View last available version on mcmeta: jsonvshfsh

Was previously used for the enchant glint in most situations. Enchanted worn armor was rendered by armor_entity_glint and glass type blocks were rendered by glint when in world instead.

Back to Top


rendertype_armor_glint

Removed in 24w21a
View last available version on mcmeta: jsonvshfsh

Was unused.

Back to Top