У меня есть игровой движок directx9, который создает свой обычный адаптер в следующем формате:
D3DFMT_X8R8G8B8
У меня есть система, в которой я отрисовываю некоторые объекты вне цели рендеринга, как световые карты. Затем я использую эти данные карты освещения для компоновки обратно в задний буфер, где они действуют как полноэкранная «маска», и позволяю мне получить эффект факелов или других источников света на темной сцене.
Все работает просто отлично.
Проблема в том, что я знаю, что мои большие цели рендеринга внеэкранной карты освещения - 16 МБ каждая, с большим разрешением, и мне действительно нужно только 8 бит данных (в оттенках серого), поэтому 75% 32-битной целевой памяти рендеринга отходы. (Я нацеливаюсь на карты с низкой спецификацией).
Я попытался создать цели рендеринга как
D3DFMT_A8
Но DirectX молча терпит неудачу на этом (если я добавляю CheckDeviceFormat (), я вижу, что это происходит) и создает 32-битную в любом случае. Я использую функцию D3DXCreateTexture
У меня вопрос, какой формат лучше всего подходит для создания этих закадровых буферов?
Спасибо за вашу помощь, я не очень хорош в рендеринге, связанном с целью :):