При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Разработка игр > Paranoia 2: Savior
Ник
Пароль
Регистрация Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.10.2015, 15:30  #101
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 367


По умолчанию

2 Дядя Миша:
почитал сейчас, это не то. Выяснил, что у меня 1024 юниформа. Точнее их 4096, но каждый флоат занимает по 4. Интересно, это хардовое ограничение, или можно драйвер модифицировать? Кстати, сколько вообще матриц передается на вершину?
KiQ вне форума Ответить с цитированием
Старый 27.10.2015, 15:55  #102
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,921


По умолчанию

ATI хитрожопая, считает не юниформы, а байты. Поэтому их в 4 раза больше получается, якобы. Каждый юниформ = 1 флоат. В матрице 16 флоатов. Можно было бы конечно передавать матрицы 3х4, но старые версии OpenGL такого попросту не умеют, видимо из-за отсутствия выравнивания сильно падает скорость работы. Новые умеют, но там и так юниформов дофигищща. Матриц максимум передается 128 (макс. кол-во костей). Параноя в последних версиях научилась использовать юниформы экономно, считает сколько понадобится реально, может работать на половинном кол-ве (т.е. 64 кости), но нужен еще резерв на остальные параметры. Если запустить параною с -dev 5, то она напишет пиковое кол-во используемых униформов без учёта костей. Там в раёне 220-260 юниформов. Т.е. минимально приемлемое кол-во юниформов равно 1024 + 260, но поскольку их бывает только кратное кол-во, то минималка - 2048 юниформов. А у тебя всего-навсего 1024.
Дядя Миша вне форума Ответить с цитированием
Старый 28.10.2015, 15:38  #103
ncuxonaT
ncuxonaT
Старший прапорщик
Регистрация: 05.05.2013
Сообщения: 663


По умолчанию

[ Цитата ] Вбей texturelist там дохрена каких-то текстур будет загружено.
Кстати texturelist пишет, сколько памяти занимают текстуры, и на карте псавиор20 выводит "614.57 Mb total memory used", хотя винда пишет, что оперативки занято 430 МБ. Фреймбуфферы могут жрать 200 МБ?
Пробежал по списку, много весят несжатые текстуры из вадов и моделей и спрайты (был спрайт на 12 МБ). И вопрос возник: для несжатых текстур мипы не делаются? Потому что в списке для них размер указан только полного разрешения. Или они на самом деле в памяти еще больше на треть?
И я думал, что пушки не кэшируются, поэтому импульс такой долгий.

ncuxonaT, подумав, добавил 28.10.2015 в 15:40
[ Цитата ] матрица трансформации предумножена на иерархию, поэтому так.
Не может быть такого, что это влияет на расчет attr_Binormal? Например, не та последовательность действий?

Последний раз редактировалось ncuxonaT, 28.10.2015 в 15:40.
ncuxonaT вне форума Ответить с цитированием
Старый 28.10.2015, 17:27  #104
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,921


По умолчанию

Текстурлист может брехать для DDS, кстати. Я вроде бы проверял, но до конца не уверен. Фреймбуфферы тоже будут в этом списке текстур, поскольку сам фреймбуффер не весит ничего, весит, собственно текстура, которая к нему приаттачена. Мипы делаются, а вот учитывается ли это в команде текстурлист - ейбогу не помню. Скорее всего да.
[ Цитата ] И я думал, что пушки не кэшируются, поэтому импульс такой долгий.
Пушки в параное суммарно весят как вся первая халфа - около 300 метров. Кэшируй - не кэшируй...
[ Цитата ] Например, не та последовательность действий?
Тогда бы колбасило все анимации. В иерархии малейшая ошибка приводит к весьма мерзким артефактам. Вспомнить хотя бы Тринити Рендерерс, как там колбасило уч0ных.
Дядя Миша вне форума Ответить с цитированием
Старый 28.10.2015, 17:52  #105
ncuxonaT
ncuxonaT
Старший прапорщик
Регистрация: 05.05.2013
Сообщения: 663


