HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Страницы (240): « Первая ... « 67 68 69 70 [71] 72 73 74 75 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



ncuxonaT ты как-то странно используешь слово "одна". Если все атрибуты совпадают, её можно расшарить.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 190550

Старое сообщение 25-02-2020 22:47
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



nemyax тангент-вектор (красный на иллюстрации) должен лежать в касательной плоскости, то есть быть перпендикулярным нормали. Векторов в плоскости много, поэтому для стандартизации люди договорились считать тангент-вектор направленным в одну сторону с осью U на развертке. По одной вершине непонятно, куда направлена U, нужны соседние, поэтому тангент-вектора сначала считаются для треугольников, а потом уже для вершин берётся среднее значение от соприкасающихся треугольников.
Представь, что на третьей картинке используется развертка из двух зеркальных частей. То есть на левой половине вместо D7 D8 D1 будут отзеркаленные D4 D3 D2. Для правой половины тангент-вектор будет направлен вправо, для левой - влево. А в сумме выйдет ноль.



Дядя Миша а можно не расшарить. В SMD нет информации, какие вершины нужно шарить, а какие нет.

Отредактировано ncuxonaT 26-02-2020 в 00:44

Сообщить модератору | | IP: Записан
Сообщение: 190551

Старое сообщение 26-02-2020 00:38
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4136

Рейтинг



ncuxonaT
Ну так данные нормалей предоставляют тебе всю потребную информацию, чтобы находить общие рёбра и чтобы векторы не гасились. А ты как будто топишь за то, чтобы их наоборот можно было гасить в произвольных местах.

Сообщить модератору | | IP: Записан
Сообщение: 190552

Старое сообщение 26-02-2020 06:56
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
ncuxonaT писал:
а можно не расшарить

они в любом случае пошарятся, для стрипификации.

Цитата:
ncuxonaT писал:
Представь, что на третьей картинке используется развертка из двух зеркальных частей

ну так это проблема моделлёра, а не касательного пространства. Впрочем, можно сначала построить тангенты, а потом уже расшарить вертексы.
Проблема надуманная абсолютно.

Доделал виз, работает. Я почти всё взял от оригинала, там особо нечего модифицировать. Впервые за всё время существования квейков появилась возможность оценить вклад CSG в работу виза. Так вот вклад есть и он существенный. На q3dm1 без виза получается в среднем 42 портала на лиф, а с CSG - всего 30 порталов. Отдельно скажу за механизм портально-пассажного виза. Ничего особенного он не делает, обычный баланс междуь памятью и процессорным временем. Классический портальный виз вычисляет сепараторы по ходу работы, портально-пассажный строит их до начала вычислений, сепараторы конечно требуют какой-то объем памяти.

Есть еще интересная штука - мержилка лифов и фейсов. По дефолту она выключена. Может помочь сократить кол-во порталов и лифов, которые по смыслу можно объеденить, главное что бы у них плоскости совпадали.
Впрочем на размер виздаты это никак не влияет. Наверное было бы логичнее эту мержилку перенести в BSP.
Так же хочу отметить, что итоговый фпс с визом нельзя назвать прямо сильно отличным от старых халфовских карт, для которых я построил оптимальное визтри на лету. Ну я рассказывал об этом.
На сипульчере в оригинале 290 фпс, на кутришной карте 350 фпс. На гренделе оригинальная карта показывает даже более высокие значения.

Добавлено 26-02-2020 в 10:45:

И чтобы окончательно закрыть эту тему с касательным - абсолютно все лоадеры, которые я видел избавляются от индексов на этапе загрузки, строят уникальные вертексы, т.е. эта информация теряется в любом случае.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 190553

Старое сообщение 26-02-2020 07:45
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



nemyax я не понимаю, что ты говоришь. Нормали кроме касательной плоскости ничего не дают.

Цитата:
Дядя Миша писал:
ну так это проблема моделлёра, а не касательного пространства.

