Перейти к содержимому


Фотография

Вывод 3D моделей на голограмму [OpenComputers]


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 740
  • Уровень сигнала: 0,27%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 18 Июль 2014 - 22:38

Над моим домом на сервере 1.6.4 можно увидеть образец. Это способ, который я разработал для того, чтобы выводить произвольные модели в виде голограммы.

Изображение

Плюсы: можно скачать любую модель (obj, 3ds) из интернета, и после небольшой доработки превратить в голограмму.
Минусы: "небольшая" обработка на самом деле настоятельно нуждается в упрощении. =)

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

Итак, исходный код программы, которая отвечает за отрисовку:
http://pastebin.com/dQqne1E2
Пример модели (фигурка человека, файл должен иметь расширение *.txt):
http://pastebin.com/1LC4mB75

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

Функция draw() переводит массив данных в проектор, внося поправку на угол. Делается это по формуле поворота точки относительно другой точки, поэтому качества особого (когда угол не кратен PI/2), к сожалению, не наблюдается.


Теперь неоптимизированная жесть - собственно процесс конвертации модели.
Потребуется:
  • Poly2Vox. "Вокселизатор" моделей. Умеет конвертировать вместе с текстурами.
  • Slab6. Воксельный редактор моделей.
Оба можно скачать здесь: http://advsys.net/ken/download.htm
  • kv6ToSchematic. Конвертер воксельных моделей *.kv6 в *.schematic
Скачать здесь: http://www.minecraft...s-with-textures
  • Архиватор ZIP. Для распаковки schematic'ов.

1) Скачиваем модель из интернета (или моделим сами).
2) Конвертируем в воксельную, с учетом того, что высота модели должна не превышать 32 вокселя (ограничение проектора OC). Для этого удобно создать батник вроде такого:
poly2vox skull.3ds skull.kv6 /v32
pause
Первый параметр - что конвертируем, второй - во что, флаг в конце - размер самой длинной стороны.
3) Открываем модель в Slab6. Проверяем, все ли на месте, корректируем, красим модель в три цвета.
4) Запускаем kv6ToSchematic и выбираем конвертацию в цветную шерсть.
5) Переименовываем готовый *.schematic в *.zip и извлекаем схему.


Теперь последний этап. Надо сконвертировать эту схему в простой 3d массив, который удобно читать.
Запускаем вот такой Lua скрипт (можно сделать аналогичный на любом другом языке, но я работаю с Lua):
http://pastebin.com/waVBhTcq
Скрипт запросит название файла, выведет немного тех.информации и создаст одноименный файл с расширением *.txt.

Вуаля! Можно запускать голограмму.
  • Alex, Fingercomp и newbie это нравится

#2 Оффлайн   Rush

Rush
  • Пользователи
  • Сообщений: 14
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 19 Июль 2014 - 20:03

программка круть пасиб, но думаю этот череп смотрелся бы более прикольно

#3 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 740
  • Уровень сигнала: 0,27%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 19 Июль 2014 - 20:58

Думал над этим =) Надо модельку хорошую найти. Я когда работал скачал первую, которую нашел.

#4 Оффлайн   Miroshka

Miroshka
  • Пользователи
  • Сообщений: 45
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 5 мин.

Отправлено 10 Ноябрь 2017 - 22:03

Код поддерживает проекцию моделей созданных в любых редакторах? К примеру на этом ?






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных