Como posso usar D3DImage do WPF com DirectX gerenciado ou XNA?
Pergunta
Eu gostaria realmente de entrar em alguma codificação D3D, mas eu não tenho o tempo ultimamente para aprender C ++ para o que será de um projeto de hobby.
Solução
Se você está procurando uma maneira conseguiu fazer programação Direct3D, eu recomendaria SlimDX. É um invólucro fonte .NET aberta sobre DirectX. Desde DirectX gerenciado não está sendo suportado por mais tempo pela Microsoft, esta é uma boa maneira de usar código gerenciado com D3D. Ele é atualizado com bastante frequência e eu tive muita sorte de usá-lo até agora. Há um fio aqui que fala sobre usando SlimDX com D3DImage.
Outras dicas
Tente este artigo sobre D3DImage no CodeProject por Dr. WPF
Não é oficialmente suportado, tanto quanto eu sei. Looks como algumas pessoas hackeada-lo para fazê-lo funcionar .
Parece que este não pode ser um problema por muito mais tempo, pelo menos chegar .NET 4.0. Microsoft exibiu uma demonstração da integração XNA com WPF no PDC na terça-feira. Se você quiser vê-lo em ação, você pode ver o vídeo da sessão no site do PDC:
https://sessions.microsoftpdc.com/public/timeline.aspx
A sessão é PC46 (roteiro de WPF), XNA demo é em torno da marca 38 minutos. Eu estou esperando que eles vão entrar em mais detalhes durante o WPF Gráficas Futures palestra hoje (Session PC07). Pode ser um pouco abaixo da estrada, mas é encorajador que eles estão trabalhando nisso.
Outra alternativa para gerenciado DirectX e XNA é Mogre , que é um C # wrapper em torno de um grande open source motor de C ++ gráficos que usa Direct3D, chamado Ogre3D . (Se é um hobby, eu acho que você pode começar indo mais rápido usando um motor como este, em vez de D3D straight-up. Eu não sei muito sobre XNA ou SlimDX.)
Aqui está um artigo CodeProject por Leslie Godwin que leva a classe D3DImage (do artigo de Dr. WPF mencionado por Ian) e mostra como usá-lo com Mogre.
Edit: Eu criei um projeto open source, chamada MogreInWpf , para usar D3DImage com Mogre, com base no código de Leslie Godwin acima referenciado, e com um aplicativo de amostra alternativa.