Разработка импорта-экспорта статичных .bin-моделей для Blender-а

Автор nemyax, 22 августа 2013 23:30:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

nemyax

Под вайном работает, отчего нет. Стимошный SS2 на макоси использует именно вайн. Но главное, что на них работает блендер.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

nemyax

Update 0.1.20140704
Изменения:

  • Добавлена опция экспорта Model origin is at world origin. Помещает опорную точку модели в мировой центр координат. Если галку снять (по умолчанию она включена), то поведение будет таким, как до сих пор: опорная точка окажется в центре геометрии модели. Напомню, что габаритный контейнер (bounding box) в любом из двух случаев может вообще не зависеть от геометрии и быть каким пожелаете.
  • Висячие вершины и рёбра без полигонов больше не учитываются при расчёте габаритов. Они теперь утратили последний смысл.
Скачать: https://sourceforge.net/projects/blenderbitsbobs/files/
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

Замечено: Gif формат с прозрачным каналом с плагином дружит и не глючит. Оно бы хорошо, но - gif значит 255 цветов раз, не будет градиента прозрачности - два. Однако! сегодня дважды удалось получить сложную безглючную модель и с PNG. Пытался запомнить алгоритм танцев - не получилось. Но буду искать.
BSP теперь на дух не переношу. Какой бы оптимальной не была - все равно уродует модель как тузик грелку.  Плагин рулит.
1826 дней..  в прошлом.

nemyax

Поясни про GIF/PNG. Как может перевиралка геометрических данных дружить или не дружить с форматом картинок? 0_о
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

#304
Я о том что если модель прошла через плаг и имеет gif текстуры с прозрачными участками - модель будет таки без глюка.
Сие хорошо, к примеру, для кустов и деревьев. Крону дерева обычно строят из пересекающихся под разным углом прямоугольников, на которые наложена текстура веток с листьями. Но что делает BSP с пересекающимися гранями модели - я показывал на примере молота. Делает жуть. Оказывается этого можно избежать. Более того - опытным путем установил, что можно брать и PNG и TGA, т.е сохранить тру колор - но с одним условием - маска текстуры должна быть строго черно-белой. Без переходных серых оттенков на границе цветов. Ежели не соблюсти это условие - за ближайшей фронтальной ветвью исчезнет вся корона. Ну или как с моим графином - за колбой пропадает поднос.
1826 дней..  в прошлом.

nemyax

Цитата: elvis от 28 сентября 2014 00:43:31
что делает BSP с пересекающимися гранями модели
BSP по сути делает очень простую вещь: берёт полигон и разрезает его плоскостью все полигоны, которые:

  • стоят на пути этой плоскости;
  • смотрят в сторону этого полигона;
  • не были обработаны (разрезаны или оставлены в покое) тестами по предыдущим полигонам.
В своём примитивнейшем (пофейсовом) проявлении это очень простой алгоритм. Максимум, что сделает BSP в случае раскорячки для кроны дерева, — разрежет все полигоны по оси пересечения. Другим разрезам там неоткуда взяться.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

Цитироватьстоят на пути этой плоскости;
смотрят в сторону этого полигона;
не были обработаны (разрезаны или оставлены в покое) тестами по предыдущим полигонам.
по мне так и этого хватит выше крыши =)
Мне вот интересно - говорили же что в версии 1.22 глюки прозрачности профиксили.. выходит что все еще нет.
1826 дней..  в прошлом.

nemyax

Цитата: elvis от 28 сентября 2014 02:20:53
говорили же что в версии 1.22 глюки прозрачности профиксили
Где говорили? Не припомню такого.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

[off]Неофициальный патч Thief v1.19+
elvis  Интересно, они сортировку полигонов в прозрачных объектах профиксили?
nemyax Написано же: чистый багофикс.
elvis да там много чего написано - я половины не понял. Ок если так.[/off] Я тогда понял что фиксино. Значит, не правильно понял.
nemyax  А плагин делает триангуляцию? Теоретически то просто обязан, но когда я открываю полученный bin в бленде - делений на треуглы не вижу.
И еще одна заморочка. По классике 3DS -> через BSP -> в Bin.  Т.е сначала 3DS триангулирует, потом BSP машет шашкой.  После этого многие полигоны из трехугольных получаются обрезаны в четырехугольник. Их дальнейшая судьба? Опять триангуляция? А чем - тем же BSP?
  Я чего гружусь - уж больно шустрые плагинские модели в плане FPS. хочу понять почему.
