Предлагаю в этой теме обсудить техническую возможность создания прожектора строителя.
Проблема: В процессе строительства крупных объектов часто возникает проблема равномерного освещения строительной площадки и постоянной переукладки светильников по мере работы. Также имеющиеся светильники не всегда сочетаются со сложной архитектурой сооружения.
Предложение: Можно добавить в игру блок-прожектор работающий по такому принципу: Блок-прожектор по аналогии с детектором устанавливается в любом направлении. Если в радиусе 10 кубов уже имеется хотябы один установленный блок-прожектор, установка не происходит.
При установке блока происходит следующее: Программа на стороне сервера просчитывает координаты 32 прямых линий длиной 64 блока проходящих через блок-прожектор и расходящихся равномерным пучком в виде телесного угла 60х60 градусов.
Расчет координат производится по уравнению прямой:
Рассчитанные координаты заносятся в стек. Затем программа идет по координатам вдоль каждой линии проверяя какой блок находится в каждой точке (Xi,Yi,Zi). Если в этой точке находится блок воздуха программа переходит к следующей точке и так до первого непрозрачного блока. Как только найден непрозрачный блок в предыдущей рассчитанной точке устанавливается технический блок-источник света и прога переходит к обработке следующей линии. Если непрозрачный блок не найден на прямой (длина прямой 64 блока), прога также переходит к следующей линии. На одной линии может быть установлен только 1 блок-источник.
Свойства блока-источника света:
- обладает всеми свойствами блока воздуха (невидимость, проходимость и т.п.)
- создает освещение 15 единиц
- исчезает при установке на его месте любого блока.
В итоге программа запрашивает свойства не более 32*64 = 2048 блоков для установки не более 32 источников света. Для уменьшения нагрузки на сервер при установке/эксплуатации блока предусмотрено ограничение плотности установки блоков (1 блок на 10 кубов), баф "опасный блок" 10 сек., высокая прочность блока как у сверхпроводника.
Таким прожектором можно будет освещать территорию города, окружающий ландшафт, создавать архитектурную подсветку высотных строений и т.п. В данной реализации возможна установка направления прожектора на 0, 90, 180 и 270 градусов, можно обсудить варианты установки под произвольными углами - тогда в блок-прожектор придется добавлять какой-нибудь интерфейс для смещения пучка линий на углы меньше 45 градусов.
Крафт и текстуру блока-прожектора не превожу т.к. в данной теме обсуджается только техническая возможность реализации подобного алгоритма.
Думаю, основная техническая проблема состоит не в том, как поставить блок-прожектор, а в том, как его корректно убрать дабы потом не оставалось фантомных источников света.
--- Добавлено в 2012-11-21 12:07:20
Сейчас прикинул, при 32 линиях и телесном угле 60х60 плотность источников света быстро падает с расстоянием. Более сбалансированным вариантом будет 32 линии длиной по 48 блоков каждая и 45х45 телесный угол.
Этот топик читают: Гость
Ответов: 884
|
|||
карма: 136 |
| ||
Голосовали: | wthout_brain, Steone, Flane |
Ответов: 195
|
|||
было-бы неплохо,а то,когда строишь большие конструкции свет везде расставлять задолбаешься,я за.
|
|||
карма: 1 |
|
Ответов: 4446
Steons Clan
лидер |
|||
Хм.. Неплохо проработана идея.
|
|||
карма: -110 |
|
Ответов: 73
Monte Carlo
Неактивен |
|||
хм...действительно нужная вещь,а то и в правду,город тяжело освещать.
|
|||
карма: 14 |
|
Ответов: 1543
|
|||
Выглядеть будет так, верно?
По теме: За, будет неплохо. Придумай крафт и текстуруНа крайняк, отдай мне |
|||
карма: 22 |
|
5