Перейти к публикации
Форум - ComputerCraft
Totoro

GeoMap - голографическая карта

Рекомендованные сообщения

2015-02-17_21.51.24.png

 

Автором идеи является 1Ridav.

Как-то давным давно, в Мамбле, он предложил создать на основе геосканера карту сервера для спавна.

Чтобы игроки могли побродить по уменьшенной копии сервера, и поглазеть на ландшафт/постройки.

 

Суть такова:

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

Под полом располагается сетка проекторов, компьютер и геосканер.

Программа сканирует сервер (загруженные чанки) и формирует на основе этих данных карту высот.

Карта режется на прямоугольные фрагменты и выводится на проекторы.

 

На скриншоте сверху, я сделал тестовый рендер для одного проектора. За основу взят мой мир-полигон для программ.

 

 

Предлагаю довести программу до ума, и как вариант сделать где-нибудь такую карту на IT 1.7.10. Возле спавна, чтобы те, кто заходит на сервер, могли побродить и посмотреть.

 

Что надо обдумать:

1) Как красить?

Проекторы имеют три цвета.

Я думаю один будет - синий. Им надо покрасить все плоскости на высоте y=64 - уровень моря.

Оставшиеся два цвета надо как-то распределить по террайну, чтобы вид карты не вызывал эпилептических припадков. =)

 

2) Делать ли пустоты по высоте?

На скриншоте сверху я сделал простую карту высот. Т.е. она состоит как бы из столбиков разной высоты. Можно сделать ее более сложной, отобразив пустоты.

 

3) Сжимать ли масштаб?

Сервер имеет размеры примерно 4000 на 4000. Проектор - 48 на 48.

Т.е. чтобы отобразить всю карту в полный размер понадобится около 7056 проекторов и зал аналогичной площади.

Надо либо отобразить на карте фрагмент мира, разумного размера,

либо уменьшить масштаб карты, усреднив карту высот.

Изменено пользователем Totoro
  • Like 6

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2015-02-18_00.06.07.png

 

Сделал сетку 5х5 проекторов, настроил вывод одной гигантской голограммы.

И тут же уперся в ту проблему, на которой застопорился в прошлый раз. :mellow:

 

Для работы такой карты нужен спутник (как для Google Maps)!

Радиус досягаемости для геосканера - квадрат 4 на 4 чанка, с геосканером в середине.

Поэтому нужно запустить робота или дрона, который будет летать на высоте в 255 по всему серверу, возить с собой геосканер, картографировать местность и отсылать данные на сервер карты.

Вроде - нет проблем. Геосканер к роботу присобачить - не проблема. Данные послать - можно через связные (туннельные) платы.

 

НО! На сервере IT понерфили чанклодеры для роботов :lol:

В первые секунды работы, у робота сядет батарея и он отключится.

 

Выходит, для работы местных GoogleMaps нужен пастух-картограф =)

Такой специальный игрок, который будет ходить/летать вслед за роботом по всему серверу, работая чанклоадером.

 

Учитывая, что солнечная батарея дает мало энергии, а геосканер наоборот, жрет ее очень много. Путешествие это грозит сильно затянуться. :)

 

И на этом месте я серьезно задумался.

Изменено пользователем Totoro
  • Like 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Достал бубен и провел пару замысловатых обрядов вокруг геосканера.

 

Отрендерилась карта моего полигона (компьютер в середине).

Гм. Я даже не знаю. У меня отсутствуют подходящие сравнения для этого галлюциногенного буйства красок.

 

2015-02-18_03.53.10.png

 

2015-02-18_04.01.59.png

 

Карта - квадрат 15х15 чанков. Или 240х240 блоков. По высоте немного сглажено, по ширине и длине масштаб 1 в 1.

Изменено пользователем Totoro
  • Like 8

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Офигенно. Отличную работу делаешь, супер. Такие места будут определенно "лицом" наших серверов.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может красный заменить на серый? Типа булыжник.

А сканирование при помощи робота это единственный способ получения карты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что если сжать изображение до 1 чанк/пиксель? Таким образом потребуется всего 27 проекторов.

Креативного робота на ИТ еще пока не существует, да?

Можно использовать автоматический зарядку робота от связки квантовой зарядки (креативная) + чарджер, которые Р будет ставить, когда заряд < 10%

Можно слать 2х Р друг за другом, где один - спутник, летящий и снимающий карту, подгружая чанки обычными якорями, а второй - уборщик, снимающий их на пройденных частях (растояние между ними ~ чанк).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем вообще роботы? Карту можно просканировать AMI-интерфейсом

  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем вообще роботы? Карту можно просканировать AMI-интерфейсом

 

Ты прав. Я что-то зациклился на геосканере и не подумал о других вариантах, с поддержкой админа :D

Наверное с недосыпа.

Сегодня перепишу немного программку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем вообще роботы? Карту можно просканировать AMI-интерфейсом

Если это правда (а я склонен верить Зеро), тогда к чему изобретать велосипед? О.о

