TauCetiClassic icon indicating copy to clipboard operation
TauCetiClassic copied to clipboard

Lighting updates, new starlight

Open volas opened this issue 1 year ago • 10 comments

Описание изменений

Твики света и новая версия света от звезд - теперь цветная! Спасибо TG и Beestation за некоторые наработки и идеи.

Превью

Мне лень делать видео.

Tau Ceti Station 2024-02-25 001435 Tau Ceti Station 2024-02-25 001408 Tau Ceti Station 2024-02-25 001538

Основные изменения:

  • Сервер инициализируется быстрее, в основном за счет убийства корявого create_all_lighting_objects() и спавна /atom/movable/lighting_object по требованию.
  • За счет этого удалось включить динамический свет для всего космоса (!) без особых последствий.
  • Так как теперь lighting_object не всегда присутствует на карте, для темноты добавлен отдельный слой на экран клиента.
  • Starlight работает на плейнах и был повышен до звания Environment Lighting. Он теперь красивее, с большими возможностями, и почти не затратен для сервера. В связи с этим, конфиг для включения старлайта был удален.
  • Были добавлены эффекты на глобальный свет для ивента radstorm и на вызов нарси.
  • Был переписан не динамический свет, убрано не очевидное дублирование параметров у зон и тайлов. Теперь задаётся от зоны. Таким зонам добавлен свой environment свет, так что Голодек выглядит лучше.

Environment Lighting это вторая "легкая" система освещения на плейнах, не зависимая от обычного динамического света, но совместимая с ней. Может использоваться как глобальный внешний натуральный свет, уникальный для каждого Z-уровня: свет от звезд, планетарные день/ночь. Отдельно возможно задавать независимое фоновое освещение для зон.

Глобальный свет можно централизовано обновлять для всех клиентов, в том числе плавно с применением анимаций. Это позволяет создавать авроры (пример можно посмотреть по ссылке у Beestation ниже), или какие-то еще эффекты.

Сам фреймворк еще нуждается в упорядочивании, сейчас меня на это не хватило. Возможно стоит перенести холдер в SSenvironment, или еще лучше объединить SSenvironment и SSmapping. И я отложил мап конфиг с индивидуальными настройками карт, так как пока не представляю, как лучше реализовать.

Известные проблемы, которые я не решу в рамках PR-а:

  • Камеры опять сломаны. Я минимизировал проблему, они вполне юзабельны, но не представляю как починить нормально. Нужно как-то научиться прокидывать /fullscreen/ в них.
  • Космический свет просвечивает сквозь наши шаттлы - выглядит красиво, декларирую это как фичу.
  • Анимация перехода освещения при смене z-уровней может выглядить коряво, если на самом уровне тоже присутствует анимация (аврора). Есть вариант убрать её вовсе перед мержем, но мне кажется не критично и я бы оставил.
  • Надо обновить космос/паралакс и сделать так, чтоб он не красился от обычных источников освещения.

Почему и что этот ПР улучшит

Красиво, немного быстрее запускается сервер, новый класс эффектов.

Авторство

Это оригинальный PR, но в основе лежат идеи и некоторый код с BeeStation: https://github.com/BeeStation/BeeStation-Hornet/pull/9577/, и TG-station https://github.com/tgstation/tgstation/pull/78877/

Чеинжлог

:cl:

  • rscadd: Новый цветной внешний свет, несколько апдейтов света обычного, пишите багрепорты если что-то сломалось.
  • rscadd: Во время радиационного шторма можно любоваться авророй за окном.

volas avatar Feb 25 '24 01:02 volas

Changelog status: :heavy_check_mark:

TauKitty avatar Feb 25 '24 01:02 TauKitty

Cейчас на сандбоксе был и если были вопросы насчёт производительности, то лагов я не заметил (быстро облетал, стрельба, обычная ходьба) при условии, что у меня крайне слабый пк.

AzzyDreemurr13 avatar Feb 26 '24 17:02 AzzyDreemurr13

говорят ночное зрение у таяр не работает (которое обычно в полной темноте включается)

muWander avatar Mar 01 '24 14:03 muWander

после тестмержа этого пра неожиданно поломался сон, позже напишу ишуй да

maleyvich avatar Mar 01 '24 14:03 maleyvich

Сон поломался раньше.

Deahaka avatar Mar 01 '24 14:03 Deahaka

Спасибо за багрепорты, хотя многие вещи я тестил но последние патчи что-то всё же сломали. Я посмотрю на выходных и верну в ТМ.

volas avatar Mar 01 '24 20:03 volas

В параллаксе звезды сделать не окрашенными возможно?

UDaV73rus avatar Mar 01 '24 21:03 UDaV73rus

я пока не знаю, как, но это цель в перспективе. Особенно если будут туманности и прочие обновления параллакса.

volas avatar Mar 01 '24 21:03 volas

туманчик отдельным слоем и так есть! были наработки с ивентами отображающимися в параллаксе, но никто кодерской помощи не пообещал, по этому не стал доделывать

Видосы

видик со звуком

https://github.com/TauCetiStation/TauCetiClassic/assets/33157992/50b8dfe7-8bb1-4c43-a39b-fefa03432b43

https://github.com/TauCetiStation/TauCetiClassic/assets/33157992/3975ebb7-6ec3-4b13-9384-0142b9145a19

UDaV73rus avatar Mar 01 '24 21:03 UDaV73rus

Сейчас в теории туман можно белым делать, и накладывать на него общий цвет старлайта, как делают тг. Я на данный момент наелся, и пока не хочу в этой итерации ничего больше делать кроме фиксов, но можно будет вернуться к этому позже.

volas avatar Mar 01 '24 22:03 volas

К этому еще надо будет вернуться, но в целом готово для мержа.

volas avatar Mar 12 '24 04:03 volas