Так же думали погромисты дум3. А моделлеры дум3 думали, что это проблема погромистов, ведь в 3дмаксе у них всё нормально было, вертексы разделены. Если сначала строить тангенты, то это нужно делать еще до экспорта из 3д редактора.
Цитата:
Дядя Миша писал:
они в любом случае пошарятся, для стрипификации.

Моделлер решает, где вертексы шаренные, а где нет. И в нормальном формате это записывается. Только что проверил, FBX, DAE, неоптимизированный OBJ из 3дмакса и просто OBJ из блендера сохраняют всё нормально.
К слову, в SMD не добавишь ни второго канала развертки, ни vertex color.

Добавлено 26-02-2020 в 17:27:

Цитата:
Дядя Миша писал:
абсолютно все лоадеры, которые я видел избавляются от индексов на этапе загрузки, строят уникальные вертексы,

зачем это делать, если индексы уже подразумевают под собой уникальные вертексы

Сообщить модератору | | IP: Записан
Сообщение: 190555

Старое сообщение 26-02-2020 14:27
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
ncuxonaT писал:
Так же думали погромисты дум3. А моделлеры дум3 думали, что это проблема погромистов, ведь в 3дмаксе у них всё нормально было, вертексы разделены.

Тогда объясни как это в хл2 нету проблем с бампом, они-то модельки тоже из smd компилят.

Цитата:
ncuxonaT писал:
К слову, в SMD не добавишь ни второго канала развертки, ни vertex color.

А зачем добавлять то, что игнорируется в любом случае?

Цитата:
ncuxonaT писал:
зачем это делать, если индексы уже подразумевают под собой уникальные вертексы

Индексы не подразумевают ничего. Я в любом случае это по своему индексирую.

Добавлено 26-02-2020 в 19:50:

У smd на самом деле есть одно важное преимущество - он по дефолту уже ориентирован "По Кармаку", значит его не надо никуда лишний раз поворачивать при импорте-экспорте. По крайней мере в рамках рабочей среды, если это экспортёр из блендера, то там наверное надо.

И вообще мне честно говоря это уже вкрай надоело. Чтобы я ни сделал - начинает спорить, что-то доказывать. Да нахер мне это надо? Иди свой движок пиши и там делай как тебе нравится.

Добавлено 26-02-2020 в 19:52:

Главное столько лет этот бамп в параное делали - ни слова от тебя не было на тему того, что он из-за smd кривой. А тут вдруг выяснилось. Тебе просто скучно и надо поспорить.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 190556

Старое сообщение 26-02-2020 16:52
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Тогда объясни как это в хл2 нету проблем с бампом, они-то модельки тоже из smd компилят.

В хл2 нет моделей с симметричной разверткой как в дум3
Цитата:
Дядя Миша писал:
Главное столько лет этот бамп в параное делали - ни слова от тебя не было на тему того, что он из-за smd кривой. А тут вдруг выяснилось. Тебе просто скучно и надо поспорить.

Было. Я еще на ксме говорил, что на модели толстяка из дума шов на нормали
Цитата:
Дядя Миша писал:
А зачем добавлять то, что игнорируется в любом случае?

Сейчас игнорируется, а потом понадобится. А уже не добавить.
Цитата:
Дядя Миша писал:
Чтобы я ни сделал - начинает спорить, что-то доказывать.

Когда я не спорил и не доказывал, у вас нормали были в разные стороны, а на моделях со скелеткой вообще черти чего. Ты этого хочешь?

Сообщить модератору | | IP: Записан
Сообщение: 190557

Старое сообщение 26-02-2020 17:10
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4136

Рейтинг



Цитата:
Дядя Миша писал:
если это экспортёр из блендера, то там наверное надо

В блендере Z-up, X-right. Всё по-кармаковски.

Сообщить модератору | | IP: Записан
Сообщение: 190558

Старое сообщение 26-02-2020 17:15
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
ncuxonaT писал:
В хл2 нет моделей с симметричной разверткой как в дум3

ну вот видишь как просто это решить

