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

Результаты опроса: Добавим поддержку старых видеокарт, но при этом откажемся от масштабирования моделей?
Да, главное чтобы как можно больше народу смогло поиграть 6 22.22%
Нельзя урезать функционал из-за того, что кто-то не в состоянии обновить видеокарту 21 77.78%
Голосовавшие: 27. Вы еще не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.10.2016, 16:58  #41
OEUVRE
OEUVRE
Регистрация: 06.03.2013
Сообщения: 936
Замечания: 2


По умолчанию


Последний раз редактировалось OEUVRE, 07.10.2016 в 17:05.
OEUVRE вне форума Ответить с цитированием
Старый 01.10.2016, 16:58  #42
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 397


По умолчанию

Через текстуру 256x4, например и кодировать матрицы в цвета. Тогда все матрицы передавались бы одним сэмплером. Но во-первых, не факт что данные не смазывались бы драйвером, во-вторых выборка из текстуры тоже затратная операция, не уверен, что был бы приемлемый по скорости результат, в третьих это попросту хак

KiQ, подумав, добавил 01.10.2016 в 17:00
2 OEUVRE:
Ну вот зачем? Взял мне сообщение разорвал

Последний раз редактировалось KiQ, 01.10.2016 в 17:00.
KiQ вне форума Ответить с цитированием
Старый 01.10.2016, 17:11  #43
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

[ Цитата ] Посмотрите, что вы натворили вокруг, оба
А ты что натворил? Иди и пусть тебе будет стыдно!
[ Цитата ] Через текстуру 256x4, например и кодировать матрицы в цвета
такой фокус только на свежих видеокартах доступен. А нам надо на старых.
И - нет, это не хак, под это дело даже ввели специальные текстуры. В GL 3.0 и выше активно юзается.
Я напоминаю нам бы сейчас разобраться с корректным подсчётом юниформов.
Потому что поверсии совет кодера считаются vec4, а по версии ATI - флоаты.
2 KiQ: ты апдейт-то скачал? Иди проверь, может уже заработало.
Дядя Миша вне форума Ответить с цитированием
Старый 01.10.2016, 17:13  #44
ncuxonaT
ncuxonaT
Подполковник
Регистрация: 05.05.2013
Сообщения: 1,149


По умолчанию

2 Дядя Миша:
https://www.opengl.org/wiki/Shader#Resource_limitations

MAX_*_UNIFORM_COMPONENTS
This is the number of active components of uniform variables that can be defined outside of a uniform block. The term "component" is meant as the basic component of a vector/matrix. So a vec3​ takes up 3 components. The minimum value here is 1024, enough room for 256 vec4​s.

https://www.opengl.org/wiki/Uniform_%28GLSL%29
Implementation note: OpenGL implementations are allowed to reject shaders for implementation-dependent reasons. So you can have fewer active uniform components by your reckoning and still fail to link due to uniform limits. This is usually on hardware that is innately vector hardware. Pre-GeForce 8xxx hardware, and all ATi hardware does this. In this case, you should assume that each separate uniform takes up 4 components, much like it would in D3D. That means a "uniform float" is 4 components, a mat2x4 is 16 components (each row is 4 components), but a mat4x2 is 8 components.

Последний раз редактировалось ncuxonaT, 01.10.2016 в 17:28.
ncuxonaT вне форума Ответить с цитированием
Старый 01.10.2016, 17:52  #45
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

[ Цитата ] Pre-GeForce 8xxx hardware, and all ATi hardware does this
Я же и говорю, понакупят говна, а потом удивляются.
Мне что их вручную расталкивать по векторам? Вот у меня лайтстили единым массивом, как я их нормально растолкаю? ублюдство.
Дядя Миша вне форума Ответить с цитированием
Старый 01.10.2016, 18:55  #46
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

Как же меня задрали эти вскрышные ограничения.
Хорошо я упакую кости с выравниванием в 4 флоата и все остальные массивы тоже перепакую. Уложусь в этот грёбанный лимит в 1024 юниформа, если это и правда минималка, а то что показывают разные там радионы - лжа.
В любом случае надо будет потестить.
Дядя Миша вне форума Ответить с цитированием
Старый 03.10.2016, 20:43  #47
ncuxonaT
ncuxonaT
Подполковник
Регистрация: 05.05.2013
Сообщения: 1,149


По умолчанию

Можно сделать 2 рендера на выбор: первый - как сейчас, с GL 2.0 и костями на юниформах, и второй - с GL 3.0 и костями через UBO. Второй должен работать на intel HD3000-4000.
ncuxonaT вне форума Ответить с цитированием
Старый 03.10.2016, 21:02  #48
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 ncuxonaT: я так думаю видеокарты просто брешут о кол-ве юниформов.
Ведь по той ссылке что ты привёл написано - минимум 1024 для SM 2.0. А мне этого за глаза.
И у KiQ всё работает. Значит брехня. Моя задача заключается только в том, чтобы аккуратно упаковать всё в vec4 arrays. Чем я сейчас и занимаюсь.
Дядя Миша вне форума Ответить с цитированием
Старый 03.10.2016, 21:17  #49
gfdjr5
gfdjr5
[NULL]
Регистрация: 25.11.2012
Сообщения: 563


