D3D 在某些卡上无法自动生成 mipmap!
在大多数计算机上我的程序运行良好。但在一台计算机上它无法生成 mipmap。
我用 D3DUSAGE_AUTOGENERATEMIPMAP 创建了一个纹理,
D3DCAPS2_CANAUTOGENMIPMAP 说是,CheckDeviceFormat 也说 D3D_OK(不是 D3DOK_NOAUTOGEN)。
然后我使用 LoadSurfaceFromMemory 来填充纹理。
但在该特定计算机上,不会生成 mipmap。更糟糕的是,电脑是我领导的!!
On most of computers my program performs fine. But on one computer it failed to generate mipmap.
I created a texture with D3DUSAGE_AUTOGENERATEMIPMAP,
D3DCAPS2_CANAUTOGENMIPMAP says yes and CheckDeviceFormat says D3D_OK(not D3DOK_NOAUTOGEN) too.
then I use LoadSurfaceFromMemory to fill the texture.
But on that particular computer, no mipmap is generated. What's worse, the computer is my leader's!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我敢打赌它是集成的英特尔(或其他较小的制造商)或其驱动程序不是最新的。如果使用“参考”(REF) 驱动程序可以正常工作,那么它是一个驱动程序错误。
如果您无论如何都要从内存加载表面,那么之后调用 D3DXFilterTexture 真的有那么多额外的费用吗?它更有可能发挥作用。
唉,你发现了完全谎言的帽子的乐趣:(
I'd bet its an intel (or other lesser manufacturer) integrated or that its drivers are not up-to-date. If it works using the "reference" (REF) driver then its a driver bug.
If you are loading a surface from memory anyway is it really that much extra to call D3DXFilterTexture afterwards? Its far more likely to work.
Alas you discover the joys of caps that outright lie :(