Рисовать объект через облака

Версия Minecraft
1.12.2
API
Forge
7,099
324
1,510
Рисую квад на расстоянии 100 от игрока.
На скрине видно, что через полупрозрачные облака просвечивают звезды. Мой квад не просвечивает. Как сделать, чтобы просвечивал?
Java:
@SubscribeEvent
public static void render(RenderWorldLastEvent event) {
    GlStateManager.enableAlpha();
    GlStateManager.enableBlend();
    GlStateManager.disableLighting();

    GlStateManager.pushMatrix();

    mc.getTextureManager().bindTexture(new ResourceLocation(...));

    BufferBuilder buffer = Tessellator.getInstance().getBuffer();
    buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);

    pos(buffer, p1).tex(0, 0).color(255, 0, 255, 255).endVertex();
    pos(buffer, p2).tex(1, 0).color(255, 0, 255, 255).endVertex();
    pos(buffer, p3).tex(1, 1).color(255, 0, 255, 255).endVertex();
    pos(buffer, p4).tex(0, 1).color(255, 0, 255, 255).endVertex();

    Tessellator.getInstance().draw();

    GlStateManager.popMatrix();
}
1685650146724.png
 
4,045
63
645
Дело не в прозрачности, а в z-буфере и последовательности отрисовки.
RenderWorldLastEvent рисуется последним и работает уже с финальной глубиной.
Прозрачности в канале глубины нет и быть не может, как ты понимаешь. Поэтому твой квад тупо обрубается.
Единственный выход, рисовать его перед облаками, чтобы они уже накладывались на него со своей прозрачностью.
Зайди в класс глобального рендера (или рендера мира) и найди нужный эвент.
Это либо эвент отрисовки облаков, либо неба, либо вообще фигач его в эвент отрисовки выделения блоков.
В общем, прояви фантазию )
Я не помню, какие события там есть, но их точно несколько.
 
Сверху