【发布时间】:2011-06-28 09:35:08
【问题描述】:
我有一个 directx9 游戏引擎,它使用以下格式创建其普通适配器: D3DFMT_X8R8G8B8 我有一个系统,我将一些对象渲染到屏幕外渲染目标,作为光照贴图。然后我使用该光照贴图数据合成回后台缓冲区,在后台缓冲区中它们充当全屏“蒙版”,让我在黑暗场景中获得手电筒或其他光源的效果。 一切都很好。 问题是,我知道我的大屏幕外光照贴图渲染目标是 16MB,分辨率很大,我只需要它们的 8 位数据(灰度),所以 75% 的 32 位渲染目标内存是浪费。 (我的目标是低规格卡)。 我尝试将渲染目标创建为 D3DFMT_A8 但是directx 默默地失败了(如果我添加 CheckDeviceFormat() 我看到它发生了)并且无论如何都会创建 32 位。我使用 D3DXCreateTexture 函数 我的问题是,什么格式最适合创建这些屏幕外缓冲区?
谢谢你的帮助,我不擅长渲染目标相关的东西:)
【问题讨论】: