Minecraft Wiki
Advertisement

Dieser Artikel ist über die Eingebauten Shader.

Shader werden verwendet, um darzustellen, wie das Spiel gerendert wird.

Java Edition[]

Es gibt zwei Arten von Shadern: core shader und post-processing shader.

Core shader werden zum Rendern von verschiedenen Teilen des Spiels verwendet.

Post-processing shader werden für die Mob Ansicht im Zuschauermodus verwendet, mischen von durchscheinenden Ebenen in Fabulous! Grafikeinstellungen, und für den Leuchten Status effect.

Shader sind in der OpenGL Shading Language (GLSL) geschrieben. Jedes einzelne Render Programm kommt in zwei Teilen, vertex and fragment Shader. Der vertex Shaders ändert die Positionen von einzelnen Vertices zum erstellen von wehendem Laub und Wasser verwendet. Der Fragment shader wird auf jeden Pixel angewandt und kann für Dinge wie Bloom und Blur verwendet werden.

Shader werden im Ordner assets/minecraft/shaders/ in der minecraft.jar gespeichert und kann mit einem resource pack verändert werden. Wenn irgendein Fehler passiert, werdem das Resourcenpacket und fabulous graphics Modus ausgeschaltet.

Core shader[]

Core shader sind für das Rendern von Teilen des Spiels verantwortlich. Sie werden nicht nur zum Rendern von Blöcken, sondern auch für den Hauptbildschirm, Einstellungen uä. verwendet.

Jeder core shader ist ein eigenes render program, das in einer JSON-Datei definiert wird, in welchem Vertex und Fragment Shader bestimmt sind.

Core shader sind im assets/minecraft/shaders/core Ordner der minecraft.jar Datei hinterlegt.

Die folgende Tabelle listet alle Layers auf und beinhaltet eine kurze Beschreibung, was der Shader rendert, genau wie ein Bild, das das Ziel des Shaders in Rot vorhebt.


Diese Seite ist unvollständig.
Du kannst helfen, indem Du sie ergänzt. Fehlende Inhalte:
  • Angelschnur
  • Dunkelheitsvignette und Weltrandvignette-Bildschirmeffekte
  • Der super subtile Unterwasser-Bildschirmeffekt
  • Totem des Unsterblichen verwendet Animation
  • End-Gateway-Beam (möglicherweise anders als Beacon-Beam aufgrund eines seither behobenen Rendering-Problems MC-173745, jedoch möglicherweise dadurch vereinheitlicht)
  • Welkrüstung
  • Verzauberungs-Overlay
  • Ender-Drachen-Todesstrahlen
  • Ender-Drachenzerfalleffekt.


Non-rendertype[]

Name Verwendet für Beispiel Bilder
blit_screen Blit kopiert einen Puffer zu einem anderen, kann aber nicht in einem Resourcen Packet überschrieben werden.
block Unknown
new_entity Unknown
particle All particles.
position
  • Oberer Himmel und Sterne in der Oberwelt
  • Dunkler Nebel, wenn der Spieler im Void ist
  • Die hervorgehobene Farbe, wenn eine Welt hervorgehoben wird.
Core shader Position hervorgehoben
position_color Verwendet für Farbblöcke, darunter:
  • Sonnenaufgang und Sonnenuntergang
  • Chunkgrenze
  • Schwarzer Hintergrund des Fernglas Overlays
  • Schlaf Overlay
  • Schwarzer Hintergrund bei UI Elementen
  • Text Box in UI
  • Schwebender Tooltip
  • Text Hintergrund
  • Hervorheben von Item Slots
position_color_lightmap Unknown
position_color_normal Unknown
position_color_tex
  • Ersticken Overlay Bildschirm Effekt
  • Brennend Overlay
  • Verzerrungs Overlay, wenn "Sichtfeldeffekte" weniger als 100% ist
Core shader Position Farb tex hervorgehoben 2
position_color_tex_lightmap Unknown
position_tex Verwendet um Texturen zu Rendern:
  • Sonne und Mond
  • Worldborder
  • Unterwasser Bilschirm Effekt
  • Fernglas Overlay
  • Geschnitzer Kürbis Overkay
  • Pulverschnee Overlay
  • Portal Overlay
  • Hotbar
  • Crosshair
  • Bossbar Overlay
  • Lebensleiste, Rüstungsleiste, Essensleiste, Luftleiste, Sprungleiste, Erfahrungsleiste
  • Effektbilder
  • Normale GUIs
  • Knöpfe bei GUIs
  • Spiel Logo and Mojang Logo
