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


Фотография

Hologram Editor [OpenComputers]


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

#31 Оффлайн   1Ridav

1Ridav

    Орден К.А.

  • Администраторы
  • Сообщений: 279
  • Уровень сигнала: 4,07%
  • В игре: 32 час. 57 мин.

Награды

            2      

Отправлено 16 Октябрь 2014 - 21:50

На спавн эти голограммы надо поставить. Заходит игрок и видит аллею произведений искусства! Очень даже поднимет настроение и возможно подтолкнет учиться делать такие штуки
  • Krutoy, Totoro, Fingercomp и еще 1 это нравится

#32 Оффлайн   Totoro

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

Награды

                                      

Отправлено 17 Октябрь 2014 - 00:19

Хочу анимацию голограммы как в StarCraft2

А вот это - Крутому.

Изображение



#33 Оффлайн   Krutoy

Krutoy
  • Гуру
  • Сообщений: 499
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 17 Октябрь 2014 - 07:54

Изображение
  • Syabro, Totoro, FellHead и еще 1 это нравится

#34 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 229
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 17 Октябрь 2014 - 15:40

Тоторо, не думал про алгоритмы сжатия изображений?

#35 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 759
  • Уровень сигнала: 4,5%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 17 Октябрь 2014 - 16:25

Тоторо, не думал про алгоритмы сжатия изображений?

уже придуман.

#36 Оффлайн   Totoro

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

Награды

                                      

Отправлено 17 Октябрь 2014 - 16:39

Тоторо, не думал про алгоритмы сжатия изображений?

Да, думал. Как NEO сказал, уже слегка пожали изображения. С 73 кБ до 19.
Я возможно добавлю ужатие блоков одинаковых байтов. Это позволит избавиться от орд нулей, которые зополоняют каждый сейв :)
Правда в худшем раскладе размер возрастет. Но надеюсь никому не нужно будет создавать голограмму "губка" с шагом в один воксель.

#37 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 229
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 17 Октябрь 2014 - 16:54

Да, думал. Как NEO сказал, уже слегка пожали изображения. С 73 кБ до 19.

Это не сжатие, а упаковка

Я возможно добавлю ужатие блоков одинаковых байтов. Это позволит избавиться от орд нулей, которые зополоняют каждый сейв :).

Во! Я об этом

#38 Оффлайн   Totoro

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

Награды

                                      

Отправлено 17 Октябрь 2014 - 16:57

Во! Я об этом

Надо только придумать "синтаксис". После упаковки, у нас нет свободных значений байтов. Которые можно было бы использовать как "флаг" или "метку".

#39 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 759
  • Уровень сигнала: 4,5%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 17 Октябрь 2014 - 19:18

Это не сжатие, а упаковка
Во! Я об этом

алгоритмическое преобразование данных, производимое с целью уменьшения занимаемого ими объёма. Применяется для более рационального использования устройств хранения и передачи данных. Синонимы — упаковка данных, компрессия, сжимающее кодирование, кодирование источника. Обратная процедура называется восстановлением данных (распаковкой, декомпрессией).
  • Fingercomp это нравится

#40 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 229
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 20 Октябрь 2014 - 11:38

алгоритмическое преобразование данных, производимое с целью уменьшения занимаемого ими объёма. Применяется для более рационального использования устройств хранения и передачи данных. Синонимы — упаковка данных, компрессия, сжимающее кодирование, кодирование источника. Обратная процедура называется восстановлением данных (распаковкой, декомпрессией).

Да, ты прав. Конечно я выразился не совсем точно. Но, надеюсь, мы с Тоторо поняли друг друга.
На счет "синтаксиса", могу предложить вариант.
  • NEO это нравится

#41 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 229
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 20 Октябрь 2014 - 17:12