А вот AMI просканирует карту, но в каком формате будет сохранена полученная информация? Или это вообще не имеет значения?

И как он будет сканить карту: почанково глядеть на блоки в нем от 0 до 256-ти или же просто достанет инфу откуда-нибудь из сейва (кстати было бы неплохо именно так и сделать, а также добавить проверку после каждого рестарта на момент изменения сохраненного материала)?

Ну и напоследок: дайте, пожалуйста, ссыль на вики (или аналог), где описывались бы все возможности AMI (*-*)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну и напоследок: дайте, пожалуйста, ссыль на вики (или аналог), где описывались бы все возможности AMI (*-*)

 

Вот, тут есть описание.

Если он заработает с ОС, это будет идеальный вариант для карты.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот, тут есть описание.

Если он заработает с ОС, это будет идеальный вариант для карты.

Работает он, на МТ по меньшей мере :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тоторо, а ты не слишком замахиваешься? Тут целая серверная машина карту обрабатывает, а ты хочешь на каком то ОСном компе ее сосчитать и отобразить. У тебя ж даже оперативы не хватит массив такой хранить.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще как бы всю карту сканировать нет надобности, это долго и затратно по ресурсам. И АМИ тоже не сможет просканировать незагруженные чанки.  Ничего на просторах майна на карте в размере 5000х5000 блоков интересного нет, тем более в RGB

 

А вот сделать скан некоторых областей (строения, статуи и т.п) и просматривать эти кусочки в виде прокрутки слайдов было бы намного проще и интереснее. Там могу и чанклоадеры поставить. То есть, например, божество какое-то у нас было на 1.6.4 (строил я когда-то) какие-то дельты рек, красивые места карты и пару строений или городок игроков.  3-х цветный RGB пустой ландшафт слишком вырвиглазный и неузнаваемый.

 

Нужно просто несколько (5-10 шт.) 3D слайдов, которые игроки могут реально узнать на карте "в живую" и сравнить с голограммой. Слайды можно просто добавлять в конфиг-файл в виде координат(размера) куба и в цикле по кругу их проматывать кнопочками.

 

Нам же важен сам программный принцип сканирования кусочка местности и отображения на проректоре, а не гигантизм и поворот рек в другую сторону в Сибири, как хотели сделать при коммунизме :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Работает он, на МТ по меньшей мере :)

 

У меня отказался работать, собака. Как компонент он видится, большая часть функций работает, но возвращают некорректные таблицы.

 

Но это неважно, потому что у меня наступило просветление в голове, и я вспомнил что в OpenComputers есть Debug Card.

Я переписал программу под него и изменил цветовую гамму на оранжевый-серый-голубой.

Включил отображение пустот, стало видно деревья.

Теперь карта рендерится и напоминает колонию инопланетных грибов :D

 

 

Тоторо, а ты не слишком замахиваешься? Тут целая серверная машина карту обрабатывает, а ты хочешь на каком то ОСном компе ее сосчитать и отобразить. У тебя ж даже оперативы не хватит массив такой хранить.

 

Неа :)

Мне не надо ее постоянно мониторить, как это делает серверная машина.

Я ее потихонечку отсканирую, не торопясь.

Моя программа тоже на серверной машине стоит (из ОС) :D

Там четыре планки алмазной памяти. Можно весь сервер поблочно сохранить.

А если сразу закинуть на проектор, то можно вообще не сохранять ничего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Алекс, коварный AMI умеет сам чанки подгружать =)

 

А вообще согласен. Карта выглядит загадочно и не очень наглядно.

В принципе можно сделать на карте зону спавна - 200 блоков. И покрасить по-приличнее.

У нас пока все интересные постройки там.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Алекс, коварный AMI умеет сам чанки подгружать =)

 

А вообще согласен. Карта выглядит загадочно и не очень наглядно.

В принципе можно сделать на карте зону спавна - 200 блоков. И покрасить по-приличнее.

У нас пока все интересные постройки там.

 

Не знал. А какой метод грузит заданный чанк?

 

И забывал спросить. Сколько времени самому продвинутому ПК ОС нужно для полного просчета с нуля теры 9х9 чанков и по толщине, например, 60 блоков с выводом на проектор в монохромке (а это не много не мало, но все таки 1 244 160 блоков)? Больший размер 3D слайда делать нет смысла.

 

П.С. И сколько можно цветов в проекторе  использовать вообще? Если сканировать АМИ, то можно же получить больше данных(ID), чем геосканером (плотность, раньше была, сейчас не знаю даже, что он меряет) То некоторые блоки ведь можно раскрасить из известных ID, а неизвестные закрашивать серым. Или проектор работает только с тремя цветами какими-то?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не знал. А какой метод грузит заданный чанк?

 

И забывал спросить. Сколько времени самому продвинутому ПК ОС нужно для полного просчета с нуля теры 9х9 чанков и по толщине, например, 60 блоков с выводом на проектор в монохромке (а это не много не мало, но все таки 1 244 160 блоков)? Больший размер 3D слайда делать нет смысла.

 

