2016-01-18 1 views
1

Récemment, je veux apprendre un livre nommé astuces de Gurus 3D Games Programming.It utilisé DDraw pour implémenter un moteur de rendu soft.But DDraw est à l'ancienne.Je veux utiliser Direct3D11 pour faire les mêmes choses.Alors j'ai eu la texture du backbuffer principal, et le mettre à jour.Mais ça n'a pas fonctionné, que dois-je faire?Comment gérer backbuffer dans Direct3D11?

Répondre

1

Vous n'avez pas directement accès au vrai buffer/backbuffer même avec DirectDraw sur les plates-formes modernes. Si vous voulez faire tout votre rendu dans un bloc de mémoire CPU sans utiliser le GPU, alors votre meilleur pari pour une présentation rapide est d'utiliser une texture Direct3D 11 avec D3D11_USAGE_DYNAMIC, puis faites un simple rendu quadruplé en plein écran de cette texture sur le backbuffer de présentation. Pour cette étape, vous pouvez regarder DirectX Tool Kit et la classe SpriteBatch. Cela dit, en termes de performances, cela risque d'être plutôt mauvais car vous faites tout sur le CPU et le GPU ne fait pratiquement rien 99% du temps.

+0

Merci pour votre idée.J'ai résolu le problème avec votre solution. – CodingDream