По умолчанию

[ Цитата ] Тогда бы колбасило все анимации. В иерархии малейшая ошибка приводит к весьма мерзким артефактам. Вспомнить хотя бы Тринити Рендерерс, как там колбасило уч0ных.
Не, я имею в виду, что attr_Binormal рассчитывается после этих иерархий, или наоборот до.
ncuxonaT вне форума Ответить с цитированием
Старый 28.10.2015, 18:10  #106
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,921


По умолчанию

матрица для тангент-спейса берется из матрицы для текущей кости.
Намекаешь, что надо брать из корневой? Можешь попробовать весь тангент трансформировать через u_BoneMatrix[0] но ИМХО ерунда получится.
Дядя Миша вне форума Ответить с цитированием
Старый 28.10.2015, 22:43  #107
ncuxonaT
ncuxonaT
Старший прапорщик
Регистрация: 05.05.2013
Сообщения: 663


По умолчанию

Да, ерунда получается.
Но я про другое говорил. Модель в фарш превращается перед загрузкой в VBO? attr_Binormal, который передаётся в шейдер, рассчитывается до того, как модель превратилась в фарш, или после?
ncuxonaT вне форума Ответить с цитированием
Старый 28.10.2015, 22:50  #108
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,921


По умолчанию

[ Цитата ] Модель в фарш превращается перед загрузкой в VBO?
В какой еще фарш?
В VBO лежат вертексы и нормали, которые не умножены ни на какую матрицу.
Т.е. то, что записано в самой модели. Бинормаль и тангента рассчитываются для этой дефолтной позы. Точно так же устроено и в хл2, с одной лишь оговоркой - там есть развесовка, которая безусловно вносит свой вклад.
Я вообще, если честно не видел бампа на моделях без развесовки. Ни в параное, ни в хлфх, ни в одной коммерческой игре такого нет. Всегда, если есть бамп. значит есть и развесовка. Я думаю всё дело в этом и только в этом.
Тем более как ты говоришь, если анимаций нет, то и проблем нет тоже.
Дядя Миша вне форума Ответить с цитированием
Старый 28.10.2015, 23:12  #109
ncuxonaT
ncuxonaT
Старший прапорщик
Регистрация: 05.05.2013
Сообщения: 663


По умолчанию

2 Дядя Миша:
если убрать умножение на матрицы костей, модель с костями превращается в фарш. Почему?
[ Цитата ] матрица трансформации предумножена на иерархию, поэтому так.
Вот это не очень понятно.
ncuxonaT вне форума Ответить с цитированием
Старый 29.10.2015, 09:23  #110
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 367


По умолчанию

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

KiQ, подумав, добавил 29.10.2015 в 09:26
Хотя по идее, это нужно делать после каждой смены анимации

Последний раз редактировалось KiQ, 29.10.2015 в 09:26.
KiQ вне форума Ответить с цитированием
Старый 29.10.2015, 10:37  #111
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,921


По умолчанию

Ну в хл2 эта матрица записана в структуру кости, а в хл1 - предумножена в компиляторе.
Дядя Миша вне форума Ответить с цитированием
Старый 29.10.2015, 16:05  #112
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 367


По умолчанию

2 Дядя Миша:
она уже в smd предумножена, насколько я помню
KiQ вне форума Ответить с цитированием
Старый 29.10.2015, 17:51  #113
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,921


По умолчанию

2 KiQ: ну сравни сорцы компиляторов хл1 и хл2 - поймешь о чём я.
Иногда это довольно неудобно, что нет матрицы кости.
Дядя Миша вне форума Ответить с цитированием
Старый 29.10.2015, 18:03  #114
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 367


По умолчанию

2 Дядя Миша:
локальной матрицы имеется в виду?
KiQ вне форума Ответить с цитированием
Старый 29.10.2015, 18:15  #115
ncuxonaT
ncuxonaT
Старший прапорщик
Регистрация: 05.05.2013
Сообщения: 663


По умолчанию

