DirectX를 사용하여 OpenGL 렌더링 창으로 렌더링 할 수 있기를 원합니다. 이는 이후의 기능이 DirectX에서만 지원되기 때문입니다.DirectX와 OpenGL의 혼합
나는 이것을 몇 년 전에 할 수 있다는 소식을 들었지만 여전히 가능해야한다고 생각합니다.
DirectX에서 VRAM의 정확한 부분과 정확한 깊이 버퍼를 가리키는 것이 포함된다고 생각합니다.
튜토리얼 또는 간단히 설명하면 매우 유용합니다.
DirectX를 사용하여 OpenGL 렌더링 창으로 렌더링 할 수 있기를 원합니다. 이는 이후의 기능이 DirectX에서만 지원되기 때문입니다.DirectX와 OpenGL의 혼합
나는 이것을 몇 년 전에 할 수 있다는 소식을 들었지만 여전히 가능해야한다고 생각합니다.
DirectX에서 VRAM의 정확한 부분과 정확한 깊이 버퍼를 가리키는 것이 포함된다고 생각합니다.
튜토리얼 또는 간단히 설명하면 매우 유용합니다.
OpenGL과 Direct3D를 함께 사용하면 작동하지 않으며 AFAIK는 전혀 사용되지 않습니다. OpenGL에서 제공하지 않는 Direct3D의 어떤 기능을 요청할 수 있습니까?
적어도 NVIDIA는 NV_DX_interop extension입니다. Direct3D 9 버퍼/텍스처/서페이스를 OpenGL 버퍼/텍스처/렌더링 버퍼로 직접 사용하게합니다 (따라서 다른 방법이됩니다). 그러나 나는 이것에 대한 어떤 경험도 가지고 있지 않으며 그것이 널리지지되거나 실제로 선을 이룰 수 있는지 모른다.
Direct3D에서만 사용할 수 있다고 생각되는 기능이 더 많습니다. Direct3D 및 OpenGL에서 사용할 수있는 기능 (있는 경우)이 많지 않으므로 OpenGL에서이 기능을 구현하는 방법을 알려줄 수 있습니다. 비록 당신이 ATI 카드를 가지고 있다면, 실제로 이용 가능하고 실제로 올바르게 작동하는 것은 때로는 두 가지 분리 된 일이 될 수 있습니다.
interop을 사용하더라도 두 API를 _same_ 창에 렌더링 할 수 없습니다. 다른 윈도우 또는 화면 밖의 렌더링 컨텍스트가있는 경우이를 사용할 수 있습니다. 그러나 같은 표면에는 없습니다. –
OpenGL을 통해 하나의 화면에서 렌더링 할 수 있으며 다른 DirectX로 렌더링 한 다음 텍스처를 복사하여 결합 할 수 있습니다. –
하실 수 있습니다. 적어도 nVIDIA를 위해서! NV_DX_interop을 확인하십시오. 그러나 OpenGL은 DirectX보다 더 많은 RAW/Low 레벨이므로 모든 DirectX 기능이 OpenGL에서 지원됩니다! 구현 방법은 다를 수 있습니다. 다시 말하지만, 원하는 DirectX 기능을 알려 주시면 다시 구현하는 방법을 알려줍니다.
내가 직접 연구하고있는 OpenGL과 Direct3D의 차이점 중 하나는 DirectShow (Direct3D의 하위 집합)에 Panasonic DVCPRO-HD 기반 카메라의 비디오 캡처 필터가 있다는 것입니다. 따라서 라이브 스트림은 API를 통해 수집되므로 OpenGL 라이브러리에 입력으로 사용하고 싶습니다. 그러한 라이브러리 중 하나는 OpenGL 기반 OpenFrameWorks입니다. 나는이 전송을 얼마나 효율적으로 할 수 있는지보고 싶다. 기존의 OpenFrameWorks Video API는 다소 오래되고 더 이상 사용되지 않는 DirectShow API를 사용하며 DirectShow에서 OpenFrameWorks로 픽셀을 가져 오는 무차별 전략을 사용합니다.
왜 OpenGL에 출력해야합니까? DirectX를 사용할 수 있다면 왜 DX 렌더러를 사용해야합니까? – glenatron
주로 Windows 하위 창에서 OpenGL 렌더링 화면을 올바르게 렌더링하려면 OpenGL 명령을 사용하는 Windows가 필요합니다. – ceorron
"이후 기능은 Direct X에서만 지원되기 때문입니다." 그리고 그 특징은 무엇입니까? OpenGL에서 사용할 수없는 D3D 기능은 거의 없습니다. –