position_tex_color
  • Himmel mit demminecraft:the_end Dimensions Effekt.
  • Erd Hintergrund in Menüs
Core shader position tex color highlight
position_tex_color_normal Wolken. Core shader position tex color normal highlight
position_tex_lightmap_color Unknown

Rendertype[]

Blocks[]

Name Beschreibung Beispielbild
rendertype_beacon_beam Der Strahl des Leuchtfeuers
rendertype_crumbling Die Risse beim Abbauen eines Blocks
rendertype_cutout Alle Blöcke, die nicht die normale Hitbox haben.
rendertype_cutout_mipped Einige Blöcke: Grass Blöcke, Eisenstangen, Glasscheiben, Stolperdrahthaken, Trichter, Ketten (Blätter bei Fancy oder Faboulos Grafikeinstellungen)
rendertype_end_gateway Unknown.
rendertype_end_portal Das innere eines Endportals und Transitportalen. Core shader rendertype end portal highlight
rendertype_solid Alle Soliden Blöcke, Lava und im Fast Modus auch Blätter Core shader rendertype solid highlight
rendertype_translucent Durchsichtige Blöcke: Wasser (still und fließend), Eis, Nether Portal, Buntes und Getöntes Glass, Schleim und Honig, Luftblasen. Core shader rendertype translucent highlight
rendertype_translucent_moving_block Durchsichtige, von Blöcken bewegte Blöcke. Core shader rendertype translucent highlight
rendertype_translucent_no_crumbling Unknown.
rendertype_tripwire Stolperdraht(Der mit dem Stolperdrahthaken verbundene Teil wird als Solider Block gerendert[1] Core shader rendertype tripwire highlight
rendertype_water_mask Unknown.

Entities[]

Name Desciption Sample Image
rendertype_energy_swirl Der Umriss eines geladenen Creepers Core shader rendertype energy swirl highlight
rendertype_entity_alpha Unknown.
rendertype_entity_cutout Items im Inventar, der Kopf (z.B. von Armor Stands). Scheint nicht mit Shulkerkisten zu funktionieren.
rendertype_entity_cutout_no_cull Alle Entitäten und Wächterstrahlen
rendertype_entity_cutout_no_cull_z_offset Köpfe auf Entitäten und als Item
rendertype_entity_decal Unknown.
rendertype_entity_glint Unknown.
rendertype_entity_glint_direct Unknown.
rendertype_entity_no_outline Unknown.
rendertype_entity_shadow Die Blöcke, die von Schatten beeinflusst werden, aber nicht der Schatten selbst. Core shader rendertype entity shadow highlight
rendertype_entity_smooth_cutout End Crystal Strahlen. Core shader rendertype entity smooth cutout highlight
rendertype_entity_solid Bestimmte Items und Entity artige Objekte: Banner, Shulkerköpfe, Bücher auf Lesepulten/Verzauberungstischen, Schilder, Betten, Glocken, Teile von Glocken, Umhänge, Hüllen von Aquaisatoren, Gemälde, Dreizäcke, die Ohren von Deadmau5s Skin.

Mit Item Frames, ist der Item Frame selbst Teil des Shaders, wobei die Items darin nicht. Nur die ausgefüllten Teile von Karten sind Teil des Shaders.

beinhaltet auch die erste Layer von Skins.

rendertype_entity_translucent Durchscheinende Entitäten und Teile von Entitäten: Schleim, Spieler (Alle Ebenen) zusammen mit Spielerköpfen mit Benutzerdefinierten Skins, die Markierungen auf Pferden, Shulker Projektile, Partikel Effekte des Großen Guardians.
rendertype_entity_translucent_cull Flache Textur Items, von Mobs gehalten (und im Inventar).
rendertype_eyes Ein Shader für den gesamten Körper von einer Entität, die Leuchtende Augen hat (nicht die Augen selbst). Dieser Shader ist nicht vollständig undurchsichtig.
rendertype_item_entity_translucent_cull Unknown.
rendertype_leash Eine Leine an einer Entität. Wird auch bei einem Zaun gezählt. Core shader rendertype leash highlight
rendertype_outline Leuchteffekte bei Entitäten. Dieser Puffer zeichnet nur den bereits vorhandene Umriss und das Teilweise durchscheinende Leuchten, nicht die gesamte Entität, wie in früheren snapshots. Core shader rendertype outline highlight

Gemischtes[]

Name Beschreibung Beispielbild
rendertype_glint Unknown.
rendertype_glint_direct Unknown.
rendertype_glint_translucent Unknown.
rendertype_lightning Unknown.
rendertype_lines Der Umriss beim Bewegen der Maus über einen Block sowie das Debug-Fadenkreuz und die Hitboxen. Core shader rendertype lines highlight
rendertype_text Alle Textteile, einschließlich des Schattens. Dies umfasst den gesamten gerenderten Text, einschließlich: F3-Menü, Menüschaltflächentext, Entitätsnamen, Gegenstandsnamen, Beschreibungen und Mengen im Inventar und im Chat usw. Core shader rendertype text highlight
rendertype_text_see_through Das Hintergrund-Namensschild des benutzerdefinierten Namens einer Entität. Core shader rendertype text see through highlight

Include shader[]

Include-Shader sind keine eigenständigen Shader-Programme. Sie sollten von anderen Shader-Dateien implementiert werden.

Include-Shader enthalten häufig verwendete Hilfsfunktionen. Um eine glsl-Datei in einen Shader zu importieren, verwenden Sie #moj_import <FILENAME.glsl> oder #moj_import "FILENAME.glsl". HINWEIS: Die importierte Datei muss mit einer leeren Zeile enden, sonst wird der Shader nicht geladen.

Core shader werden im Ordner assets/minecraft/shaders/include der minecraft.jar Datei gespeichert.

Name Description
fog Beinhaltet die linear_fog Funktion, um die Farbe nach der Vertex Entfernung berechnet.
light Beinhaltet die minecraft_mix_light Funktion.
matrix Beinhaltet die mat2_rotate_z Funktion, die die Rotations Matrix für einen vec2 um die z-Achse zurückgibt.
projection Beinhaltet die projection_from_position Funktion.

Post-processing shader[]

Post-processing shader werden zurzeit für die Mob Ansicht im Zuschauermodus verwendet, mischen von durchscheinenden Ebenen in Fabulous! Grafikeinstellungen, und für den Leuchten Status effect.

Post-Shader verwenden "Post"-Dateien, um eine Pipeline zu definieren, die aus der Anwendung einer Sequenz von "Programmen" besteht.

Jedes „Programm“ wird dann durch eine andere JSON-Datei definiert, in der ein einzelnes Renderprogramm definiert ist.

„post“-Dateien werden im Verzeichnis assets/minecraft/shaders/post der Version .jar gespeichert, während „Programm“-Dateien in assets/minecraft/shaders/program gespeichert werden.

There are only 5 post-processing shaders used in the game:

  • creeper.json: Used when spectating a creeper
  • invert.json: Used when spectating an enderman
  • spider.json: Used when spectating a spider
  • entity_outline.json: Used when a glowing entity is on screen
  • transparency.json: Used when in "Fabulous!" graphics mode.


Im Spiel werden nur 5 Nachbearbeitungs-Shader verwendet:

  • creeper.json: Wird verwendet, wenn ein Creeper beobachtet wird
  • invert.json: Wird beim Beobachten eines Enderman verwendet
  • spider.json: Wird beim Betrachten einer Spinne verwendet
  • entity_outline.json: Wird verwendet, wenn eine leuchtende Entität auf dem Bildschirm angezeigt wird
  • transparency.json: Wird verwendet, wenn in "Fabulous!" Grafikmodus.


In diesen beiden Verzeichnissen gibt es auch viele nutzlose Shader, die vor 1.9 (15w31a) für "Super Secret Settings" verwendet wurden.

Render Prozess[]

Diese Seite ist unvollständig.
Du kannst helfen, indem Du sie ergänzt. Fehlende Inhalte: Die Erklärung des Render Prozesses fehlt

Datei format[]

Render Programm[]

  • data Der Root Tag
    • blend: Einstellungen für Opengl mischen.
      • func: Beim Mischen zu verwendender Operator. Kann add, subtract, reversesubtract, reverse_subtract, min oder max sein. Groß-/Kleinschreibung nicht beachten. Standard: add. Wird als mode Parameter von glBlendEquation verwendet
      • srcrgb: Verwendet als sfactor Parameter von glBlendFunc oder dem srcRGB Parameter von glBlendFuncSeparate. Kann 0, 1, srccolor, 1-srccolor, dstcolor, 1-dstcolor, srcalpha, 1-srcalpha, dstalpha, oder1-dstalpha sein. Groß-/Kleinschreibung nicht beachten. Ignoriert "_". "1", "0", "-" kann durch "one", "zero", "minus" ersetzt werden.
      • dstrgb: Verwendet als dfactor Parameter von glBlendFunc oder dem dstRGB Parameter von glBlendFuncSeparate. Kann 0, 1, srccolor, 1-srccolor, dstcolor, 1-dstcolor, srcalpha, 1-srcalpha, dstalpha, oder 1-dstalpha sein. Groß-/Kleinschreibung nicht beachten. Ignoriert "_". "1", "0", "-" kann durch "one", "zero", "minus" ersetzt werden.
      • srcalpha: Verwendet als srcalpha Parameter von glBlendFuncSeparate. Kann 0, 1, srccolor, 1-srccolor, dstcolor, 1-dstcolor, srcalpha, 1-srcalpha, dstalpha, oder1-dstalpha sein. Groß-/Kleinschreibung nicht beachten. Ignoriert "_". "1", "0", "-" kann durch "one", "zero", "minus" ersetzt werden.
      • dstalpha: Verwendet als dstalpha Parameter von glBlendFuncSeparate. Kann 0, 1, srccolor, 1-srccolor, dstcolor, 1-dstcolor, srcalpha, 1-srcalpha, dstalpha, oder1-dstalpha sein. Groß-/Kleinschreibung nicht beachten. Ignoriert "_". "1", "0", "-" kann durch "one", "zero", "minus" ersetzt werden.
    • cull: Wenn "true", führe glEnable(GL_CULL_FACE) aus. Wenn "false" führe glDisable(GL_CULL_FACE) aus. Standard: "true".
    • vertex: Der Name (ohne Dateierweiterung) des zu verwendenden Vertex-Shaders.
    • fragment: Der Name (ohne Dateierweiterung) des zu verwendenden Fragmentshaders.
    • attributes: Vom Vertex-Shader zu verwendende Attribute.
      • : Ein Attribut. Verfügbare Werte sind hard-coded.
    • samplers: Eine Liste von Samplern, die in den Shadern verwendet werden können.
      • : Ein Sampler.
        • name: Der Name des Samplers.
        • file:
    • uniforms: Eine Liste von Uniforms, die in den Shadern verwendet werden können.
      • : Ein Uniform.
        • name: Der Name der Uniform, auf den im GLSL-Code verwiesen wird. Einige Namen geben ein einheitliches spezielles Verhalten (Beachten Sie, dass diese folgenden speziellen Uniformen nicht in allen Shader-Programmen funktionieren):
          • Time: Ein Wert von 0 bis 1, der die Zeit in Sekunden darstellt. Wird jede Sekunde zurückgesetzt.
          • InSize: Die Breite und Höhe des Eingabepuffers in Pixeln.
          • OutSize: Die Breite und Höhe des Ausgabepuffers in Pixeln.
          • ModelViewMat: Die Modellansichtsmatrix.
          • ProjMat: Die Projektionsmatrix.
          • TextureMat: 4D-Matrix, die verwendet wird, um UVs für Item-Glint-Effekte zu transformieren
          • ScreenSize: vec2 enthält die aktuelle Framebuffer-Breite und -Höhe, in dieser Reihenfolge
          • ColorModulator: Ein globaler vec4 von Multiplikatoren, der aus dem Spielcode als Farbmultiplikator eingestellt werden kann
          • Light0_Direction: Erste Lichtrichtung als vec3 für das Entity-Rendering
          • Light1_Direction: Zweite Lichtrichtung, siehe Light0_Direction
          • FogStart: Nebelstartabstand von der Kamera
          • FogEnd: Nebelschlussabstand von der Kamera
          • FogColor: vec4 Nebelfarbe
          • LineWidth: Linienbreite, die zum Rendern von Drahtgitterlinien wie dem Blockauswahlrahmen und Debug-Hitboxen verwendet wird
          • GameTime: Globale Zeit der Welt in Bruchteilen von Tagen
          • ChunkOffset: Beim Rendern eines Chunk-Abschnitts der Versatz von der Kameraweltposition zum Basispunkt des Chunk-Abschnitts
        • type: Die Art des Uniforms. Kann einer von int, float, matrix4x4, matrix3x3 und matrix2x2 sein. int kann auch als ivec2, ivec3 oder ivec4 interpretiert werden, je nachdem, wie viele Werte tatsächlich in den Werten enthalten sind. float kann auch als vec2, vec3 oder vec4 interpretiert werden, je nachdem, wie viele Werte tatsächlich in den Werten enthalten sind.The type of the uniform.
        • count: Die Anzahl an Werten in values.
        • values: Der Wert des Uniforms, als Liste aus Floats. Die Länge der Liste sollte genau so lang sein, wie count.

Render Pipeline[]

So wird ein Nachbearbeitungs-Shader im Spiel verwendet: Zuerst initialisiert der Shader alle Renderziele, die in der Liste "targets" angegeben sind, mit der richtigen Breite und Höhe. Danach durchläuft der Shader jeden in der Liste "passes" angegebenen Renderdurchgang vom ersten bis zum letzten in der Liste. Jeder Durchgang wendet den Programm-Shader auf das durch "intarget" angegebene Renderziel an (mit allen zusätzlichen Daten, die von anderen zusätzlichen Renderzielen bereitgestellt werden) und gibt das Endergebnis auf dem durch "outtarget" angegebenen Renderziel aus.

  • data Der Root-Tag
    • targets: Eine Liste von Renderzielen. Sie können vom Spiel bereitgestellte Puffer oder neue Puffer mit einem beliebigen Namen sein.
      • : Der Name eines Renderziels. Die Größe ist standardmäßig auf die Bildschirmauflösung eingestellt.
      • : Ein hinzuzufügendes Renderziel.
        • name: Der Name des hinzuzufügenden Renderziels.
        • width: Die Breite des Renderziels.
        • height: Die Höhe des Renderziels.
    • passes: Eine Liste mit Passes.
      • : Ein Render pass.
        • name: Der Name eines Programmshaders, der auf die Eingabe angewendet und in die Ausgabe eingefügt werden soll. Verwenden Sie "blit", um die Daten von intarget nach outtarget zu kopieren.
        • intarget: Der Name eines Renderziels, das als Eingabe verwendet werden soll. Verwenden Sie minecraft:main, um den Hauptbildschirm anzugeben.
        • outtarget: Der Name eines Renderziels, an das ausgegeben werden soll. Es sollte nicht mit intarget identisch sein. Verwenden Sie minecraft:main, um den Hauptbildschirm anzugeben.
        • auxtargets: Eine Liste von Hilfszielen.
          • Ein Hilfsziel.
            • name: Der Name des Hilfsziels, der an das JSON "Programm" übergeben wird.
            • id: Die ID des Hilfsziels. Zeigt entweder auf den Namen eines Puffers, der in den Zielen definiert ist, oder auf die Position einer Textur unter assets/<namespace>/textures/effect (verwenden Sie eine Namespace-Id, um darauf zu verweisen).
            • width: Erforderlich, wenn id auf eine Textur verweist. Beschreibt die Breite der Textur in Pixeln.
            • height: Erforderlich, wenn id auf eine Textur verweist. Beschreibt die Höhe der Textur in Pixeln.
            • bilinear: Erforderlich, wenn id auf eine Textur verweist. Bestimmt, ob der für das Bild verwendete Skalierungsalgorithmus bilinear oder der nächste Nachbar ist.
        • uniforms: Eine Liste von Überschreibungen, die die Werte in der Liste uniforms im JSON "Programm" ändern.
          • : Ein Uniform.
            • name: Der Name des Felds, das geändert werden soll.
            • values: Die Werte, auf die das Feld geändert werden soll.

Tutorials und nützliche Docs[]

Hier sind einige Anleitungen mit zusätzlichen Informationen zum Erstellen eigener Shader:

Bedrock Version[]

Diese Seite ist unvollständig.
Du kannst helfen, indem Du sie ergänzt. Fehlende Inhalte: Nicht alle Infos

Seit Bedrock Edition 1.16.200 werden Shader-Ressourcenpakete von Drittanbietern nicht mehr auf Windows 10- oder Konsolenversionen unterstützt, obwohl sie weiterhin auf mobilen Geräten funktionieren.

Geschichte[]

Versionsgeschichte der Java Edition
Vollversion 1.7.2
13w38a
  • Shader wurden für Super Secret Settings hinzugefügt.
Vollversion 1.8
14w05a
  • Die Shader Creeper und Spider wurden hinzugefügt. Shader werden automatisch im spectator-Modus angewendet, wenn die Welt als Creeper, Spider oder Enderman betrachtet wird.
14w05b
  • Shader werden jetzt aus der Ansicht entfernt, wenn die Perspektive geändert wird, während man einen Mob beobachtet.[2]
Vollversion 1.9
15w31a
  • Die Schaltfläche Super Secret Settings für ein internes Rewrite wurde entfernt.[3]
Vollversion 1.16
20w22a
  • Der Transparency-Shader wurde für den Grafikmodus Fabulous! hinzugefügt.
Vollversion 1.17
21w10a
  • Core-Shader wurden hinzugefügt.

Probleme[]

Probleme Bezüglich "Shadern" sind beim Bug Tracker zu finden.

Einzelnachweise[]

Advertisement