Минимальный объем информации, необходимый для кодирования цвета одного вокселя будем называть символом. Очевидно, что символ содержит два бита или число от 0 до 3. Все возможные значения одного символа (0, 1, 2, 3) будем называть алфавитом. Последовательность из нескольких символом будем называть словом. Суть предлагаемого алгоритма сжатия состоит в замене последовательности одинаковых символов XXX...X, словом XN, где X - символ, входящий в исходную последовательность, N- длина этой последовательности, выраженная символами алфавита. Длина последовательности N может принимать значения от 1 (единичный воксель) до 48х48х32=73728 (весь рисунок залит одним цветом). Поскольку длина числа N дешифратору неизвестна, основная проблема это отделить N, входящую в текущую последовательность от начала следующей последовательности. Диапазон изменения N, выраженный в двоичном виде, будет от 1 до 10010000000000000. Каждый бит числа будем кодировать одним символом. Причем, если бит не последний, кодируем его символом "0" или "1", соответственно. В случае если бит завершает слово, кодируем его символом "2", если бит равен 0, или символом "3", если бит равен 1. Поскольку N всегда начинается с бита 1 (незначащие нули не рассматриваем), этот бит при кодировании можно опустить, а при декодировании добавить. Сложность возникает только при кодировании N=1, т.к. в этом случае опускается единственный бит, входящий в N. Для того, чтобы устранить эту проблему, перед кодированием добавим к N единицу, а после декодирования - вычтем.

Пример кодирования: Предположим, нам необходимо закодировать последовательность из 25-ти символов "2".

1) Первый символ, входящий в закодированное слово "2" - символ из которых состоит исходная последовательность.

2) К длине последовательности добавляем единицу 25+1=26 и представляем в двоичном виде 26(10)=11010(2)

3) Отбрасываем первую единицу - 1010

4) Кодируем каждый бит кроме последнего символами "0" или "1". Последний бит кодируем символом "2" (соответствует биту 0) В итоге получаем слово - "21012".

Пять символов вместо 25-ти.

Последовательность декодирования:

1) Принимаем из входного потока первый символ. Из этих символов будет состоять последовательность после декодирования.

2) Присваиваем N=1

3) Сдвигаем N влево на 1

4) Принимаем из входного потока очередной символ.

5) Если принятый символ 1 или 3, N= N+1

6) Если принятый символ 0 или 1, возвращаемся к пункту 3

7) N= N-1

8) Декодированная последовательность представляет собой последовательность из N символов, принятых в п. 1 Предложенный алгоритм сжимает последовательности длиной не менее 3. Последовательности из двух символов не сжимает. А единичные символы замещает словом из двух символов. В наилучшем случае рисунок будет сжат в 4336 раз. В наихудшем - размер увеличится вдвое.


Сообщение отредактировал Zer0Galaxy: 15 Июль 2015 - 14:13

  • 1Ridav, Alex и Totoro это нравится

#42 Гость_NC_Bob_*

Гость_NC_Bob_*
  • Гости
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 05 Ноябрь 2014 - 15:43

:fp:Правильно было бы сказать "Зачем на компьютерном сервере лаготрубы из термалки и ключ, снимающий кнопки в привате, и пчелы" Это то же, как GodusX спросил, - Рид, а зачем на сайте Вики по CC и OC.

Мало того, что голограмм я вообще не видел в других модах, так это же еще выполнено ручками игроков-программистов. Голограммой можно украсить казино, банк, магазин, и прочее. Как неоновая реклама. Если синхронизировать несколько проекторов в ряд, можно бегущую строку сделать и .т.д.

Пчелы всегда и к селу и к городу.
:D

#43 Оффлайн   Syabro

Syabro
  • Пользователи
  • Сообщений: 293
  • Уровень сигнала: 7,44%
  • В игре: 60 час. 9 мин.

Отправлено 11 Ноябрь 2014 - 23:54

Мне лень было читать вевсю тему в поисках ответа на вопрос: А в каком формате сохранясохраняются изображения?

#44 Оффлайн   Totoro

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

Награды

                                      

Отправлено 12 Ноябрь 2014 - 00:03

Поскольку я все никак не перепишу сохранение файлов с ужатием (по замечательному посту от Zer0Galaxy) , сохранение в текущей версии имеет такой формат:
<9 байт - три цвета (3*3)><18432 байт - матрица голограммы (48*32*48)>
Матрица хранится в слегка "упакованном" виде. Четыре вокселя в один байт. Записывается построчно, в определенном порядке. Всего выходит 19 кБ веса.


Файл имеет расширение *.3d (это уже просто понты от разработчиков :))

#45 Оффлайн   Higaran

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

