질문이 있습니다. 캔버스에 WPF 지오메트리를 그려야하고 각 지형의 표면은 Direct3D 11의 복잡한 Texture2D입니다. SharpDX를 사용하고 있으며 Texture2D를 MemoryStream으로 변환합니다. Compute Shader를 사용하고 있기 때문에 WPF ImageSource로 변환하면 Format.Bgra가 UAV 텍스처로 지원되지 않으므로 D3DImage를 사용할 수 없습니다. 성능 문제가 있기 때문에 어떻게 Texture2D를 WPF Geometry에 직접 바인딩 할 수 있습니까? 감사.DirectX on WPF Geometry
1
A
답변
0
성능상의 이유로 SharpDX로 전체 렌더링을 수행하고 WPF Geometry를 사용하지 말고 D3DImage 만 사용하여 렌더링 결과를 WPF와 동기화해야합니다. WPF 형식과 일치하도록 한 형식에서 다른 형식으로 텍스처를 변환해야하는 경우 텍스처를 복사하는 간단한 셰이더로 풀 쿼드를 렌더링하면됩니다. SharpDX Toolkit을 사용하여이 작업을 수행하는 경우 WPF 컨트롤을 제공하기 때문에 개발하는 것이 매우 쉽습니다.
0
짧은 대답은 아닙니다. WPF 3D는 초기 단계에 있으며 사용자 정의 셰이더 지원은 2D 효과에만 사용할 수 있습니다. 지금 내가 할 수있는 최선의 조언은 XNA 표면에 도형을 렌더링하고 WPF 컨트롤이 위에있는 AirspacePopup에 표시하는 것입니다.
+0
글쎄, WPF 3D를 사용하지 않았다. 단지 WPF2D의 PathGeometry 만 사용했다. 표면은 컴퓨팅 쉐이더로 계산 된 2D 텍스처이다. 하지만 기하학에서 Effect 속성을 찾지 못했습니다. XNA 표면에 wpf 형상을 렌더링하려면 어떻게해야합니까? 감사합니다. – WindyBamboo
고마워요. 이제 D3DImage를 사용하고 있습니다. 이제는 지오메트리 확대/축소 문제가 필요하고 변환 행렬을 d3dimage에 적용해야하며 렌더링 변환을 지오메트리에 적용해야합니다. 현재 크기를 확대 할 때 어떻게 동기화 할 수 있습니까? 항상 다른. 감사 – WindyBamboo