【发布时间】:2009-12-21 14:19:57
【问题描述】:
我有一个 Direct3D 应用程序,它以固定分辨率(例如 800x600)运行窗口或全屏。为了支持宽屏模式,我以 800x600 渲染到后缓冲区,然后使用 Blt 将最后一帧绘制到前缓冲区的一部分中,该部分通常更大(比如 1280x720),因此 800x600 图像被拉伸到 960x720 以保持纵横比。
这工作正常,除了在某些视频卡/操作系统/驱动程序组合(nVidia Quadro、DX11、Windows 7)中,blit 似乎是使用点采样完成的,从而导致锯齿状边缘和通常不平滑的最终图像。
有什么办法可以避免这种情况吗?例如,在放大时强制 Blt 使用线性滤波器?
(注意:我知道我可以将原始 800x600 资源渲染为 960x720,而不是在最后进行拉伸,但这还有其他缺点,因此在最后进行拉伸是首选解决方案)
【问题讨论】:
-
我很想知道这些缺点是什么,因为我相信你最好正确地做而不是像上面那样做黑客。至少你所有的 3D 渲染看起来都是正确的......
标签: directx direct3d directdraw