П.С. И сколько можно цветов в проекторе  использовать вообще? Если сканировать АМИ, то можно же получить больше данных(ID), чем геосканером (плотность, раньше была, сейчас не знаю даже, что он меряет) То некоторые блоки ведь можно раскрасить из известных ID, а неизвестные закрашивать серым. Или проектор работает только с тремя цветами какими-то?

 

У AMI ко все методам есть такая приписка:

-- Returns the block ID at the given coordinates. Loads the chunk if necessary.
ID = w.getBlockID(x, y, z)

Т.е. если ему надо, он берет и подгружает чанк.

 

Время не замерял, надо проверить будет. Но оно сильно зависит от метода сканирования.

Я для скриншотов реализовал сканирование "по верхушкам". Он определяет только максимальную высоту в каждой клетке карты.

 

Проекторы могут использовать произвольные цвета, но не больше трех. (А проекторы 1 уровня - вообще только один).

Можно попробовать поставить два проектора рядом и отрисовывая изображение на каждом с небольшим сдвигом добиться шестицветной картинки. Но это будет гораздо сложнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сканирование "по верхушкам", это здорово и разумно! Согласен. Ты сканируешь АМИ-шкой столбик сверху вниз, пока не встретишь твердый блок (не воздух)?

Но это подойдет для ландшафта только, ведь?  А если, например, нужно отсканить Божество? Как быть тогда. Там же лапы, руки, ноги, клешни.

 

И, кстати, монохромку, наверно, быстрее отрендерить, и менее вырвиглазно будет. Одноцветный слайд голограммы серенький или зелененький - это классика, раз только 3 цвета можно использовать в проекторе, то, имхо, лучше вообще один цвет брать.

 

П.С. То, что АМИ подгружает чанк, это здорово, а то я все время опасался незагруженных чанков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сканирование по верхушкам, это здорово и разумно! Согласен. Ты сканируешь столбик сверху вниз, пока не встретишь твердый блок (не воздух)?

Но это подойдет для ландшафта только, ведь?  А если, например, нужно отсканить Божество? Как быть тогда. Там же лапы, руки, ноги, клешни.

 

И, кстати, монохромку, наверно, быстрее отрендерить, и менее вырвиглазно будет. Одноцветный слайд голограммы серенький или зелененький - это классика, раз только 3 цвета можно использовать в проекторе, то, имхо, лучше вообще один цвет брать.

 

П.С. То, что АМИ подгружает чанк, это здорово, а то я все время опасался незагруженных чанков.

 

Да примерно так. Я сделал два варианта алгоритма.

Первый - сканирует, пока не упрется в твердый блок.

Второй - делит диапазон надвое, и проверяет видно ли в середине небо. Если видно - сдвигает верхнюю границу, если не видно - нижнюю.

Потом опять делит. И так находит точную высоту.

Не уверен, какой из них быстрее вышел =)

 

Для построек и божества, я использую другой алгоритм. Он сканирует всю толщу, и отображает пустоты.

 

Можно и монохромную карту замутить. Я попробую скриншот сделать. Но на монохромной будет детали плохо видно.

Изменено пользователем Totoro

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Самое время оживить тему, ведь текущие территории очень даже хорошо лягут в такую карту и хватит 20-30 проекторов чтобы покрыть все текущие домики.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Самое время оживить тему, ведь текущие территории очень даже хорошо лягут в такую карту и хватит 20-30 проекторов чтобы покрыть все текущие домики.

Интересно, область какого размера ты планируешь покрыть 30 проекторами?

Спавн + 8 ближайших к нему приватов? Это точно не "все текущие домики".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сейчас слетал от спавна на север до 2600. Ровно 5 домиков плюс 2 здоровых херни в виде коробки. Остальное околостандартный дом с растительностью снаружи.
На юг ситуация до 3000 не сильно лучше. 6 домиков и пару почти домиков. Придётся строить карту не по порядку, т.к.эти 10-15 домиков и есть все построенные домики в пределах 3к блоков от спавна.

Изменено пользователем KelLiN

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Сейчас слетал от спавна на север до 2600. Ровно 5 домиков плюс 2 здоровых херни...

 

прогеры домики не строят. Они предпочитают жить или в норе, как гномы, или в лучшем случае в стеклянном аквариуме в виде коробки из стекла чизеля :)

 

п.с. А с какой целью ты ищешь "домики"? Для чего они тебе? Запихивать их в проектор? Зачем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Точно. Обожаю рыть норы, чтобы в норах строить коробки. Зато рабочее пространство функционально, а порча территории минимальна.

 

Сейчас слетал от спавна на север до 2600. Ровно 5 домиков плюс 2 здоровых херни в виде коробки. Остальное околостандартный дом с растительностью снаружи.

Отлично! Можно сильно сэкономить на хранении общей карты, применив дельта-кодирование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×