Редактор для воксельной графики

Processing, playback of audio and video
  • Абстрактным уровнем в какой-то степени можно считать код из buf2d, но его я тоже немного переделывал.
    Первая пробная версия под Windows здесь
    vox_editor_win.zip (47.62 KiB)
    обновил 14.11.2012
    Downloaded 400 times
    А также исходники + немного мусорных файлов 239 Kb здесь https://dl.dropbox.com/u/20922391/vox_editor_win.zip
    Особо не тестировал, вроди все работает. Есть несколько недоделок, а именно:
    1) кнопка освещения не вдавливается (высокоуровневая функция SetCheck какая api32 за ней стоит так пока и не понял?)
    2) не удалось подключить строковые ресурсы, для подсказок на кнопки
    3) не удалось настроить ресурс versioinfo, он вроди компилируется, но ни в каких диалоговых окнах со свойствами информация из него почемуто не попадает
  • Обнаружил ошибку при сохранении файла в редакторе под Windows, в связи с чем обновил выше файл *.exe и исходники. В функции CreateFile стоял флаг CREATE_NEW что означает создать новый. Т. е. программа могла сохранять файлы только с новыми именами, пересохранять готовые файлы не могла. Поставил флаг CREATE_ALWAYS, теперь вроди все нормально.
  • 1) кнопка освещения не вдавливается (высокоуровневая функция SetCheck какая api32 за ней стоит так пока и не понял?)

    Code: Select all

    invoke SendMessage, [hToolb], TB_SETSTATE, IDM_LIGHT, TBSTATE_ENABLED+TBSTATE_PRESSED
    ?
    2) не удалось подключить строковые ресурсы, для подсказок на кнопки
    Это сложнее. Во-первых, таблица строк создаётся по 16 штук в одном ресурсе:

    Code: Select all

    directory ...,RT_STRING,strtable1,...
    resource strtable1,2,LANG_RUSSIAN+SUBLANG_DEFAULT,str_table ; identifier=2 => string identifiers from 16 to 31
    macro du_counted str
    {
    local ..a, ..b
    	dw ..b - ..a
    ..a:
    	du str
    ..b:
    }
    resdata str_table
    	du_counted '|button0|button1|...|buttonN||' ; string with id=16
    	times 15 dw 0 ; other 15 strings from this block are not used
    endres
    
    Во-вторых, при создании тулбара нужно эту строку передать тулбару:

    Code: Select all

    	mov [hToolb],eax
    	invoke SendMessage, eax, TB_SETMAXTEXTROWS, 0, 0
    	invoke SendMessage, [hToolb], TB_ADDSTRING, [wc.hInstance], 16
    
    В-третьих, в структурах TBBUTTON нужно заполнить последнее поле индексом в строке (в примере тултип всех кнопок с iString=0 будет "button0", iString=1 - "button1" и т.д.).
    3) не удалось настроить ресурс versioinfo, он вроди компилируется, но ни в каких диалоговых окнах со свойствами информация из него почемуто не попадает
    Поставь ресурсу идентификатор 1. И FileVersion типа '1.0' добавь.
    Сделаем мир лучше!
  • CleverMouse
    Спасибо, очень помогло. Хотя строковые ресурсы я делать не стал.
    Теперь появилась идея использовать OpenGL для отображения воксельных объектов. Пробовал сделать программу для просмотра, вот что вышло:
    https://dl.dropbox.com/u/20922391/opengl_1.png
  • разобрался почему не показывало, оказывает нужно было вставить всего одну строку в коде

    Code: Select all

    invoke glEnable,GL_DEPTH_TEST
    сама программа с исходниками в архиве здесь
    https://dl.dropbox.com/u/20922391/vox_ogl.zip
    но эта программа только для просмотра в 3d, редактировать и создавать файлы можно через колибровский или через виндосовский редакторы. Повороты объекта с помощью клавиатуры или с помощю панели. Кнопка с освещением пока не работает.
  • Немного доработал программу просмотра воксельных файлов под Windows (ту что использует OpenGL). Файл по ссылке выше обновил.
    Основные изменения:
    - поворот объекта при нажатии и движении мыши
    - статистика по колличеству вокселей, видимых при данном масштабе
    - убрал некоторые невидимые грани при соседних вокселях, для оптимизиции прорисовки
    Одна из недоработок в том что верх и низ а также лево и право показываются наоборот, т. е. модель при загрузке всегда перевернута.
    Spoiler:На рисунке пример модели с 123,5 тысячами вокселей. При перерисовках процессор немного подгружается, но не сильно.
    vox_ogl.png
    vox_ogl.png (216.54 KiB)
    Viewed 9278 times
    Эта модель не дорисована потому на скачивание ее не даю.
    Хотелось бы все это сделать на TinyGL, но наверное это будет не скоро.
  • Еще доработал программу просмотра воксельных файлов под Windows. Исправлено не правильное отображение модели (лево и право были поменяны местами). Улучшился алгоритм работы с освещением модели, теперь модель выглядит более объемной.
    Вот ссылки на изображения:
    https://dl.dropboxusercontent.com/u/209 ... engl_1.png - старое освещение
    https://dl.dropboxusercontent.com/u/209 ... engl_2.png - без освещения
    https://dl.dropboxusercontent.com/u/209 ... engl_3.png - новое освещение
    Саму программу можно загрузить по старой ссылке:
    https://dl.dropboxusercontent.com/u/209 ... ox_ogl.zip
    Учитывая то что я делаю ассемблерную версию tinygl, возможно что эта программа когда-нибудь будет перенесена в Колибри. Благодаря этому переводу tinygl на asm я лучше разобрался с нормалями и смог сделать более красивое отражение.
  • IgorA
    Добавь пожалуйста в автосборку воксельные утилиты.
    Из хаоса в космос
  • Ни одна утилита, ни редактор не понимают переданный параметр запуска :( т.е. "открыть с помощью".
    Из хаоса в космос
  • Leency wrote:Ни одна утилита, ни редактор не понимают переданный параметр запуска т.е. "открыть с помощью".
    В ревизии 7193 добавил открытие файла из командной строки в главную программу. Утилиты пока еще не правил.
  • Спасибо, я добавлю ассоциации.
    Из хаоса в космос
  • rev 7205
    1) добавил в утилиты обработку параметра командной строки,
    2) перенес файлы с изображениями панелей внутрь исполняемых программ, это должно высвободить немного места на диске.
  • Who is online

    Users browsing this forum: No registered users and 1 guest