Объекты

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

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

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

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.
Это твои фантазии. В числе с плавающей запятой четыре байта, сколько ты знаков после запятой ни нарисуй. Лучше проведи эксперимент, сравнив число вершин в тяжёлом и лёгком итоговых бин-файлах.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

nemyax

#544
Цитата: elvis от 07 октября 2013 01:03:22
каждую такую точку надо "перекликать" - т.е. кликнуть ее - выскочит окошко координат - на нем нажать ОК - и тогда ее координаты обрежутся до тысячной
Хотел было предложить тебе округлять координаты скриптом. Да только глянул в http://anim8or.com/scripts/spec/Anim8or_Scripting_Language.html и не обнаружил там ни функции round(), ни даже trunc(). Ой умора.
Судя по всему, пользователю предлагается делать floor(x*1000)*0.001.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

nemyax

Цитата: elvis от 07 октября 2013 01:03:22
Редактор не переваривает объекты весом более 140 кб.
Тоже, кстати, не факт. Вот 163 Кб, в редактор грузится, игровой режим не убивает: http://rghost.net/49221636.
Записано, правда, без участия bsp.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

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

nemyax

elvis
В .bin-файле любое число с плавающей точкой занимает 4 байта. Неважно, хранится ли там 0.0, 4000000000.0 или 3.19e-9.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

nemyax

Цитата: elvis от 09 октября 2013 12:09:37
А можешь на пальцах пояснить что это за зверь bsp и что он делает?
Двоичное_разбиение_пространства
В двух словах, режет геометрию плоскостями, прочерченными по имеющимся вершинам.
Цитата: elvis от 09 октября 2013 12:09:37
игра работала не стабильно и под определенным углом обозрения объекта вылетала
Ну конкретно с этим файликом скорее всего тоже будут вылеты =) Там перепутаны нормали (на днях починю экспорт).
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

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

nemyax

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

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

  • 13 + число_вершин * 4 (без текстурных координат)
  • 13 + число_вершин * 6 (с текстурными координатами)
Для ориентировки: если у вас одни текстурированные треугольники, то вам в вашей модельке положено не более 2114 полигонов. Если не треугольники, то и того меньше. Число полигонов — это лимит, упереться в который вероятнее всего.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

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

nemyax

Цитата: elvis от 09 октября 2013 21:01:04
взял откуда-то или сам делал?
Это бяка-закаляка кусачая. Я сама из головы её выдумала. (С)
Сам сделал, чё. Это моя тестовая моделька, я только по-бырому добавил мусора снизу для увеличения размера (развёртку, соответственно, для него не доделал). Текстуры нету, но материал ссылается на test.png (вроде).
Между тем твой графин спокойно может уместиться в 43 Кб: http://rghost.net/49274698
Прозрачность в модельке забагована, но это неважно: починка прозрачности не увеличит размер файла.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

elvis

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


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

nemyax

Цитата: elvis от 09 октября 2013 21:22:32
Колись, что за секрет?
Секрет полишинеля: http://darkfate.org/forum/index.php?topic=4597.0
Висит тут кагбе уже полтора месяца.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!