через CreateFile, то это невыгодно, мы вынуждены прочитать сжатые данные и вызывать декомпрессию, а раз мы не хотим делать декомпрессию каждый раз когда нам нужен этот ресурс снова, то мы как-то кэшируем, так? Но как много данных мы сможем кэшировать? На сегодняшний день одна моделька может весить дохрена, не говоря уже о куче модельках. По мне это не выгодно, мы слишком тратим кэш на большие файлы, выгодней этот кэш под звукови отдать и небольшие модельки, иначе это нерациональное использование кэша, пусть кэш в нашем случае будет ОЗУ.
Поэтому выгодней не сжимать ресурсы, которые мапятся, так мы сможем сразу считать данные и держать указатель прям на мапнутый ресурс чтоб читать оттуда, а если ресурс часто используется, то его в ОЗУ можно хранить, хотя я не знаю насколько затратно пытаться читать мапнутую область памяти, вроде первое чтение дорогое так как память еще не инициализирована, а последующие - хз, там еще какая та история с блоками связана, где может быть оверхед на каждый 1й байт блока (блок 4096 байт по дефолту), но это я уже точно не помню, давно как то слышал
Вот смотри, ты мапнул и держишь указатель. Что ты дальше с этим указателем будешь делать? Отправишь в какой-нибудь glBufferData? Так он копию создаст и будет хранить её. Зачем тебе этот указатель после glBufferData?
Обсуждают сегодня