7 часов на конус с шейдером

5,149
49
899
2025-05-10_02.34.09.png
стоило оно того, как думаете? А сколько у вас ушло времени на первый рендер с шейдером?)
 
Немного не понял, а где в этом случае нужен шейдер?
Размытие цвета на конусе интерполируя альфу от вершины к основанию конуса. Чтобы визуально создавался эффект сходящего на нет пучка. Да, это GLSL обычный.
@Liahim так и задумано что его почти не видно. Только иногда под некоторыми углами можно увидеть желтые отблески. Я скоро анонсирую что я тут за проектик задумал)
По поводу освещения территории - оптифайщиной я заниматся не стал и ограничился установкой блоков света так же в форме расходящегося конуса в Direction которую установлен прожектор
 
Последнее редактирование:
Там тикающий энтити, который раз 4 секунды проверяет, на местах ли его блоки света, если нет - ставит. Я подумал раз в 4 секунды это не сильно заметно и наиболее компромиссный выход с точки зрения оптимизации
 
Последнее редактирование:
Можно сделать как-то так:
1. прожектор вычисляет луч, все позиции луча (блоки света) положить в список (с ограниченным радиусом и т.д.)
2. если блок на позиции из списка сломался, заменить воздух на блок света
3. если поставился блок, то заменить на воздух блоки света, которые идут дальше по лучу
4. если прожектор сломался, заменить блоки света на воздух по списку
 
А если я таких прожекторов целое поле поставлю? )
А ты не ставь целое поле. Они не для этого. Я же мод делаю основываясь на своей идее и своем видении. То что кто то будет пользоваться этим неправильно - это его проблемы. Мод в паблике и бесплатно.
Кроме того, у него в энтити хранится кэш позиций, которые создаются один раз при установке блока, и он на них ставит. Тиканье проверяет только на изменение. И доустановка блоков происходит только если произошло изменение. В противном случае тики впустую идут и по сути ничего не делают. Поэтому реально устроить лагодром будет только если включать и выключать это поле прожекторов каждый тик)

крч говоря, все возможные меры, какие смог продумать, по предотвращению лагодрома со своей стороны, я принял. Если человек упорно хочет выстрелить себе в ногу (найти специальную ситуацию и устроить себе лагодром), то кто я такой чтоб ему мешать?)
 
Последнее редактирование:
Какие тени? Ты вроде моддингом давно занимаешься. Какие могут быть тени если за столбом будут блоки света, лол?
Тут нет никакого рейтрейсинга. Тупо костыльный свет, потому что нормально модификации света forge до сих пор не завезли. Хотя давно пора кмк
 
Я пытался найти варианты, но единственный не лезть в ядро и не ломать совместимости - ставить блоки света. Увы.
 
Шейдер для пучка света - бред. Ты мог спокойно тесселятором это сделать. Также если это блок с шейдером, то лагодром в студию, потому что нужно собирать все блоки с твоим "конусом" и одним включением шейдера рисовать конусы, потом можно свапать. Плюс не забываем о прозрачности. В общем никакие кэши тут не помогут, фпс всё равно улетит вниз при большом кол-ве светильников
 
Так там конус рисуется тесселятором, а на него накладывается шейдер
spotlight src
 
1750276180931.png
Статику мог бы и в массив закинуть. Касаемо шейдера я уже ответил, что это бред. Необходимо такой рендер собирать в батч и рисовать разом, а не каждый раз туда-сюда шейдерную программу биндить/анбиндить

P.s. для общего понимания, возьми chain фбо майновского, добавь туда свой шейдер и будет тебе счастье. Только не забудь про полупрозрачные объекты и правильно отсортируй свой рендер.
 
Назад
Сверху