Вопросы про формат .bin

Автор nemyax, 24 апреля 2013 18:25:52

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

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

Chuzhoi

Цитата: nemyax от 22 августа 2013 08:50:14
Ты можешь закидывать туда готовые.
Да приспособимся уж как-нибудь. Хотя опыт подсказывает, что экспорт-импорт между двумя 3d-программами не менее геморный, чем экспорт в игру.

Цитата: nemyax от 22 августа 2013 12:22:51
Неа, запись нормалей не помогла. Всё равно fullbright:
http://pix.academ.org/img/2013/08/22/2255941d0bb2b05a950be988009c6e79.png
Я вижу, что была серая, а стала белая. В клеточку. Наложил в качестве текстуры развертку? И что у твоей головы с ушами?

nemyax

Йиихаа!
Это не лайты подвели, это я дебил не везде поубирал заглушки.
Светит как надо:


Ещё немножко посверлю напильником, и вечером обубликую.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

Chuzhoi

Так все-таки нормали нормально в твоем конвертере передаются? Нормали можно считать нормальными, если они полностью соответствуют сглаживанию в редакторе.
Попробуй экспортировать обычный кубик.

nemyax

Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

Chuzhoi

Все ясно. Кубик неправильный.

nemyax

Цитата: Chuzhoi от 22 августа 2013 15:47:33
Все ясно. Кубик неправильный.
А какой должен быть?
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

LongShad

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

Chuzhoi

Вот такой:


LongShad
Расскажи, как ты вручную пересчитываешь нормали. Очень интересно.

nemyax

Ок, ещё раз:
Формат .bin не содержит информации об острых рёбрах. Имеющихся данных (нормали вершин и нормали фейсов) недостаточно для обозначения таких рёбер.
Чё мона сделать, чтобы поверхность стала прерывистой: найти цепочки рёбер, помеченных как острые, и вспороть сетку вдоль них. У этого трюка есть одно слабое место: цепочки из одного ребра.
Если таковые попадаются, вот так запросто вспороть нельзя — это означало бы существование двух рёбер с одними и теми же вершинами. В блендере, например, такое не валидно (я не говорю невозможно, всего лишь не валидно). Это можно обойти, разделив подобное ребро дополнительной вершиной, получив через это цепочку из двух рёбер и распоров её.
Я могу это реализовать, только пока этим не занимался.
И не путайте меня, пожалуйста. Почему это вдруг мой кастомный кубик неправильный, если штатный кубик шейдится точно так же?
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

nemyax

Chuzhoi
Дай, пожалуйста, бинку твоего кубика. Я её импортну.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

Chuzhoi

Цитата: nemyax от 22 августа 2013 18:37:22
Почему это вдруг мой кастомный кубик неправильный, если штатный кубик шейдится точно так же?
Все так и есть. Мир Thief населен неправильными кубиками. А я хотел получить возможность делать правильные.

Цитата: nemyax от 22 августа 2013 18:38:41
Chuzhoi
Дай, пожалуйста, бинку твоего кубика. Я её импортну.
http://hedonism.nm.ru/other/box.bin

nemyax

Цитата: Chuzhoi от 22 августа 2013 19:01:03
http://hedonism.nm.ru/other/box.bin
Кубик сплошной, непорезанный =\
Любопытненько, надо поизучать.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

nemyax

Цитата: nemyax от 22 августа 2013 18:37:22
Формат .bin не содержит информации об острых рёбрах. Имеющихся данных (нормали вершин и нормали фейсов) недостаточно для обозначения таких рёбер.
По ходу дела беру свои слова обратно. Любой фейс в .bin-файле содержит массив индексов light-ов. То есть векторы, на которые ссылается каждый угол фейса, могут быть абсолютно любыми (а не только усреднёнными нормалями вершин). По логике вещей это и есть искомые пофейсовые нормали вершин, и их достаточно, чтобы гнуть шейдинг как душа пожелает.
Я попробую поддержать данную фичу, но это будет не сразу.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.

Chuzhoi

Спасибо.

Для справки: данный кубик получен заданием параметра -M(косинус угла) для bsp.exe. По умолчанию этот косинус равен -0.5 (120 градусов). Я же его установил в 0.5 (60 градусов). Так что в bsp (но не meshbld) имеется такое вот частичное решение проблемы.

Я, правда, тут немного поразмыслил и пришел к выводу, что эту фичу в обязательном порядке нужно делать отключаемой. И, более того, по умолчанию она должна быть выключена, а конвертер должен работать точно так же, как и bsp (т. е. то есть осуществлять автосглаживание с углом 120 градусов).

Причина? В мире неправильных кубиков правильные следует вводить с особой осторожностью.

Приведу реальный пример: один автор миссии попросил меня разломить одну стандартную модель пополам. При этом части модели, естественно, визуально не должны были отличаться от целой модели, к которой все привыкли. Поэтому я применил стандартный косинус. И это не единственный случай, когда я так поступил. Хотя обычно сначала стараюсь применять нестандартный (после чего внимательно разглядываю, как полученная модель выглядит в Thief).

nemyax

Цитата: Chuzhoi от 23 августа 2013 00:35:48
Я, правда, тут немного поразмыслил и пришел к выводу, что эту фичу в обязательном порядке нужно делать отключаемой.
Если фича выгорит, то она будет активироваться при двух условиях:

  • Для явным образом помеченных рёбер (команда Mark Sharp).
  • Для всех таких рёбер объекта, об которые фейсы образуют угол, превышающий значение Smooth Angle, если включена опция Auto Smooth.
Насчёт 120 градусов подумаю (в блендере верхний предел автосглаживания — 80). Можно и галку в экспортёр добавить, в конце концов. Кстати, почему вы в мире неправильных кубиков не пользуетесь элементарным бевелом? Красота же получается. Гораздо клёвче, чем правильные. И ньюдарк уже не боится пары лишних полигонов.


И да, предлагаю перенести обсуждение фич в новую тему.
Like a dog without a bone,
Like an actor out on loan,
When you ride upon the storm,
Your dreams come true.