Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Скорость загрузки ресурсов в сталкире
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Trollz0r
Случай 1: модель использует 4 отдельные текстуры по 512х512пикс. (т.е. 4 файла DDS)
Случай 2: та же модель использует 1 большую текстуру-склейку 1024х1024пикс, в которой склеены 4 текстуры из предыдущего примера (т.е. 1 файл DDS)

В каком случае движок игры будет грузить модель с текстурой быстрее?

Помнится, кто-то говорил, что во втором случае scratch_one-s_head.gif
aka_sektor
По-моему, неважно сколько текстур у модели. Важно, какого они разрешения.
macron
В техническом смысле 1 текстура (файл) должна грузиться быстрее четырех. С другой стороны, при использовании игровых db-архивов, может и не так важно.
RedMagic
https://en.wikipedia.org/wiki/Texture_atlas
jamakasi
Слишком много неизвестных чтобы сказать что лучше. Тут важно в архивах ресурсы или нет, асинхронно многопоточная загрузка или нет, с чего именно все грузится с ссд\хдд\гибрида, какое разрешение у текстуры и т.д.
Stalker_Monolit
Второй случае конечно blink.gif время на обработку пойдет меньше. Да и памяти будет меньше занимать на харде и в оперативе.
jamakasi
Stalker_Monolit, памяти будет занимать ровно столько же, ни больше и ни меньше. По скорости тоже вопрос большой о чем я выше писал.
Молния в вакууме
Цитата(jamakasi @ 18.08.2017, 12:52) *
памяти будет занимать ровно столько же, ни больше и ни меньше.

Ну почему же. Заголовок DDS весит 128 байт, в первом случае их надо четыре, а во втором всего один. biggrin.gif
Cossack-HD
Даёшь x64 столкир, чтобы ресурсы всех NPC и оружия всегда держались в оперативке, а с диска подгружались только статичные ресурсы (т.е. локации)! laugh.gif
Уже хрен знает сколько существует эта проблема. Ну ладно, загрузку во втором потоке не запилили, давайте хоть решим проблему брутфорсом?

И таки да, столкир умеет подзависать даже при запуске с RAMDISK. Это XRAY, детка! z_crazy.gif
Так что есть два пути решения проблемы и один гибридный.

1. Префетчинг всей "динамики" в оперативку.
2. Второй поток для подгрузки ресурсов по запросу из первого, и чтобы первый поток не прерывался, а оставлял объект в оффлайне, пока ресурсы не загрузились.
3. Префетчить в оперативку ту динамику, которая может использоваться на текущей локации. Сюда нужно включить список всех объектов на текущем уровне через all.spawn и всю живность, которая собирается перейти на текущий уровень. Скриптовый спавн, увы, всё равно будет вызывать подзависания. Так что лучше либо 1ый вариант, либо 2ой.
K.D.
Цитата(Cossack-HD @ 19.08.2017, 01:36) *
Даёшь x64 столкир

Даешь профилирование, чтобы внезапно узнать, что не текстуры грузятся дольше всего.
1_A
Cossack-HD, существует с момента создания X-Ray и решена последством разработки 4A Engine.
а х64 как бы уже сделали, вроде.

по теме пункт 2, очевидно же. но такая "экономия", не будет играть в сторону удобства.
Alex Ros
Цитата(RedPython @ 15.03.2017, 20:37) *
Случай 1: модель использует 4 отдельные текстуры по 512х512пикс. (т.е. 4 файла DDS)
Случай 2: та же модель использует 1 большую текстуру-склейку 1024х1024пикс, в которой склеены 4 текстуры из предыдущего примера (т.е. 1 файл DDS)

В каком случае движок игры будет грузить модель с текстурой быстрее?

Помнится, кто-то говорил, что во втором случае scratch_one-s_head.gif
В данном случае без разницы будет. По крайней мере без ощутимой разницы. Метод тыка не выдает ощутимой. А вот ощутимая разница выходит, когда у тебя много мелких моделей с развертками, скажем, 256. И если у тебя есть 16 моделей с 16 ддс-ками 256, то ощутимо быстрей выходит чтобы все 16 пропсиков обращались к одной ддс-ине 1024. 16 конечно мало чтобы ощутить на практике. Прямо там ощутимая разница по фризам чувствуется, когда много таких пропсиков. Типа 10х1024 супротив 40х512 уже что-то ощущалось. Тестил на НПС давно и на кустах\деревьях. Непосредственно на статике, если что, на пропсиках точно не тестил.
FL!NT
Не все однозначно. Если у вас 16 моделей с текстурами 256х256, то загрузка одной 1к текстуры будет быстрей и не будет дерганья при подгрузки остальных, но если на уровне использована всего одна модель из 16, то 15 из 16 от объема текстуры вообще не будет работать, а только грузить память. В СЕ и в UE обычно используется принцип один объект - один набор текстур к нему, исключение составляют только тайлинговые текстуры, которые могут применяться многократно на разных объектах. В сталкере по большому счету этого принципа не придерживались, те же текстуры бочек могут быть насажены на что угодно.))
Cossack-HD
Цитата(virus_ua @ 19.08.2017, 05:21) *
Cossack-HD, существует с момента создания X-Ray и решена последством разработки 4A Engine.
а х64 как бы уже сделали, вроде.

по теме пункт 2, очевидно же. но такая "экономия", не будет играть в сторону удобства.

Короче, нам нужны исходники метра biggrin.gif

А что не так со вторым пунктом? Посмотрите на ту-же GTA - там ресурсы подгружаются второстепенными потоками, а основной поток ничего не ждёт т.е. вместо зависания он продолжает работать с доступными ресурсами.
ForserX
Цитата(Cossack-HD @ 19.08.2017, 11:49) *
основной поток ничего не ждёт

На дебаговом движке хорошо заметно, как основной поток захлёбывается, а второй поток прекрасно обрабатывает звук.


Ну а по сабжу. В открытом доступе давно код Рафы для мультипоточной загрузки текстур. Если лень искать, то код есть в репо из подписи.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.