Объекты

Автор Garr3t, 13 августа 2007 17:07:35

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

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

Zontik

Эх, как далеко мне еще до той миссии, куда можно будет вставить этот камин...
Хотя такой я бы и себе домой не отказался.
Дайте глазам отдохнуть! Тёмное место

elvis

#541
    По поводу круглых. Редактор не переваривает объекты весом более 140 кб. Персонажей можно делать 220 кб и больше, а вот объекты - почему-то именно такое ограничение.
    Долгое время методом "научного тыка" я пытался понять что определяет "вес" bin-файла. Количество полигонов модели?  - само собой, но! -  совершенно случайно я заметил что если "сжать" модель по какой либо оси или растянуть - размер bin-файла тоже меняется. Почему? Ведь число полигонов оставалось то прежним, смещались только точки - вершины полигонов.
    На разгадку наткнулся совершенно случайно - редактор (как аниматор, так и ДромЕд) терпеть не может дробных чисел в координатах. Т.е. он их переварит но ценой значительного увеличения размера bin. Каждая точка (вершина полигона) имеет координаты которые в окошке редактора отображаются до тысячного знака после запятой (1). В действительности при строительстве эта координаты могут быть еще более шизанутыми - до стотысячной и больше. И как следствие все это "утяжеляет" bin.
     Как это лечится? Да просто - каждую такую точку надо "перекликать" - т.е. кликнуть ее - выскочит окошко координат - на нем нажать ОК - и тогда ее координаты обрежутся до тысячной. При желании можно вручную округлить и до сотых. На большом увеличении при этом видно как точка сместится. Процесс долгий и нудный, но зато позволяет делать красивые объекты и впихивать их в 140 кб.
     Стоп, скажете вы, что за бред? А для чего тогда сетка? А вот тут идет самое интересное. Сетка хороша при строительстве прямоугольных объектов - в этом случае с "перекликанием" можно не заморачиваться - все точки будут иметь верные координаты. Но если вы используете сферу или цилиндр.....   вот тут уже засада - сетка не спасает. Точнее она поможет - но лишь для шести точек - полюсов и вершин экваторов сферы (2). Все прочие точки (3) будут иметь шизанутые данные. Что делаем? Ну конечно не пытаемся "перекликать" весь глобус... кромсаем его безбожно до 1/8 - и вот тут уже придется поработать мышкой (4). Такую, уже выверенную 1\8 сферы зеркалим, объединяем, опять зеркалим и так пока не восстановим целую сферу. Вот собственно и весь метод.
    Ну а какой профит? Да реальный. Положим, вы решили сделать модель снеговика. Открываем редактор, берем примитив - сферу, клонируем, еще раз - оп - готово..  Ну да, готово. И заняло 5 сек работы... я же такого снеговика буду строить минут 20, не меньше. Но если мы потом сравним bin- файлы, мой будет весить если не вполовину, то на треть уж стопудово меньше. А значит у меня будет запас для того чтоб приделать снеговику еще пару сфер.


720x480(23.88 kB)

хостинг изображений
       ЗЫ Вспоминаю сейчас как я строил свои первые объекты - там статуи разные... без сетки, без привязки к осям.....  :doh:    узас... хорошо что про это никто не знает....  :biggrin:
   
1826 дней..  в прошлом.

Shaver

elvis Спасибо! Полезно!
Ещё один элемент пазла DromEd с характерным щелчком встал на место.

А "привязка к осям" это что? (если особенность Аниматора - не важно).

nemyax

Цитата: elvis от 07 октября 2013 01:03:22
совершенно случайно я заметил что если "сжать" модель по какой либо оси или растянуть - размер bin-файла тоже меняется. Почему?
Потому что по-разному отработает bsp.

Цитата: elvis от 07 октября 2013 01:03:22
при строительстве эта координаты могут быть еще более шизанутыми - до стотысячной и больше. И как следствие все это "утяжеляет" bin.
Это твои фантазии. В числе с плавающей запятой четыре байта, сколько ты знаков после запятой ни нарисуй. Лучше проведи эксперимент, сравнив число вершин в тяжёлом и лёгком итоговых бин-файлах.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

nemyax

#544
Цитата: elvis от 07 октября 2013 01:03:22
каждую такую точку надо "перекликать" - т.е. кликнуть ее - выскочит окошко координат - на нем нажать ОК - и тогда ее координаты обрежутся до тысячной
Хотел было предложить тебе округлять координаты скриптом. Да только глянул в http://anim8or.com/scripts/spec/Anim8or_Scripting_Language.html и не обнаружил там ни функции round(), ни даже trunc(). Ой умора.
Судя по всему, пользователю предлагается делать floor(x*1000)*0.001.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

