我需要在 Windows 上将 QuickTime 电影渲染到可能不是电影自然大小的 GWorld 中。当电影按比例放大时,比如放大 1.5 倍,我会看到一些锯齿。然而,如果我在 QuickTime Player(Windows Vista 上的版本 7.6.6)中打开同一部电影并拉伸(stretch)窗口,我会在拉伸(stretch)时看到锯齿,但当我松开鼠标时,图像会变得平滑。它必须使用一些更智能的缩放算法或抗锯齿。除了 SetMovieGWorld
和 SetMovieBox
之外,我还需要做什么才能以更大的尺寸呈现?
这里有一些流畅的版本:
(来源:frameforge3d.com)
这是略带锯齿的对应物:
(来源:frameforge3d.com)
(虽然显示的是文字,但不是文字轨道,只是图片的一部分。)
我尝试使用 hintsHighQuality 等各种标志调用 SetMoviePlayHints
,但没有任何效果。
这是大局,以防您对完全不同的方法提出建议。这部电影是并排立体声。图像的左半部分和右半部分需要合成(以多种方式之一),然后绘制到屏幕上。例如,我正在测试的一部电影的自然尺寸为 2560 x 720,但显示时的自然尺寸为 1280 x 720。我目前的做法是渲染到 GWorld,然后在 SetMovieDrawingCompleteProc
回调,使用 glTexSubImage2D
将左半部分和右半部分上传到 OpenGL 纹理,并使用 GLSL 着色器渲染到屏幕。
我尝试使用 Apple Developer Technical Support 事件来获得这方面的帮助,但他们的回答基本上是“我们不做 Windows”。
最佳答案
您能否使用 DirectX,更具体地说,DirectShow 来显示您的电影,而不是使用 Apple 的 SDK?我知道 DirectX 可以播放 QuickTime 电影。
如果您可以使用 DirectShow,那么您可以搜索或创建自己的视频转换过滤器来进行抗锯齿和平滑处理。
关于windows - 如何在 Windows 版 QuickTime 中进行高分辨率离屏渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242186/