Дублирование облаков (1.7.10)

Так! А вот теперь прошу откликнуться знатоков рендера, эвентов и всего такого )))
Нашёл такую штуку как DrawBlockHighlightEvent!
Если рисовать облака в нём, то полупрозрачные блоки перед облаками становятся видны!!! :D
Однако, сразу за облаками они пропадают )))

Это, конечно, существенно лучше, чем было раньше, однако, хотелось бы решить эту задачку до конца.
Может быть у кого-нибудь появятся идеи?

Судя по описанию, эвент срабатывает, когда блок под мышкой... освещён? О_о
Что бы это ни значило, НО! выходит, что можно нормально отрисовать облака... Вот найти бы только нужный момент.

Никто не знает евент, который срабатывает при отрисовке пассов блока?
 
Наверное это из-за порядка отрисовки. :wassat:
 
Так и я о том!
Стёклышко и, видимо, вода рисуются в пассе №1... Соответственно, мне нужно как-то отловить момент между 0 и 1 :sideways:
Или я уже это сделал... Хм... Или... Или сами облака нужно рисовать в этом же пассе...
[merge_posts_bbcode]Добавлено: 25.06.2016 15:13:50[/merge_posts_bbcode]

А вообще, как всё это работает?
Разные пассы рисуются в разных фреймбуферах, а потом складываются?
 
renderPassword*
Это переменная, которая говорит как рендерить блок :D
 
Легче было разобраться с шейдерами, где туман - постэффект
 
Кстати, DrawBlockHighlightEvent срабатывает при отрисовке выделения блока ))) Ибо оно за облаком тоже не видно.
[merge_posts_bbcode]Добавлено: 25.06.2016 15:27:28[/merge_posts_bbcode]

Легко сказать... Не даются мне шейдеры...
 
