Моя цель - увидеть, что произойдет, если использовать больше текстурных данных, чем то, что поместится в физической памяти графического процессора.Моя первая попытка состояла в том, чтобы загрузить до 40 текстур DDS, в результате чего объем памяти оказался намного выше, чем у графического процессора.Тем не менее, моя сцена все равно будет отображаться со скоростью 200+ кадров в секунду на 9500 GT.
Мой вывод: GPU / OpenGL умный и сохраняет в памяти только некоторые части mipmaps.Я думал, что это не должно быть возможно в стандартной конфигурации, но что бы то ни было.
Вторая попытка: отключить MIP-сопоставление, чтобы GPU всегда приходилось выбирать из текстур с высоким разрешением.Я снова загрузил около 40 DDS-текстур в память.Я проверил использование памяти текстур с помощью gDEBugger: 1,2 ГБ.Тем не менее, моя сцена рендерилась со скоростью 200+ кадров в секунду.
Единственное, что я заметил, было то, что, если отвести взгляд от камеры и затем снова центрировать ее на сцене, произойдет серьезное отставание.Как будто только тогда он будет передавать текстуры из основной памяти в графический процессор.(У меня включена некоторая базовая выборка усеченного конуса)
Мой вопрос: что происходит?Как этому 1 ГБ GPU удается сэмплировать данные с 1,2 ГБ текстурных данных со скоростью 200+ кадров в секунду?