我希望能够使用DirectX渲染到OpenGL渲染窗口。这是因为我之后的功能仅在DirectX中受支持。
我听说几年前可以做到这一点,我希望它仍然有可能。
我想它会将DirectX指向VRAM的正确部分和正确的深度缓冲区。
另外,教程或简单的解释将非常有用。
答案 0 :(得分:3)
至少NVIDIA有NV_DX_interop extension,让你直接使用Direct3D 9缓冲区/纹理/表面作为OpenGL缓冲区/纹理/渲染缓冲区(因此反过来说)。但我对此没有任何经验,我不知道它是否得到广泛支持或实际上是否有用。
您认为哪些功能仅适用于Direct3D,这将更具有效性。也许我们可以向您展示如何使用OpenGL实现它,因为Direct3D中没有很多可用的功能(如果有的话)而不是OpenGL。虽然如果你有一张ATI卡,可用并且实际上正常工作有时可能是两个单独的东西。
答案 1 :(得分:2)
混合OpenGL和Direct3D将无法正常工作,而AFAIK从未习惯过。请问OpenGL不提供哪些Direct3D功能?
答案 2 :(得分:0)
你可以。至少对于nVIDIA来说!检查NV_DX_interop。但是,OpenGL支持每个DirectX功能,因为OpenGL比DirectX更低RAW /低级别!它的实施方式可能有所不同。再次,告诉我们你想要的DirectX功能,我可以告诉你如何重新实现它。
答案 3 :(得分:0)
我正在研究的OpenGL和Direct3D之间的区别的一个具体例子是,在DirectShow(Direct3D的一个子集)中,我的Panasonic DVCPRO-HD摄像机有视频捕捉过滤器。所以通过该API收集的实时流,我想用作OpenGL库的输入。一个这样的库是OpenFrameWorks,它是基于OpenGL的。我希望看到我能够有效地进行这种转移。现有的OpenFrameWorks Video API使用稍旧且已弃用的DirectShow API,并使用强力策略将DirectShow中的像素转换为OpenFrameWorks。