Liahim написал(а):
Итак! Описываю наблюдения.
Во-первых, с исчезновением блоков, видимо, пока придётся смириться (((
Если никто не подскажет какой-нибудь костыль...
Во-вторых, удалось выяснить принцип... или поведение рендера облаков (читай правильно: костыль разработчиков), а именно:
Оказалось, что всё зависит от высоты :D Кто бы мог подумать?
В общем, чтобы блоки стекла снизу смотрелись нормально, разрабы установили границу в 128 блоков (то есть высота облаков). Ниже этой границы облака рендерятся без полупрозрачности! Каким-то макаром их цвет смешивается с цветом неба, но блоков над ними в этот момент не видно.
А вот если подняться выше этой границы, тут-то и появляются все косячки... Через облака же нужно смотреть на землю... и они становятся полупрозрачными... И в этот момент даже ванильные облака перекрывают собой блоки...
Где изменить этот уровень - не знаю... Может, кто подскажет?
Хотя, это мне не поможет, ибо альфа мне нужна по любому.


Как-то так...
В общем, печаль, печаль, слеза...
Этот уровень (вроде) в EntityRenderer в renderWorld:
Код:
            if (entitylivingbase.posY < 128.0D)
            {
                this.renderCloudsCheck(renderglobal, p_78471_1_);
            }
            ...
            if (entitylivingbase.posY >= 128.0D)
            {
                this.mc.mcProfiler.endStartSection("aboveClouds");
                this.renderCloudsCheck(renderglobal, p_78471_1_);
            }
 
wilah, в качестве затравки, ты вот мне можешь показать рабочий код в шейдере, с помощью которого можно было бы определить высоту точки в мире?Я как не пытался, у меня не выходит... По крайней мере на основе атрибута Position.
Даже тупо глубину картинки выяснить не могу.
[merge_posts_bbcode]Добавлено: 25.06.2016 15:39:12[/merge_posts_bbcode]

О! Спасибо nikita488 )
 
Равен сделал либу с божественным кодом и простой реализацией,где уже даны на блюдичке VBO , FBO и куча всего
 
Нашёл алгоритм. Как вылечусь, попробую сделать туман
 
При виде слова "облака" в названии темы, в голову сразу стукнула мысль об облачных хранилищах, а не облаках в майнкрафте :/
 
AlexSocol написал(а):
Drovosek написал(а):
При виде слова "облака" в названии темы, в голову сразу стукнула мысль об облачных хранилищах, а не облаках в майнкрафте :/
И к чему это?
Возможно он про "бэкапы" на облако. Например Dropbox, google drive или из десятки OneDrive.
[merge_posts_bbcode]Добавлено: 26.06.2016 04:20:10[/merge_posts_bbcode]

Хотя есть какой то мод для локальных "бэкапов" локального мира.
 
virysD написал(а):
AlexSocol написал(а):
Drovosek написал(а):
При виде слова "облака" в названии темы, в голову сразу стукнула мысль об облачных хранилищах, а не облаках в майнкрафте :/
И к чему это?
Возможно он про "бэкапы" на облако. Например Dropbox, google drive или из десятки OneDrive.
[merge_posts_bbcode]Добавлено: 26.06.2016 04:20:10[/merge_posts_bbcode]

Хотя есть какой то мод для локальных "бэкапов" локального мира.
Нет, просто это вообще оффтоп. Тут вопросы задают и дают ответы, а это к теме никак не относится. На счёт мода - это WorldState Checkpoint
 
nikita488 написал(а):
Liahim написал(а):
Итак! Описываю наблюдения.
Во-первых, с исчезновением блоков, видимо, пока придётся смириться (((
Если никто не подскажет какой-нибудь костыль...
Во-вторых, удалось выяснить принцип... или поведение рендера облаков (читай правильно: костыль разработчиков), а именно:
Оказалось, что всё зависит от высоты :D Кто бы мог подумать?
В общем, чтобы блоки стекла снизу смотрелись нормально, разрабы установили границу в 128 блоков (то есть высота облаков). Ниже этой границы облака рендерятся без полупрозрачности! Каким-то макаром их цвет смешивается с цветом неба, но блоков над ними в этот момент не видно.
А вот если подняться выше этой границы, тут-то и появляются все косячки... Через облака же нужно смотреть на землю... и они становятся полупрозрачными... И в этот момент даже ванильные облака перекрывают собой блоки...
Где изменить этот уровень - не знаю... Может, кто подскажет?
Хотя, это мне не поможет, ибо альфа мне нужна по любому.


Как-то так...
В общем, печаль, печаль, слеза...
Этот уровень (вроде) в EntityRenderer в renderWorld:
Код:
            if (entitylivingbase.posY < 128.0D)
            {
                this.renderCloudsCheck(renderglobal, p_78471_1_);
            }
            ...
            if (entitylivingbase.posY >= 128.0D)
            {
                this.mc.mcProfiler.endStartSection("aboveClouds");
                this.renderCloudsCheck(renderglobal, p_78471_1_);
            }
Ещё немного по поводу облаков.
Как я описывал выше, есть определённая граница на высоте 128 блоков, относительно которой меняется прорисовка облаков. Ниже неё облака рисуются НЕпрозрачными, а выше - приобретают альфу.
Это условие, как подсказал nikita488, прописано в EntityRenderer.
В моём измерении облака находятся значительно выше и с прозрачными объектами возникает проблема, которую я в этой теме и пытаюсь решить.
Вопрос: как можно изменить данную высоту?

В голову приходят три варианта (прошу дать совет, какой из них выбрать):
1 - Заменить EntityRenderer на свой и в нём уже прописать нужные параметры (в этом случае даже не знаю, как всё это может отразиться на игре и какие вылезут глюки).
2 - Отрисовать облака самому. Не через renderClouds, а просто в каком-либо эвенте (в этом случае все глюки будут касаться только моих облаков и ничего больше).
3 - Каким-либо иным способом поменять это условие на нужное (прошу подсказать, как это можно сделать).

Спасибо за совет )
 
Народ, как нужно настроить ГЛ11, чтобы отрисовать не полупрозрачные, а прозрачные объекты... То есть, чтобы прозрачных пикселей вообще не было видно (даже в буфере глубины), а непрозрачные были видны.
 
Назад
Сверху