1826 дней..  в прошлом.

nemyax

Триангуляцию не делает. Это решение должен принимать моделист, а не скрипт. Напомню, что триангулировать можно и недеструктивно модификатором Triangulate.

Цитата: elvis от 01 октября 2014 12:28:47
По классике 3DS -> через BSP -> в Bin.  Т.е сначала 3DS триангулирует, потом BSP машет шашкой.  После этого многие полигоны из трехугольных получаются обрезаны в четырехугольник. Их дальнейшая судьба?
Дальнейшее — молчанье (С)
Такими и остаются, как их порезали. Один и тот же треугольник может попасть под распил не один раз, между прочим, и число вершин на полигон может увеличиться. В данном формате теоретически полигон может их иметь до 255. На деле — дромед у меня от повышенной вершинности рушится =)

Цитата: elvis от 01 октября 2014 12:28:47
Я тогда понял что фиксино. Значит, не правильно понял.
Если б починили, то это был бы не багофикс, а гигафича.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

ЦитироватьОдин и тот же треугольник может попасть под распил не один раз, между прочим, и число вершин на полигон может увеличиться. В данном формате теоретически полигон может их иметь до 255
WAT?
В формате bin полигон может иметь до 255 вершин? Я правильно понял - если у меня модель построена из квадратных граней (полигонов) - то мне выходит их вовсе не обязательно триангулировать?
Т.е теоретически допустима модель с 2114 квадратными (пятиугольными, шести и т.д) гранями?
1826 дней..  в прошлом.

nemyax

#311
Цитата: elvis от 01 октября 2014 18:21:36
В формате bin полигон может иметь до 255 вершин?
Иметь-то он может в том смысле, что указать можно. Число вершин записывается в один байт (0–255). Только движок никому не обещал, что столько выпьет.

Цитата: elvis от 01 октября 2014 18:21:36
Я правильно понял - если у меня модель построена из квадратных граней (полигонов) - то мне выходит их вовсе не обязательно триангулировать?
Совершенно верно.
Только полигоны желательно выпуклые и поплоще.

Цитата: elvis от 01 октября 2014 18:21:36
Т.е теоретически допустима модель с 2114 квадратными (пятиугольными, шести и т.д) гранями?
Нет.
Ещё раз:
Цитата: nemyax от 09 октября 2013 13:59:14
13 + число_вершин * 6 (с текстурными координатами)
То есть длина записи каждого полигона зависит от числа вершин в нём.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

#312
ЦитироватьТо есть длина записи каждого полигона зависит от числа вершин в нём.
не могу переварить - для меня это уже высшая математика. Может на пальцах?

Вот у меня кубик. 6 граней. Каждая грань, то биш полигон запишется с 4 вершинами. Итого 6 полигонов 24 вершины в сумме.
Вот я его триангулировал. 12 полигонов. У каждого полигона по 3 вершины. Итого 36 вершин в сумме.

Какой из вариантов более экономный для формата bin? Или я опять что то путаю и они равнозначны?
1826 дней..  в прошлом.

nemyax

Вершин в любом случае 8. Полигонов — с квадратами 6, с треугольниками 12.
Квадраты: 6*(13+4*6) = 222
Треугольники: 12*(13+3*6) = 372
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

#314
ЦитироватьКвадраты: 6*(13+4*6) = 222
Треугольники: 12*(13+3*6) = 372
не осилю. так в данном конкретном случае выгодно оставлять квадратами? 222 то меньше 372. Или все лимитируется вершинами?  :no:
И еще заморочка.


Вот квадратная грань. Вот я ее "оттреуголил" ТАК, потом по ней секанула BSP - получил два треугольных полигона, два четырехугольных.

Вот я ее "оттреуголил" ЭДАК - потом BSP - на выходе два треугольных полигона, один - четырех. На лицо явный профит.

В чем загон - хочу понять, стоит изначально триангулировать модель ДО BSP-пилы или оставлять как есть? Мол, движку виднее, как потом попилить.

PS пару моих нынешних объектов балансируют на грани, каждый десяток полигонов на счету, поэтому для меня сие важно.
1826 дней..  в прошлом.