Отправлено 12 Ноябрь 2014 - 00:35

[О старой версии - лень было листать страницы, накинулся на то что было] Поюзал в одиночке, достаточно удобно, особенно если голограма рядом и бегать не надо чтоб посмотреть. В новой версии наверно много удобней, завтра потестю. Вопрос мой в том, можно ли "понты от разработчиков формата .3d" открыть БЕЗ эдитора? тобишь не нарисовать - сохранить - загрузить - "в проэктор", А нарисовать - сохранить - использовать в других программах/разворачивать на компах БЕЗ эдитора/компах с в-картой ниже 3лвл. (Тема такая: нарисовал 5 моделек монеты, хочу чтоб эти монеты на проекторе последовательно сменяли друг друга, потом их сделаю больше, будет своего рода "эффект кручения монетки". Задача не так в том чтоб это отобразить, это не сложно. Задача использовать ваши модельки в СВОЕЙ проге! возможно? как?) З. Ы. НЕО, если так быстро развивать прогу то можно сразу в неё и moitioneditor впилить. Снять мульт, и наслаждатся своим величием. Потом устроить броадкаст музыки и через notenoughcodecs её проиграть как озвучку мульта. Холотеатр, ёмаё.

#46 Оффлайн   Totoro

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

Награды

                                      

Отправлено 12 Ноябрь 2014 - 03:38

Спасибо за отзыв. Да, в последней версии удобнее рисовать. Добавлены фронтальная и боковая проекции, "призрачный" слой и еще по мелочи.

Последняя версия Hologram Editor 0.60:
http://pastebin.com/MYDU6tiV

Для того чтобы развернуть голограмму на любом компе, используй Hologram Viewer:
http://pastebin.com/ezPPXSFE
Это консольная утилита. Работает на любом компьютере, с любым проектором. Синтаксис команды:
show filename[.3d] [scale]
(Расширение 3d писать не обязательно, масштаб - тоже. По дефолту будет 1.0)

Оттуда ты можешь взять функции для загрузки (loadHologram) и вывода на проектор (drawHologram).
Не забудь скопировать переменные и константы, которые юзают эти функции и вспомогательные функции get, set и rgb2hex.

P.S. В OpenComputers 1.4 советую ставить в комп с редактором алмазный процессор (Tier 3). Работает гораздо быстрее чем железный.

#47 Оффлайн   Higaran

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

Отправлено 12 Ноябрь 2014 - 08:51

Вот, спасибо,. Затырю функции, опробую анимацию... Ежели чего выйдет - гифку/видео предоставлю. Просто перед этим этих монет придется чуть ли не 100500 штук нарисовать, чтоб двигалось плавно.

#48 Оффлайн   Higaran

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

Отправлено 12 Ноябрь 2014 - 12:04

И ещё, я ставлю белый(255,255,255) и в нем вырезаю пустоты серым(192,162,192) в редакторе они отображаются, а на голограмме цвет одинаково белый. Тоже самое с (192,192,255). Это связано с редактором или с голограммой? если с редактором то как исправить?

#49 Оффлайн   Totoro

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

Награды

                                      

Отправлено 12 Ноябрь 2014 - 12:28

Попробовал цвета. (192,162,192) - это получается бледно лиловый. (192,192,255) - бледно сиреневый. Оба цвета рисуются и в редакторе и на проекторе. На проекторе второй цвет слабоотличим от белого на верхних плоскостях голограммы, которые как бы освещены сверху. На боковых хорошо виден. Первый цвет без проблем отображается. Проверь свой проектор - если он первого уровня (зеленый), то не умеет отображать больше одного цвета. Тогда программа нарисует всю голограмму первой кисточкой (заменит на нее все другие).

#50 Оффлайн   Higaran

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

Отправлено 13 Ноябрь 2014 - 00:06

Проектор второго уровня. Я разобрался - голограмма должна быть в несколько слоёв чтоб было видно разницу между серым и белым. Также, (потом выложу скрин) приходится много баловатся с голограммой при игре с шейдерами ибо при seus ultra, белый становится ярко золотым источником света, откоторого может ослепнуть и Стив и ты сам. Скрины завтра.

#51 Оффлайн   Higaran

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