Цитата:
ncuxonaT писал:
модели толстяка из дума шов на нормали

да это Элбер его криво экспортнул. Мы же понятия не имеем чем он пользовался.

Цитата:
ncuxonaT писал:
Сейчас игнорируется, а потом понадобится

не понадобится.

Цитата:
ncuxonaT писал:
не доказывал, у вас нормали были в разные стороны

А как же они по твоему должны быть в одну сторону штоле?

Добавлено 26-02-2020 в 21:12:

В любом случае тангента строится на основе нормали и текстурных координат для дублирующихся вертексов. Если она будет отличаться, вертекс шареным и не станет, очевидно же. Т.е. это элементарно восстанавливается.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 190559

Старое сообщение 26-02-2020 18:12
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
В любом случае тангента строится на основе нормали и текстурных координат для дублирующихся вертексов. Если она будет отличаться, вертекс шареным и не станет, очевидно же.

Вероятно, это сработает. Конечно, если на развертке не будет диких искажений. И нужно будет поставить какой-то значительный порог сравнения тангентов. Ну чтобы не получилось, что никакие вертексы не шарятся.

Сообщить модератору | | IP: Записан
Сообщение: 190560

Старое сообщение 27-02-2020 01:48
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



ncuxonaT я вот еще думаю, если получившийся TBN прогнать через BFN-карту и сохранить их как char[3]. И по хорошему, когда снимаешь нормали с меша, их тоже перед записью в tga надо прогонять через BFN.

Добавлено 27-02-2020 в 10:46:

Цитата:
ncuxonaT писал:
И нужно будет поставить какой-то значительный порог сравнения тангентов.

Гм. Векторы сравнивают через дот, а в качестве порога берут угол в радианах. Я обычно использую шаг в 2 градуса. Впрочем в оригинальных студиомоделях нормали индексируются с точно таким же шагом. Это нам даёт 32400 уникальных нормали по идее. Но конечно в BFN разрешение даже выше получается.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 190563

Старое сообщение 27-02-2020 07:46
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
я вот еще думаю, если получившийся TBN прогнать через BFN-карту и сохранить их как char[3].

Это только для экономии памяти? Может, и ничего, только несколько побьются axis aligned вектора.
Цитата:
Дядя Миша писал:
И по хорошему, когда снимаешь нормали с меша, их тоже перед записью в tga надо прогонять через BFN.

Я про это думал. По уму надо все мипы прогонять BFN. И со сжатием текстур оно дружить не будет.
Цитата:
Дядя Миша писал:
Я обычно использую шаг в 2 градуса.

Есть подозрение, что для тангентов шаг маловат, из-за искажений развертки тангенты могут сильнее отличаться. Но оно чисто умозрительное.

Сообщить модератору | | IP: Записан
Сообщение: 190578

Старое сообщение 27-02-2020 13:43
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
ncuxonaT писал:
Это только для экономии памяти?

Не только. Для того чтобы погрешность везде была идентичная.

Цитата:
ncuxonaT писал:
И со сжатием текстур оно дружить не будет.

в ATI2N? Хороший вопрос, конечно. А Крайтек по этому поводу ничего не писал?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 190581

Старое сообщение 27-02-2020 15:17
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
А Крайтек по этому поводу ничего не писал?

Неа. Они делали свой энкодер для ATI2N, который считал ошибку не по отдельным каналам, а по восстанавливаемой нормали. Но он одну текстуру сжимал 3 часа, поэтому использовался только в крайних случаях.

Отредактировано ncuxonaT 27-02-2020 в 16:12

Сообщить модератору | | IP: Записан
Сообщение: 190583

Старое сообщение 27-02-2020 16:08
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
ncuxonaT писал:
Но он одну текстуру сжимал 3 часа

Им по идее надо было еще одну табличку намайнить для стереографической проекции.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 190585

Старое сообщение 27-02-2020 17:08
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 05:16. Новая тема    Ответить
Страницы (240): « Первая ... « 67 68 69 70 [71] 72 73 74 75 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024