Свой порядок рендера объектов

Версия Minecraft
1.19.4
API
Forge
52
1
1
Сделав рендер сущности я столкнулся с тем, что разные прозрачные объекты странно взаимодействуют друг с другом. Как только два прозрачных объекта начинают рендерится друг за другом и в рендере обоих используется глубина, все к чертям ломается. То ли один объект за другим не рендерится, то ли наоборот.
Насколько я понимаю проблема в том, что порядок рендера объектов немного странный. Можно ли это исправить и с чего начать?
 
Решение
Беда не в смешивании, а в буфере глубины, куда альфа не записывается.
В настройках где-то можно включить улучшеной качество рендера, и там он адекватно смешивает всё и вся с учётом дальности.
Но, если хочешь, чтобы работало при любых настройках, предлагаю для начала отключить запись в z-bufer своего ореола. А дальше уже разбираться с последствиями )))
Либо рисовать сферки самыми последними, после отрисовки прозрачных объектов. Но тогда уже они сами не будут видны за этими обьектами.
428
41
108
Насколько я понимаю проблема в том, что порядок рендера объектов немного странный
Смотри в сторону функции смешивания (что-то вроде такого)
Java:
GlStateManager.tryBlendFuncSeparate(
    GlStateManager.SourceFactor.SRC_ALPHA,
    GlStateManager.DestFactor.ONE,
    GlStateManager.SourceFactor.ONE,
    GlStateManager.DestFactor.ZERO
);
 
4,045
63
645
Беда не в смешивании, а в буфере глубины, куда альфа не записывается.
В настройках где-то можно включить улучшеной качество рендера, и там он адекватно смешивает всё и вся с учётом дальности.
Но, если хочешь, чтобы работало при любых настройках, предлагаю для начала отключить запись в z-bufer своего ореола. А дальше уже разбираться с последствиями )))
Либо рисовать сферки самыми последними, после отрисовки прозрачных объектов. Но тогда уже они сами не будут видны за этими обьектами.
 
Сверху