Отправлено 13 Ноябрь 2014 - 00:08

Ещё, часто, если допускал ошибки и стирал их ластиком то появляются эти пиксели в виде красных или белых блоков сразу после сохранения(до сохр. Всё норм, всё красиво, нажимаю Сохранить, редактор перезагружает воркспэйс с лишними точками.)Скрины приложу завтра. З.Ы. Ошибся с цветом. 192.192.192. Серый.

#52 Оффлайн   Totoro

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

Награды

                                      

Отправлено 13 Ноябрь 2014 - 01:03

Проектор второго уровня.
Я разобрался - голограмма должна быть в несколько слоёв чтоб было видно разницу между серым и белым. Также, (потом выложу скрин) приходится много баловатся с голограммой при игре с шейдерами ибо при seus ultra, белый становится ярко золотым источником света, откоторого может ослепнуть и Стив и ты сам. Скрины завтра.

То как голограммы видны при игре с шейдерами, это уже наверное к автору мода.
Это зависит от того, как именно отрисовывает свои голограммы Sangar, и как обрабатывает эти поверхности код шейдера.

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

#53 Оффлайн   Higaran

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

Отправлено 13 Ноябрь 2014 - 18:03

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

#54 Оффлайн   Totoro

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

Награды

                                      

Отправлено 13 Ноябрь 2014 - 18:11

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

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

#55 Оффлайн   Totoro

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

Награды

                                      

Отправлено 30 Декабрь 2014 - 03:21

2014-12-30_02.05.45.png

 

Короче, с наступающим Новым Годом, друзья :)

 

P.S. Ёлка.



#56 Оффлайн   Xytabich

Xytabich
  • Пользователи
  • Сообщений: 69
  • Уровень сигнала: 26,07%
  • В игре: 210 час. 48 мин.
  • ГородКазань

Награды

           

Отправлено 06 Январь 2015 - 20:26

Может для создания самой модели использовать Techne? а раскрашивать в программе можно



#57 Оффлайн   Totoro

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

Награды

                                      

Отправлено 07 Январь 2015 - 16:05

Может для создания самой модели использовать Techne? а раскрашивать в программе можно

Лучше в воксельном редакторе. Например Slab6 (в котором я моделю некоторые штуки) или VoxelShop.

 

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

В какой-то своей теме (лень искать :P ) я описывал замысловатый способ сделать это используя мой конвертер из schematic-файлов.

Вкратце:

1) Создаем (или конвертируем из полигональной) воксельную модель.

2) Конвертируем в schematic (в цветную шерсть)

3) Распаковываем

4) Перегоняем с помощью моего конвертера в простой формат для голограммы



#58 Оффлайн   Hikooshi

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

Отправлено 15 Февраль 2015 - 20:33

Подскажите, пожалуйста, синтаксис программы, чтобы можно было устанавливать значение каждого вокселя отдельно в текстовом виде. То есть не через интерпретатор каждый раз писать component.hologram.set(x, y, z, value), а чтобы просто было поле ввода текста, в котором как раз эти x, y, z, value и нужно было бы писать. Через pcall(io.read) не получалось, программа ругалась, что первый аргумент булевый, даже если остальные, кроме этого первого задать изначально. P.S. я не так давно начал изучать Lua



#59 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 759
  • Уровень сигнала: 4,5%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 15 Февраль 2015 - 21:51

os.parse



#60 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 2 006
  • Уровень сигнала: 158,17%
  • В игре: 1279 час. 4 мин.

Награды

                                               

Отправлено 16 Февраль 2015 - 05:56

Подскажите, пожалуйста, синтаксис программы, чтобы можно было устанавливать значение каждого вокселя отдельно в текстовом виде. То есть не через интерпретатор каждый раз писать component.hologram.set(x, y, z, value), а чтобы просто было поле ввода текста, в котором как раз эти x, y, z, value и нужно было бы писать. Через pcall(io.read) не получалось, программа ругалась, что первый аргумент булевый, даже если остальные, кроме этого первого задать изначально. P.S. я не так давно начал изучать Lua

Первый ясно-понятно, что будет булевый. Смотри аргумент 2, там сам вывод io.read.

Потом парси, например, через шаблоны, описанные Zer0Galaxy.






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

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