Minecraft:Starfield: Difference between revisions
More actions
Sync: updated from Minecraft |
Sync: updated from Minecraft |
||
| Line 20: | Line 20: | ||
=== ''Java Edition'' === | === ''Java Edition'' === | ||
The rendering of the starfield effect has changed several times throughout the game's history; the following is present as of [[Minecraft:Java Edition | The rendering of the starfield effect has changed several times throughout the game's history; the following is present as of [[Minecraft:Java Edition 26.2 Snapshot 7]]. | ||
There are two subtly different gateway effects, referred to by the {{code|end_cube}} special model type as {{code|portal}} (used for end portal blocks, the dimension loading screens for entering and exiting the End, and the credits sequence and preceding poem) and {{code|gateway}}, used specifically for end gateways. The latter renders an extra layer of blue pixels which are absent from the former, which can be seen by placing the two blocks next to each other; blue pixels will disappear when they migrate to the space where the end portal is present. See later in this section for a technical explanation of the difference. | There are two subtly different gateway effects, referred to by the {{code|end_cube}} special model type as {{code|portal}} (used for end portal blocks, the dimension loading screens for entering and exiting the End, and the credits sequence and preceding poem) and {{code|gateway}}, used specifically for end gateways. The latter renders an extra layer of blue pixels which are absent from the former, which can be seen by placing the two blocks next to each other; blue pixels will disappear when they migrate to the space where the end portal is present. See later in this section for a technical explanation of the difference. | ||
| Line 27: | Line 27: | ||
{| class="wikitable" style="text-align:center; margin: auto;" | {| class="wikitable" style="text-align:center; margin: auto;" | ||
| {{code|entity/end_portal.png}} | | <small>{{code|entity/end_portal/end_portal.png}}</small> | ||
| {{code|environment/end_sky.png}} | | {{code|environment/end_sky.png}} | ||
|- | |- | ||
| Line 34: | Line 34: | ||
|} | |} | ||
The "End sky" texture, which is indeed the same texture used for the actual [[Minecraft:End sky]], is used as the "background" texture: it is sampled using screen-projected coordinates and multiplied by {{color|#06191C}}. The shader uses the projected screen-space y-coordinate directly as the vertical texture coordinate; because the screen-projected vertical coordinate increases upwards while the texture image is displayed with its vertical axis running downwards, the background texture appears vertically mirrored.{{info needed|Also investigate how it's displayed in versions before 21w10a, as this will be useful information for the history section.}} | The "End sky" texture, which is indeed the same texture used for the actual [[Minecraft:End sky]], is used as the "background" texture: it is sampled using screen-projected coordinates and multiplied by {{color|#06191C}}.{{info needed|Is the same value in the code used for coloring both the background and layer 0, or do they just happen to share the same colour which is defined twice? Or does layer 0 not exist in the first place, and what we call layer 0 is only used for coloring the background?}} The shader uses the projected screen-space y-coordinate directly as the vertical texture coordinate; because the screen-projected vertical coordinate increases upwards while the texture image is displayed with its vertical axis running downwards, the background texture appears vertically mirrored.{{info needed|Also investigate how it's displayed in versions before 21w10a, as this will be useful information for the history section.}} | ||
The "End portal" texture is sampled in multiple layers on top of this background. Each layer uses a different colour multiplier, scale, rotation, fixed horizontal offset, and time-based vertical offset. In the fragment shader, the RGB results of the layers are combined additively before the final colour is output with full opacity. The End portal uses 15 layers of the "End portal" texture, while the End gateway uses 16 layers. The first 15 layers are shared between both effects, while the End gateway has an additional layer using {{color|#1550A9}}. | The "End portal" texture is sampled in multiple layers on top of this background. Each layer uses a different colour multiplier, scale, rotation, fixed horizontal offset, and time-based vertical offset. In the fragment shader, the RGB results of the layers are combined additively before the final colour is output with full opacity. The End portal uses 15 layers of the "End portal" texture, while the End gateway uses 16 layers. The first 15 layers are shared between both effects, while the End gateway has an additional layer using {{color|#1550A9}}. | ||
The colour values used by the layers are as follows. Index 0 is also used for the "End sky" background | The colour values used by the layers are as follows. Index 0 is also used for the "End sky" background, but the velocity listed for index 0 applies only to the first layer of the "End portal" texture. The End portal uses indices 0 through 14, while the End gateway uses indices 0 through 15. The Velocity column gives the rate at which the time-based vertical offset increases. In the current Windows behaviour, this is also the apparent downward velocity of the layer. In the pre-25w07a behaviour, where the apparent travel direction follows each layer's rotation, the same listed velocity is transformed by the layer's rotation and scale. | ||
{{info needed section|Assuming it isn't randomized at runtime (which I do not believe to be the case), at what exact angle does each of these planes travel at before 25w07a? Presumably, the change that happened in 25w07a was unintentional since other operating systems are unaffected, so we'd be fine listing them here. I know there's an equation later in the page, but getting those specific output values in the table would be more immediately useful.}} | {{info needed section|Assuming it isn't randomized at runtime (which I do not believe to be the case), at what exact angle does each of these planes travel at before 25w07a? Presumably, the change that happened in 25w07a was unintentional since other operating systems are unaffected, so we'd be fine listing them here. I know there's an equation later in the page, but getting those specific output values in the table would be more immediately useful. (has this already been done or is there more to do? please remove this template if this has been fulfilled, i do t know if this was left here on purpose or if you just forgot to remove it)}} | ||
{| class="wikitable" style="text-align:center;" | {| class="wikitable" style="text-align:center;" | ||
! rowspan="2" | Index | ! rowspan="2" | Index | ||
! rowspan="2" | Velocity | ! rowspan="2" | Velocity | ||
! rowspan="2" | {{abbr|Rotation|We assume that 0° points directly downward, and rotations are clockwise from this point}} | |||
! rowspan="2" | Scale{{info needed|I assume scale is a shrinking factor, rather than a scaling up factor? 15 is clearly the largest}} | |||
! rowspan="2" | Colour | ! rowspan="2" | Colour | ||
! colspan="2" | Used by | ! colspan="2" | Used by | ||
| Line 51: | Line 53: | ||
| 0 | | 0 | ||
| 4/24000 | | 4/24000 | ||
| 20° | |||
| 8.5 | |||
| {{Abbr|{{color|#06191C}}|vec3(0.022087, 0.098399, 0.110818)}} | | {{Abbr|{{color|#06191C}}|vec3(0.022087, 0.098399, 0.110818)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 57: | Line 61: | ||
| 1 | | 1 | ||
| 5/24000 | | 5/24000 | ||
| 44° | |||
| 8 | |||
| {{Abbr|{{color|#031817}}|vec3(0.011892, 0.095924, 0.089485)}} | | {{Abbr|{{color|#031817}}|vec3(0.011892, 0.095924, 0.089485)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 63: | Line 69: | ||
| 2 | | 2 | ||
| 6/24000 | | 6/24000 | ||
| 72° | |||
| 7.5 | |||
| {{Abbr|{{color|#071A1A}}|vec3(0.027636, 0.101689, 0.100326)}} | | {{Abbr|{{color|#071A1A}}|vec3(0.027636, 0.101689, 0.100326)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 69: | Line 77: | ||
| 3 | | 3 | ||
| 7/24000 | | 7/24000 | ||
| 104° | |||
| 7 | |||
| {{Abbr|{{color|#0C1C1D}}|vec3(0.046564, 0.109883, 0.114838)}} | | {{Abbr|{{color|#0C1C1D}}|vec3(0.046564, 0.109883, 0.114838)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 75: | Line 85: | ||
| 4 | | 4 | ||
| 8/24000 | | 8/24000 | ||
| 140° | |||
| 6.5 | |||
| {{Abbr|{{color|#111E19}}|vec3(0.064901, 0.117696, 0.097189)}} | | {{Abbr|{{color|#111E19}}|vec3(0.064901, 0.117696, 0.097189)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 81: | Line 93: | ||
| 5 | | 5 | ||
| 9/24000 | | 9/24000 | ||
| 180° | |||
| 6 | |||
| {{Abbr|{{color|#101620}}|vec3(0.063761, 0.086895, 0.123646)}} | | {{Abbr|{{color|#101620}}|vec3(0.063761, 0.086895, 0.123646)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 87: | Line 101: | ||
| 6 | | 6 | ||
| 10/24000 | | 10/24000 | ||
| 224° | |||
| 5.5 | |||
| {{Abbr|{{color|#161D2A}}|vec3(0.084817, 0.111994, 0.166380)}} | | {{Abbr|{{color|#161D2A}}|vec3(0.084817, 0.111994, 0.166380)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 93: | Line 109: | ||
| 7 | | 7 | ||
| 11/24000 | | 11/24000 | ||
| 272° | |||
| 5 | |||
| {{Abbr|{{color|#192717}}|vec3(0.097489, 0.154120, 0.091064)}} | | {{Abbr|{{color|#192717}}|vec3(0.097489, 0.154120, 0.091064)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 99: | Line 117: | ||
| 8 | | 8 | ||
| 12/24000 | | 12/24000 | ||
| 324° | |||
| 4.5 | |||
| {{Abbr|{{color|#1B2132}}|vec3(0.106152, 0.131144, 0.195191)}} | | {{Abbr|{{color|#1B2132}}|vec3(0.106152, 0.131144, 0.195191)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 105: | Line 125: | ||
| 9 | | 9 | ||
| 13/24000 | | 13/24000 | ||
| 20° | |||
| 4 | |||
| {{Abbr|{{color|#191C30}}|vec3(0.097721, 0.110188, 0.187229)}} | | {{Abbr|{{color|#191C30}}|vec3(0.097721, 0.110188, 0.187229)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 111: | Line 133: | ||
| 10 | | 10 | ||
| 14/24000 | | 14/24000 | ||
| 80° | |||
| 3.5 | |||
| {{Abbr|{{color|#222326}}|vec3(0.133516, 0.138278, 0.148582)}} | | {{Abbr|{{color|#222326}}|vec3(0.133516, 0.138278, 0.148582)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 117: | Line 141: | ||
| 11 | | 11 | ||
| 15/24000 | | 15/24000 | ||
| 144° | |||
| 3 | |||
| {{Abbr|{{color|#123E3C}}|vec3(0.070006, 0.243332, 0.235792)}} | | {{Abbr|{{color|#123E3C}}|vec3(0.070006, 0.243332, 0.235792)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 123: | Line 149: | ||
| 12 | | 12 | ||
| 16/24000 | | 16/24000 | ||
| 212° | |||
| 2.5 | |||
| {{Abbr|{{color|#322437}}|vec3(0.196766, 0.142899, 0.214696)}} | | {{Abbr|{{color|#322437}}|vec3(0.196766, 0.142899, 0.214696)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 129: | Line 157: | ||
| 13 | | 13 | ||
| 17/24000 | | 17/24000 | ||
| 284° | |||
| 2 | |||
| {{Abbr|{{color|#0C5052}}|vec3(0.047281, 0.315338, 0.321970)}} | | {{Abbr|{{color|#0C5052}}|vec3(0.047281, 0.315338, 0.321970)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 135: | Line 165: | ||
| 14 | | 14 | ||
| 18/24000 | | 18/24000 | ||
| 0° | |||
| 1.5 | |||
| {{Abbr|{{color|#34634D}}|vec3(0.204675, 0.390010, 0.302066)}} | | {{Abbr|{{color|#34634D}}|vec3(0.204675, 0.390010, 0.302066)}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
| Line 141: | Line 173: | ||
| 15 | | 15 | ||
| 19/24000 | | 19/24000 | ||
| 80° | |||
| 1 | |||
| {{Abbr|{{color|#1550A9}}|vec3(0.080955, 0.314821, 0.661491)}} | | {{Abbr|{{color|#1550A9}}|vec3(0.080955, 0.314821, 0.661491)}} | ||
| {{tc|No|×}} | | {{tc|No|×}} | ||
| {{tc|Yes|✓}} | | {{tc|Yes|✓}} | ||
|} | |} | ||
As of Java Edition 26.2 Snapshot 7 on Windows, these layers slowly move vertically downwards{{verify|Windows only?}} over time. In this behaviour, the scale and rotation of each layer change the appearance of the texture pattern, but the time-based offset is applied after the rotation, so the direction of motion is not rotated with each layer.{{verify|Windows only?}} For the ''n''th layer, where ''n'' starts at 1 and equals the table index plus 1, the horizontal offset is 17/''n'', the rotation angle is (''n''×''n''×4321+''n''×9)×2 degrees, and the scale is (4.5-''n''/4)×2. The vertical offset is (2+''n''/1.5)×(GameTime×1.5). Since GameTime increases by 1/24000 per game tick, the Velocity value listed in the table is (3+''n'')/24000. For the current Windows behaviour, this value is the apparent downward velocity in screen-projected coordinate units per game tick. For the pre-25w07a behaviour, the Rotation value gives the apparent travel direction, while the apparent travel velocity is the listed Velocity divided by the listed Scale. | |||
The starfield effect is completely constant regardless of view: while moving and rotating the camera will change the position of the object using the starfield effect itself on screen, the starfield itself will remain fixed in place. In effect, anything using the starfield effect effectively creates what can be seen as a "hole" in the world, behind which the starfield rests. The shape of the starfield also changes with the window size, although this is presumably not intentional.<ref>{{bug|MC-265456}}</ref> | The starfield effect is completely constant regardless of view: while moving and rotating the camera will change the position of the object using the starfield effect itself on screen, the starfield itself will remain fixed in place. In effect, anything using the starfield effect effectively creates what can be seen as a "hole" in the world, behind which the starfield rests. The shape of the starfield also changes with the window size, although this is presumably not intentional.<ref>{{bug|MC-265456}}</ref> | ||
| Line 155: | Line 188: | ||
== History == | == History == | ||
=== ''Java Edition'' === | === ''Java Edition'' === | ||
{{info needed section|These versions changed the relevant shader files and may be worth investigating to see if those changes are at all relevant to a differing visual outcome: | |||
* 21w10a | |||
* 21w11a | |||
* 24w05a | |||
* 24w21a | |||
* 24w34a | |||
* 25w07a | |||
* 25w16a | |||
* 25w19a | |||
* 25w37a}} | |||
{{HistoryTable | {{HistoryTable | ||
|{{HistoryLine|java beta}} | |||
|{{HistoryLine||1.8|dev=Pre-release|[[File:End Portal (texture) JE1.png|64px]] Added {{code|misc/particlefield.png}}, though without any apparent use at this point.}} | |||
|{{HistoryLine|java}} | |{{HistoryLine|java}} | ||
|{{HistoryLine||1.0.0|dev=Beta 1.9 Prerelease 3|The starfield effect now exists. | |{{HistoryLine||1.0.0|dev=Beta 1.9 Prerelease 3|The starfield effect now exists. | ||
|This initial starfield effect differs considerably from the effect seen in current versions: it changes depending on camera position and movement,{{info needed|how exactly? I guess some sort of parallax effect?}} and the sky texture repeats instead of only being used once.{{info needed|how exactly does it repeat? how is it specified?}} Coloration also appears to be different at this point.{{info needed|can we get the color values used?}} | |This initial starfield effect differs considerably from the effect seen in current versions: it changes depending on camera position and movement,{{info needed|how exactly? I guess some sort of parallax effect?}} and the sky texture repeats instead of only being used once.{{info needed|how exactly does it repeat? how is it specified?}} Coloration also appears to be different at this point.{{info needed|can we get the color values used?}} | ||
|It is used by the [[Minecraft:End Portal (block)|End portal block]], though only when viewed from above. | |It is used by the [[Minecraft:End Portal (block)|End portal block]], though only when viewed from above. | ||
|[[File:End Sky (texture) JE1.png|64px]] | |[[File:End Sky (texture) JE1.png|64px]] Added {{code|misc/tunnel.png}}, which is used for the background of the starfield effect. | ||
|{{HistoryLine||1.3.1|dev=12w25a| | |{{code|misc/particlefield.png}} is now used for the foreground planes of the starfield effect.}} | ||
|{{HistoryLine|| | |{{HistoryLine||1.3.1|dev=12w25a|{{code|misc/tunnel.png}} has changed from [[File:End Sky (texture) JE1.png|64px]] to [[File:End Sky (texture) JE2.png|64px]], thus modifying the appearence of the starfield.}} | ||
|{{HistoryLine||1.6.1|dev=13w24a|{{code|misc/particlefield.png}} has been renamed and moved to {{code|assets/minecraft/textures/entity/end_portal.png}}. | |||
|{{code|misc/tunnel.png}} has been renamed and moved to {{code|assets/minecraft/textures/environment/end_sky.png}}.}} | |||
|{{HistoryLine||1.9|dev=15w31a|[[Minecraft:End Gateway (block)|End gateway]]s, the second block to utilize a starfield effect, have been added. Much like End portals, this effect depends on the camera position. | |{{HistoryLine||1.9|dev=15w31a|[[Minecraft:End Gateway (block)|End gateway]]s, the second block to utilize a starfield effect, have been added. Much like End portals, this effect depends on the camera position. | ||
|The top face resembles that of the End portal, but the side faces are noticeably distorted.{{info needed|Why does this happen? Is this intentional, or an unexpected quirk of not having the starfield rendered on the XZ plane?}}}} | |The top face resembles that of the End portal, but the side faces are noticeably distorted.{{info needed|Why does this happen? Is this intentional, or an unexpected quirk of not having the starfield rendered on the XZ plane?}}}} | ||
| Line 168: | Line 215: | ||
|The side faces of the block are no longer distorted, and you can no longer easily tell where the edges of the cube are at all. | |The side faces of the block are no longer distorted, and you can no longer easily tell where the edges of the cube are at all. | ||
|This "fixed position" animation may sometimes appear jittery, and may not move at all on some operating systems.{{info needed|Why? Is this LWJGL's fault, or something else?}} | |This "fixed position" animation may sometimes appear jittery, and may not move at all on some operating systems.{{info needed|Why? Is this LWJGL's fault, or something else?}} | ||
|The End sky texture used by the fixed starfield is rotated, squished, and repeated. It does not move with the camera or with time.{{info needed|By how much is it rotated, and to what extent is it distorted from being a square?}}}} | |The End sky texture used by the fixed starfield is rotated, squished, and repeated. It does not move with the camera or with time.{{info needed|By how much is it rotated, and to what extent is it distorted from being a square?}} | ||
|End gateways are entirely unaffected by fog.}} | |||
|{{HistoryLine||1.10|dev=16w20a|Something unspecified has changed with respect to the rendering of End portals; they now look noticeably darker than in 1.9.4.{{info needed|What changed in this version, exactly?}}}} | |{{HistoryLine||1.10|dev=16w20a|Something unspecified has changed with respect to the rendering of End portals; they now look noticeably darker than in 1.9.4.{{info needed|What changed in this version, exactly?}}}} | ||
|{{HistoryLine||1.11|dev=16w40a|End portal blocks now use the same "fixed" starfield effect that End gateways use, though without the extra blue particles gateways have. | |{{HistoryLine||1.11|dev=16w40a|End portal blocks now use the same "fixed" starfield effect that End gateways use, though without the extra blue particles gateways have. | ||
|The non-fixed version of the starfield can therefore be considered effectively removed.}} | |The non-fixed version of the starfield can therefore be considered effectively removed.}} | ||
|{{HistoryLine||1.11.1|dev=16w50a|End portals are no longer affected bizarrely by fog - they now are obscured by it more logically. End gateways still remain completely unaffected by it.}} | |||
|{{HistoryLine||1.13|dev=17w43a|The starfield animation now always appears smooth, rather than jittery or frozen as it sometimes was before this version.{{info needed|What changed? Was this an old LWJGL issue?}}}} | |{{HistoryLine||1.13|dev=17w43a|The starfield animation now always appears smooth, rather than jittery or frozen as it sometimes was before this version.{{info needed|What changed? Was this an old LWJGL issue?}}}} | ||
|{{HistoryLine||1.15|dev=19w39a|Starfields rendered by blocks are now rendered in the wrong position, or sometimes not at all.<ref>{{bug|MC-161852}}</ref>}} | |||
|{{HistoryLine|||dev=19w40a|The above bug has been fixed. | |||
|End gateway blocks are now affected by fog correctly, and end portal blocks are once again affected by fog correctly.}} | |||
|{{HistoryLine|||dev=19w41a|End portal and end gateway blocks are no longer obscured by fog.}} | |||
|{{HistoryLine||1.17|dev=21w10a|Only one instance of the "sky" texture is now rendered, and it is stretched across the entire background, unlike being repeated as it previously was.{{info needed|What does this mean in rendering/code terms? What code change happened to result in this modified outcome?}}}} | |{{HistoryLine||1.17|dev=21w10a|Only one instance of the "sky" texture is now rendered, and it is stretched across the entire background, unlike being repeated as it previously was.{{info needed|What does this mean in rendering/code terms? What code change happened to result in this modified outcome?}}}} | ||
|{{HistoryLine|||dev=21w13a|The starfield is now also rendered on the bottom of End portals, rather than only the top.}} | |{{HistoryLine|||dev=21w13a|The starfield is now also rendered on the bottom of End portals, rather than only the top.}} | ||
|{{HistoryLine||1.20.5|dev=24w09a|The starfield is now used as the background of the [[Minecraft:End Poem]] and [[Minecraft:credit sequence]].}} | |{{HistoryLine||1.20.5|dev=24w09a|The starfield is now used as the background of the [[Minecraft:End Poem]] and [[Minecraft:credit sequence]].}} | ||
|{{HistoryLine|||dev=Pre-Release 2|The starfield is now used as the background when entering or leaving the End.}} | |{{HistoryLine|||dev=Pre-Release 2|The starfield is now used as the background when entering or leaving the End.}} | ||
|{{HistoryLine||1.21.5|dev=25w07a| | |{{HistoryLine||1.21.5|dev=25w07a|On some Windows devices (seemingly those with an AMD graphics processor), the starfield now only moves down, rather than in different directions as it previously did.<ref>{{bug|MC-308516}}</ref> Devices with an Nvidia processors and those running macOS or Linux appear unchanged from the previous version. | ||
|Starfield blocks are now affected by fog correctly.<ref>{{bug|MC-152382}}, {{bug|MC-230445}}, {{bug|MC-279572}}</ref>}} | |Starfield blocks are now affected by fog correctly.<ref>{{bug|MC-152382}}, {{bug|MC-230445}}, {{bug|MC-279572}}</ref>}} | ||
|{{HistoryLine||26.1|dev=Pre-Release 1|Added the {{code|end_cube}} special model type, which can be used to create items which render the starfield effect. | |{{HistoryLine||26.1|dev=snap2|{{code|assets/minecraft/textures/entity/end_portal.png}} has been renamed and moved to {{code|assets/minecraft/textures/entity/end_portal/end_portal.png}}.}} | ||
|{{HistoryLine|||dev=Pre-Release 1|Added the {{code|end_cube}} special model type, which can be used to create items which render the starfield effect. | |||
|End portal and End gateway blocks held by endermen, displayed in minecarts or set as the displayed block of a lit TNT entity will now render the starfield, rather than being invisible as they were previously.<ref>{{bug|MC-195237}}</ref>}} | |End portal and End gateway blocks held by endermen, displayed in minecarts or set as the displayed block of a lit TNT entity will now render the starfield, rather than being invisible as they were previously.<ref>{{bug|MC-195237}}</ref>}} | ||
}} | }} | ||
| Line 186: | Line 240: | ||
===== Parallax ===== | ===== Parallax ===== | ||
{| class="wikitable" | |||
! Versions | |||
! {{code|portal}} | |||
! {{code|gateway}} | |||
! Changes | |||
|- | |||
! [[Minecraft:Java Edition Beta 1.9 Prerelease 3|Beta 1.9 Prerelease 3]]<br>to<br>[[Minecraft:Java Edition 12w24a|12w24a]] | |||
| ? | |||
! class="tc-no" rowspan="2" | - | |||
| Portal introduction | |||
|- | |||
! [[Minecraft:Java Edition 12w25a|12w25a]]<br>to<br>[[Minecraft:Java Edition 1.8.9|1.8.9]] | |||
| rowspan="3" | ? | |||
| End Sky texture change | |||
|- | |||
! [[Minecraft:Java Edition 15w31a|15w31a]]<br>to<br>[[Minecraft:Java Edition 15w32c|15w32c]] | |||
| ? | |||
| Gateway introduction | |||
|- | |||
! [[Minecraft:Java Edition 15w33a|15w33a]]<br>to<br>[[Minecraft:Java Edition 1.9.4|1.9.4]] | |||
! class="tc-no" rowspan="2" | - | |||
| Gateway now camera-independent | |||
|- | |||
! [[Minecraft:Java Edition 16w20a|16w20a]]<br>to<br>[[Minecraft:Java Edition 16w39c|16w39c]] | |||
| ? | |||
| The starfield is darker and greener | |||
|- | |||
! colspan="4" | ''Parallax starfield no longer exists from 16w40a onward'' | |||
|} | |||
===== Fixed ===== | ===== Fixed ===== | ||
{| class="wikitable" | |||
! Versions | |||
! {{code|portal}} | |||
! {{code|gateway}} | |||
! Changes | |||
|- | |||
! [[Minecraft:Java Edition 15w33a|15w33a]]<br>to<br>[[Minecraft:Java Edition 1.9.4|1.9.4]] | |||
! class="tc-no" rowspan="2" | - | |||
| ? | |||
| Fixed starfield added, used by end gateway | |||
|- | |||
! [[Minecraft:Java Edition 16w20a|16w20a]]<br>to<br>[[Minecraft:Java Edition 16w39c|16w39c]] | |||
| rowspan="2" | ? | |||
| The starfield is darker and greener | |||
|- | |||
! [[Minecraft:Java Edition 16w40a|16w40a]]<br>to<br>[[Minecraft:Java Edition 21w08b|21w08b]] | |||
| ? | |||
| Portal now camera-independent | |||
|- | |||
! [[Minecraft:Java Edition 21w10a|21w10a]]<br>to<br>[[Minecraft:Java Edition 25w06a|25w06a]] | |||
| ? | |||
| ? | |||
| Background now stretched instead of repeating, particle size seemingly increased | |||
|- | |||
! [[Minecraft:Java Edition 25w07a|25w07a]]<br>to<br>present | |||
| ? | |||
| ? | |||
| All particles now move downwards (Windows only) | |||
|} | |||
===== Blocks ===== | ===== Blocks ===== | ||
Revision as of 11:14, 1 June 2026
Template:No navbox Starfield is a unique graphical effect used for rendering certain features related to Minecraft:the End.
Use cases
Starfield effects are used for the following:
- End portal
- End gateway
- Minecraft:Endermen holding End portals or End gateways
- Minecraft:Minecarts with custom-displayed End portal or End gateway blocks
- Lit Minecraft:TNT entities set to display as End portals or End gateways
- Loading screen when entering or leaving the End
- Minecraft:End Poem background screen
- Minecraft:Credit sequence background screen
- Items using the Template:Code special model type in a resource pack
Minecraft:Falling block entities of the End portal and End gateway do not render the starfield effect, and it seems highly unlikely (although unproven) that Minecraft:moving piston blocks would either.<ref>Template:Bug</ref>
How it is rendered
Java Edition
The rendering of the starfield effect has changed several times throughout the game's history; the following is present as of Minecraft:Java Edition 26.2 Snapshot 7.
There are two subtly different gateway effects, referred to by the Template:Code special model type as Template:Code (used for end portal blocks, the dimension loading screens for entering and exiting the End, and the credits sequence and preceding poem) and Template:Code, used specifically for end gateways. The latter renders an extra layer of blue pixels which are absent from the former, which can be seen by placing the two blocks next to each other; blue pixels will disappear when they migrate to the space where the end portal is present. See later in this section for a technical explanation of the difference.
Two different texture files are utilised in generating the starfield effect:
| Template:Code | Template:Code |
| Template:Pximg | Template:Pximg |
The "End sky" texture, which is indeed the same texture used for the actual Minecraft:End sky, is used as the "background" texture: it is sampled using screen-projected coordinates and multiplied by Template:Color.Template:Info needed The shader uses the projected screen-space y-coordinate directly as the vertical texture coordinate; because the screen-projected vertical coordinate increases upwards while the texture image is displayed with its vertical axis running downwards, the background texture appears vertically mirrored.Template:Info needed
The "End portal" texture is sampled in multiple layers on top of this background. Each layer uses a different colour multiplier, scale, rotation, fixed horizontal offset, and time-based vertical offset. In the fragment shader, the RGB results of the layers are combined additively before the final colour is output with full opacity. The End portal uses 15 layers of the "End portal" texture, while the End gateway uses 16 layers. The first 15 layers are shared between both effects, while the End gateway has an additional layer using Template:Color.
The colour values used by the layers are as follows. Index 0 is also used for the "End sky" background, but the velocity listed for index 0 applies only to the first layer of the "End portal" texture. The End portal uses indices 0 through 14, while the End gateway uses indices 0 through 15. The Velocity column gives the rate at which the time-based vertical offset increases. In the current Windows behaviour, this is also the apparent downward velocity of the layer. In the pre-25w07a behaviour, where the apparent travel direction follows each layer's rotation, the same listed velocity is transformed by the layer's rotation and scale. Template:Info needed section
As of Java Edition 26.2 Snapshot 7 on Windows, these layers slowly move vertically downwardsTemplate:Verify over time. In this behaviour, the scale and rotation of each layer change the appearance of the texture pattern, but the time-based offset is applied after the rotation, so the direction of motion is not rotated with each layer.Template:Verify For the nth layer, where n starts at 1 and equals the table index plus 1, the horizontal offset is 17/n, the rotation angle is (n×n×4321+n×9)×2 degrees, and the scale is (4.5-n/4)×2. The vertical offset is (2+n/1.5)×(GameTime×1.5). Since GameTime increases by 1/24000 per game tick, the Velocity value listed in the table is (3+n)/24000. For the current Windows behaviour, this value is the apparent downward velocity in screen-projected coordinate units per game tick. For the pre-25w07a behaviour, the Rotation value gives the apparent travel direction, while the apparent travel velocity is the listed Velocity divided by the listed Scale.
The starfield effect is completely constant regardless of view: while moving and rotating the camera will change the position of the object using the starfield effect itself on screen, the starfield itself will remain fixed in place. In effect, anything using the starfield effect effectively creates what can be seen as a "hole" in the world, behind which the starfield rests. The shape of the starfield also changes with the window size, although this is presumably not intentional.<ref>Template:Bug</ref>
Bedrock Edition
The specifics of Template:El are less known, however the behaviour more closely resembles the position/rotation-based rendering as seen for end portals before JE 16w40a and end gateways before JE 15w33a (though without the latter's distortion).
History
Java Edition
Template:Info needed section Template:HistoryTable
Table of visual changes
Parallax
| Versions | Template:Code | Template:Code | Changes |
|---|---|---|---|
| Beta 1.9 Prerelease 3 to 12w24a |
? | - | Portal introduction |
| 12w25a to 1.8.9 |
? | End Sky texture change | |
| 15w31a to 15w32c |
? | Gateway introduction | |
| 15w33a to 1.9.4 |
- | Gateway now camera-independent | |
| 16w20a to 16w39c |
? | The starfield is darker and greener | |
| Parallax starfield no longer exists from 16w40a onward | |||
Fixed
| Versions | Template:Code | Template:Code | Changes |
|---|---|---|---|
| 15w33a to 1.9.4 |
- | ? | Fixed starfield added, used by end gateway |
| 16w20a to 16w39c |
? | The starfield is darker and greener | |
| 16w40a to 21w08b |
? | Portal now camera-independent | |
| 21w10a to 25w06a |
? | ? | Background now stretched instead of repeating, particle size seemingly increased |
| 25w07a to present |
? | ? | All particles now move downwards (Windows only) |
Blocks
| Versions | Template:Code | Template:Code | Changes |
|---|---|---|---|
| Beta 1.9 Prerelease 3 to 12w24a |
File:End Portal JE2.gif | Template:Tc | Portal introduction |
| 12w25a to 1.8.9 |
File:End Portal JE3.gif | Template:Tc | End Sky texture change |
| 15w31a to 15w32c |
File:End Gateway JE1.gif | Gateway introduction | |
| 15w33a to 1.9.4 |
File:End Gateway JE2.gif | Gateway now camera-independent | |
| 16w20a to 16w39c |
File:End Portal JE4.gif | File:End Gateway JE3.gif | The starfield is darker and greener |
| 16w40a to 21w08b |
File:End Portal JE5.gif | Portal now camera-independent | |
| 21w10a to 25w06a |
File:End Portal JE6.gif | File:End Gateway JE4.gif | Background now stretched instead of repeating, particle size seemingly increased |
| 25w07a to present |
File:End Portal JE8.gif | File:End Gateway JE5.gif | All particles now move downwards (Windows only) |