我有一个 Direct3D 应用程序,它以固定分辨率(比如 800x600)运行窗口或全屏。为了支持宽屏模式,我以 800x600 渲染到后缓冲区,然后使用 Blt 将最后一帧绘制到前缓冲区的一部分中,该部分通常更大(比如 1280x720),因此 800x600 图像被拉伸到 960x720 以保持纵横比。
这工作正常,除了在某些视频卡/操作系统/驱动程序组合(nVidia Quadro、DX11、Windows 7)中,blit 似乎是使用点采样完成的,导致锯齿状边缘和通常不平滑的最终图像。
有没有办法避免这种情况?例如,在放大时强制 Blt 使用线性滤波器?
(注意:我知道我可以将原始的 800x600 资源渲染为 960x720 而不是在最后进行拉伸,但这还有其他缺点,因此在最后进行拉伸是首选解决方案)