Друзья, я так и не разобрался.
[ Цитата ] при загрузке модели мы должны произвести ее свертывание по обратным матрицам согласно иерархии скелета
[ Цитата ] в хл1 - предумножена в компиляторе.
То есть модель с костями представляет собой фарш уже после компиляции?
ncuxonaT вне форума Ответить с цитированием
Старый 02.11.2015, 22:13  #116
ncuxonaT
ncuxonaT
Старший прапорщик
Регистрация: 05.05.2013
Сообщения: 663


По умолчанию

Повторю вопрос.
При компиляции модели, её геометрия сворачивается исходя из положения костей дефолтной позы? И все анимации так же сворачиваются? И attr_Normal, attr_Tangent и attr_Binormal рассчитываются для этой свернутой модели и передаются в шейдер? Возможно ли перед их расчетом поставить модель в позу из любой анимации? Ну чтобы не для фарша всё считать.

И еще вопрос возник. Почему тени так лагают?)
Ну то есть при включении фонаря фпс падает с 70 до 60. Причём разрешение шедоумапы на фпс не влияет, одинаковый просед и при 32, и при 2048. PCF влияет, но не сильно.
ncuxonaT вне форума Ответить с цитированием
Старый 02.11.2015, 22:29  #117
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,921


По умолчанию

Так это же не аддикативные позы, они равнозначные. Нельзя умножить позу на позу.
[ Цитата ] Причём разрешение шедоумапы на фпс не влияет
Вообще-то влияет. и PCF сильно влияет. Есть PCF2x2, есть PCF3x3.
В любом случае это отдельный проход.
Дядя Миша вне форума Ответить с цитированием
Старый 02.11.2015, 22:46  #118
ncuxonaT
ncuxonaT
Старший прапорщик
Регистрация: 05.05.2013
Сообщения: 663


По умолчанию

[ Цитата ] Так это же не аддикативные позы, они равнозначные. Нельзя умножить позу на позу.
Зачем умножать позу на позу? Для какой модели рассчитываются TBN, передающиеся в шейдер, для модели в дефолтной позе, или для свернутой модели в виде фарша?
[ Цитата ] Вообще-то влияет. и PCF сильно влияет. Есть PCF2x2, есть PCF3x3.
Сделал небольшое сравнение для обычного фонаря.
Код:
r_shadows:	0	1	3	
size=32		98fps	94fps	83fps
ssize=2048	98fps	90fps	77fps
А с выключенным фонарем ФПС вообще 165. Поэтому я меняю вопрос на "почему фонарь без теней сажает фпс в полтора раза?"
ncuxonaT вне форума Ответить с цитированием
Старый 02.11.2015, 22:49  #119
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 367


По умолчанию

2 ncuxonaT:
нормалмэппинг? Проективный свет?
KiQ вне форума Ответить с цитированием
Старый 02.11.2015, 22:55  #120
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,921


По умолчанию

Для свернутой модели в виде фарша. Но она не свернутая. Там полюбому есть дефолтная поза, если бы ты мог умножить эти вертексы на мировую матрицу, я думаю она бы себя проявила, но в шейдеры студиомоделей таковая не передается, поскольку она еще в рендерере пердумножается на иерархию. Отсюда и иллюзия, что там фарш.
[ Цитата ] Поэтому я меняю вопрос на "почему фонарь без теней сажает фпс в полтора раза?"
Уже более корректно. Потому что современные карточки не могут в филлрейт.
Они все точатся под отложенное освещение. Вот большой фреймбуффер по памяти гонять - на здоровье. А как филлрейт - смерть.
Это началось примерно с 8х серии жифорсов. Потому что на шестых жифорсах даже VA летали как ненормальные, а на 8х смотрю - чёта воще тухло, даже медленнее чем было. А потому что перестали всё это оптимизировать.
Иными словами можно сделать отложенный рендер и нарисовать полтора ляма поликов в кадре и получить те же сто фпс.
Дядя Миша вне форума Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 05:58.


Designed by FT-502, TRUP@C. Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2017 by CS-Mapping.com.ua Community