Peut-on utiliser des pixel shaders lors du rendu sur une surface hors écran?
-
03-07-2019 - |
Question
J'envisage d'intégrer du code D3D que j'ai avec WPF via le nouveau fichier D3DI comme décrit ici:
Ma question est la suivante: le pixel shader fonctionne-t-il sur des surfaces hors écran?
La solution
Le rendu sur une surface hors écran est généralement moins contraint que le rendu direct sur une mémoire tampon. L'utilisation de la surface hors écran avec D3DImage est la seule contrainte imposée: elle doit être au format RGB / ARGB 32 bits (selon votre plate-forme). En dehors de cela, tout le matériel informatique est à votre disposition.
En fait, de nombreux effets de shader tirent parti des surfaces hors écran pour le multipass ou le post-traitement en plein écran.
Autres conseils
Je ne sais pas s'il y a quelque chose de spécial à ce sujet avec WPF, mais en général, oui, les shaders de pixels fonctionnent sur des surfaces hors écran.
Certains effets nécessitent un rendu sur une surface différente - par exemple, une réfraction du verre devant une scène rendue par un shader. Les shaders de pixels ne peuvent pas accéder au contenu actuel de l'écran. La vue doit donc d'abord être restituée dans une mémoire tampon, puis utilisée comme texture dans la passe du shader de réfraction, de manière à pouvoir prendre la couleur d'arrière-plan d'un pixel autre que celui en cours de calcul.