WPF에서 DirectX 11 or 12를 사용할 수 있을까요?

WPF에서 DirectX 11 or 12를 사용하려고 합니다.
DirectX Wrapper를 찾아봤는데…
SharpDX가 제일 유명해 보이더군요… 하지만 2019년에 개발을 중단 했더군요…
그래서 열심히 뒤져봤더니… Silk.Net이란걸 찾았는데…이건 예제도 별로 없고…
뭔가 좋은 방법이 없을까요?
단순히 Image Display 하는 기능을 하는 Control을 만들려고 하고있습니다만…
(대형 이미지를 고속으로 Dispaly 하려다 보니 GPU가속을 쓰고 싶습니다.)
뭔가 대안이 없을까요?

2 Likes

‘마지막으로, WPF(Avalon) 애플리케이션은 DirectX 애플리케이션이므로 위에서 설명한 DX 애플리케이션이 렌더링하는 것과 똑같이 렌더링합니다.’

‘Finally, WPF (Avalon) applications are DirectX applications, so they render just as the DX applications described above render.’


참고 : Redirecting GDI, DirectX, and WPF applications

1 Like

그럼 DirectX로 렌더링 된다는 얘기인가요?

‘WPF 애플리케이션 하드웨어 렌더링 파이프라인은 최소 Microsoft DirectX 버전 7.0을 지원하는 하드웨어에서 Microsoft DirectX 기능을 최대한 활용합니다. Microsoft DirectX 버전 7.0 및 PixelShader 2.0 이상 기능을 지원하는 하드웨어에서는 추가 최적화를 얻을 수 있습니다.’

‘렌더링 계층 2 대부분의 그래픽 기능에서는 그래픽 하드웨어 가속을 사용합니다. DirectX 버전 수준은 버전 9.0 이상입니다.’

등등.


참고 : 성능 최적화: 하드웨어 이용

1 Like

그렇군요…
DirectX9.0 이상으로 렌더링 되네요…;;;;

2 Likes
2 Likes

이건… 검토해봤지만…
.net framework 4.8, .net6.0, .net8.0을 동시에 사용하더군요. 저는 이걸 해결하지 못해서 포기했습니다.
이샘플이 정상동작하는거였는데…아쉽습니다.

2 Likes

공식적으로 D3D 9 - 11까지 지원하는 것으로 알고 있고요.
보통 2D를 고속으로 뿌릴 경우에는 9를 사용하면 되고
3D는 11을 쓰면 됩니다.

SharpDX는 현재까지도 별 문제 없이 사용 가능한 것으로 알고 있으나
2D 일 경우 직접 만들어도 별 문제 없습니다.
WPF Hosting Direct3D9로 검색하면 많이 나오고 MS가 올린 샘플 소스에 샘플에 있는것으로 기억을 합니다.

1 Like

5년전에 D2D로 렌더링 했던게 생각났습니다.

https://www.sysnet.pe.kr/2/0/11430

2 Likes