По умолчанию

[ Цитата ] Сообщение от ncuxonaT: Можно сделать 2 рендера на выбор: первый - как сейчас, с GL 2.0 и костями на юниформах, и второй - с GL 3.0 и костями через UBO. Второй должен работать на intel HD3000-4000.
Неплохая идея, появляется повод вернуть реализацию рендера в dll
gfdjr5 вне форума Ответить с цитированием
Старый 03.10.2016, 22:30  #50
ncuxonaT
ncuxonaT
Подполковник
Регистрация: 05.05.2013
Сообщения: 1,149


По умолчанию

[ Цитата ] Сообщение от Дядя Миша: И у KiQ всё работает.
А раньше почему не работало?
ncuxonaT вне форума Ответить с цитированием
Старый 03.10.2016, 22:39  #51
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 397


По умолчанию

2 Дядя Миша:
Ну, кроме террейна)
2 ncuxonaT:
По-другому доступные юниформы расчитывались
KiQ вне форума Ответить с цитированием
Старый 03.10.2016, 22:41  #52
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 ncuxonaT: потому что карточка рапортовала о 512-и юниформов и рендер считал что этого недостаточно для запуска. Но я убрал эту проверку и вот - всё работает. Конечно нужны еще дополнительные тесты. И естественно упаковать кости и лайтпробы в массивы из vec4, чтобы не расходовать их зря.
Этож только на нвидии можно как угодно располагать.

Дядя Миша, подумав, добавил 03.10.2016 в 22:43
[ Цитата ] Ну, кроме террейна)
Там еще такая тема, что на SM 2.0 доступно минимум 16 юнитов. Однако на практике радионы негодуют, когда используешь больше восьми. С этим тоже предстоит разобраться. Может я откажусь от текстурных слоёв, чтобы террайны у всех пахали, посмотрим.

Последний раз редактировалось Дядя Миша, 03.10.2016 в 22:43.
Дядя Миша вне форума Ответить с цитированием
Старый 09.11.2016, 11:24  #53
nemyax
nemyax
тндайпц тра
Регистрация: 30.07.2015
Сообщения: 639


По умолчанию

[ Цитата ] Сообщение от Дядя Миша: увеличивать скейл надо у рут-кости. И потом умножать её на все остальные. Только тогда все кости зарескейлятся правильно. Это возможно только с матрицами.
Зогбавно: масштабирование костей движком поддерживается, но записать его анимацию в .smd нельзя.
nemyax вне форума Ответить с цитированием
Старый 09.11.2016, 13:50  #54
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 397


По умолчанию

2 nemyax:
В смысле нельзя? В милке вот даже инструмент для это есть специальный. Тут речь о том, чтобы одинаковые модели расставлять с разным скейлом прямо в редакторе
KiQ вне форума Ответить с цитированием
Старый 09.11.2016, 14:03  #55
nemyax
nemyax
тндайпц тра
Регистрация: 30.07.2015
Сообщения: 639


По умолчанию

2 KiQ:
Уж ты-то знаешь, что в .smd для каждой кости в кадре записывается только вот такое:
<int|bone ID> <float|PosX PosY PosZ> <float|RotX RotY RotZ>
Вот ты заанимировал что-то, экспортнул в .smd — скейл пропихался.
nemyax вне форума Ответить с цитированием
Старый 09.11.2016, 14:08  #56
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 nemyax: в smd пишется только позиция и поворот. Такой формат.
Дядя Миша вне форума Ответить с цитированием
Старый 09.11.2016, 14:22  #57
nemyax
nemyax
тндайпц тра
Регистрация: 30.07.2015
Сообщения: 639


По умолчанию

2 Дядя Миша:
Отож. А что хранится в .mdl? Матрицы?
nemyax вне форума Ответить с цитированием
Старый 09.11.2016, 14:36  #58
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 nemyax: неа. Те же pos + rot. Потом они превращаются в кватернионы + pos, а потом уже - в матрицы. А почему сначала в кватернионы, а не напрямую в матрицы? А потому что spherical linear blending. А его только на кватернионах и сделаешь.
Дядя Миша вне форума Ответить с цитированием
Старый 09.11.2016, 14:52  #59
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 397


По умолчанию

2 nemyax:
аа, ты прям чтобы скейл записывался? Ну а какой в этом смысл? Для движка он значения не имеет, гораздо удобнее оперировать сразу позициями. И для пользователя тоже, кто захочет держать десять одинаковых анимаций только ради разного скейла? Так что задавать скейл в редакторе - самый оптимальный вариант
KiQ вне форума Ответить с цитированием
Старый 09.11.2016, 14:58  #60
nemyax
nemyax
тндайпц тра
Регистрация: 30.07.2015
Сообщения: 639


По умолчанию

[ Цитата ] Сообщение от KiQ: ты прям чтобы скейл записывался? Ну а какой в этом смысл?
Ну смысл и правда невеликий для игор типа халфы. Но если бы было можно, то получалось бы хорошее растяжение-сжатие, например (для мультяшной стилистики).
nemyax вне форума Ответить с цитированием
Ответ

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

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

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

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



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


Designed by FT-502, [email protected] Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2020 by CS-Mapping.com.ua Community