гта срантон

Опубликовано: 17 Июль 2026
на канале: SpectreSrs
38
2

здесь я отвлёкся, месяцев на шесть (нб -6 начать) прежде чем вернулся к коду, вернее, ган ляпнул, написал немного кода, который я подхватил и дописал в хавогрек, и получился спонтанный эпик вин, но мне ещё пришлось потратить время на оптимизации чтобы наше 32битное приложение не вылетало от ПРЕВЫШЕНИЯ РАМ ЛИМИТА
первоначально мы грузили одну зону, с этим аеропортом, парс .иде и .ипл оказался тривиальной задачей, не считая того что сан андреас использует Z+up координатную сетку, и мы конвертили координаты в Y+up на лету
мы думали что придётся сконвертить все модели и текстуры заранее, но по мере нарастания градуса похера мы начали курить форматы, у гана уже был свой имг парсер, так что он дописал .тхд парсер, и можно было бы конвертить дхт1-3 текстуры сана в тга для подгрузки огром, если бы я не обнаружил что огре может жрать сановские дхт нативно прямо из памяти
затем по спецификациям дфф с гтавики мы распарсили и его, конвертя рантайм в огре мануал обжект (заодно фикся Z+up), и в итоге мы смогли загрузить весь регион - правда, исключительно лод его версию, оказалось что .ипл файлы есть ещё и в имг архиве, в которых уже и находились детаил объекты одноимённой зоны, причём продолжающие её список - лоды детаилам назначались как порядковый номер файла от начала списка
с коллизией всё было примерно также (заодно фикся Z+up), кроме того факта что .кол файлы оказались шматками по нескольку файлов друг за другом, и их нужно парсить подряд пока не уткнёшся в конец файла, полученые в результате кубы, шары и случайные треугольники билдились в хавок компаунд меш, который выдержал такое нахальство без какойлибо оптимизации - более того, загрузив ВСЮ колизию сана, весившую всего 300мб рам и совершенно не влияющую на фпс, градус похера возрос до того, что я решил загрузить сан андреас целиком
оказалось, что целиком сан андреас весит около двух гигобайт, а приложение вылетает уже на 1.7, но ПОЧТИ убирающийся сан не позволил мне вернуться к первоначальным планам о динамической подгрузке, придётся оптимизировать, текстуры у меня уже подгружались лишь недостающие (проверяя существующую на разрешение, если ранее была загружена одноимённая лод текстура, она заменялась хд версией), и занимали всего 300-400мб как и хавок, так что полтора гб уходили на огре мануал обжекты
конвертация оных в меши убавления памяти не дало, погуглив я обнаружил вариант создания меша вручную из вертекс буферов, и переписав парсер смог добиться почти троекратного снижения объёма им занимаемого! сан андреас загрузился заняв 1.2гб! там даже ЗАПЕЧЁННОЕ В ВЕРТЕКСКОЛОР ОСВЕЩЕНИЕ каноничное было, картинка почти неотличима!

Hall of the Mountain King.mp3