nemyax

Цитата: elvis от 07 октября 2013 01:03:22
Редактор не переваривает объекты весом более 140 кб.
Тоже, кстати, не факт. Вот 163 Кб, в редактор грузится, игровой режим не убивает: http://rghost.net/49221636.
Записано, правда, без участия bsp.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

elvis

#546
ЦитироватьЭто твои фантазии. В числе с плавающей запятой четыре байта, сколько ты знаков после запятой ни нарисуй.
т.е. координата не может быть мельче 0.000 ? Или неверно то что мелкие координаты утяжеляют bin?
ЦитироватьВот 163 Кб, в редактор грузится, игровой режим не убивает
А вот это реально бомба... сколько я не пытался - ни разу не удавалось втиснуть объект размером более 140 кб. Максимум раз было 142 - но игра работала не стабильно и под определенным углом обозрения объекта вылетала. Да и если посмотреть архивы существующих ФМ под т2 - мы не найдем в категории obj фаил размером более 140 кб... т.ч. это для меня открытие. А можешь на пальцах пояснить что это за зверь bsp и что он делает?
1826 дней..  в прошлом.

nemyax

elvis
В .bin-файле любое число с плавающей точкой занимает 4 байта. Неважно, хранится ли там 0.0, 4000000000.0 или 3.19e-9.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

nemyax

Цитата: elvis от 09 октября 2013 12:09:37
А можешь на пальцах пояснить что это за зверь bsp и что он делает?
Двоичное_разбиение_пространства
В двух словах, режет геометрию плоскостями, прочерченными по имеющимся вершинам.
Цитата: elvis от 09 октября 2013 12:09:37
игра работала не стабильно и под определенным углом обозрения объекта вылетала
Ну конкретно с этим файликом скорее всего тоже будут вылеты =) Там перепутаны нормали (на днях починю экспорт).
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

elvis

Ок. После суток, сейчас все равно не въеду. Но тема для меня интересная.
1826 дней..  в прошлом.

nemyax

#550
Ещё по поводу килобайт и лимитов. В .bin-файле массив полигонов не может занимать больше ~65536 байт (точнее 65535 плюс один полигон). Во всяком случае та часть массива, которая хоть кому-то будет видна. Такой лимит получается из-за того, что ноды (куски геометрии) ссылаются на полигоны по байтовому отступу в том самом массиве: например, нулевой полигон будет на нуле, первый — на 37 и т. д. А на адрес отступа выделено двубайтовое целое число без знака, то есть от 0 до 65535.
Длина записи для полигона не фиксирована и зависит от нескольких вещей.
Для версии 3 (первый вор):

  • 12 + число_вершин * 4 (без текстурных координат)
  • 12 + число_вершин * 6 (с текстурными координатами)
Для версии 4 (вторые вор и шочек):

  • 13 + число_вершин * 4 (без текстурных координат)
  • 13 + число_вершин * 6 (с текстурными координатами)
Для ориентировки: если у вас одни текстурированные треугольники, то вам в вашей модельке положено не более 2114 полигонов. Если не треугольники, то и того меньше. Число полигонов — это лимит, упереться в который вероятнее всего.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

elvis

А эту статую ты взял откуда-то или сам делал? У меня в голове не укладывается как такое возможно - ее и viev.exe прекрасно видит, и в редакторе она не глючит. Правда сконвертить из bin в 3DS не получается.. и текстура на нее есть?
1826 дней..  в прошлом.

nemyax

Цитата: elvis от 09 октября 2013 21:01:04
взял откуда-то или сам делал?
Это бяка-закаляка кусачая. Я сама из головы её выдумала. (С)
Сам сделал, чё. Это моя тестовая моделька, я только по-бырому добавил мусора снизу для увеличения размера (развёртку, соответственно, для него не доделал). Текстуры нету, но материал ссылается на test.png (вроде).
Между тем твой графин спокойно может уместиться в 43 Кб: http://rghost.net/49274698
Прозрачность в модельке забагована, но это неважно: починка прозрачности не увеличит размер файла.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

elvis

#553
Издеваешься?  :sleep: Я тут ночей не сплю, хренову кучу точек поштучно щелкаю дабы хоть как пару лишних кб выиграть.... да, реально меньше размер без потери качества...  Колись, что за секрет?  :biggrin:


Енто же тогда такую красоту мутить можно будет... Вах....  :rolleyes:
1826 дней..  в прошлом.

nemyax

Цитата: elvis от 09 октября 2013 21:22:32
Колись, что за секрет?
Секрет полишинеля: http://darkfate.org/forum/index.php?topic=4597.0
Висит тут кагбе уже полтора месяца.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.