I pixel shader possono essere utilizzati durante il rendering su una superficie fuori schermo?
-
03-07-2019 - |
Domanda
Sto pensando di integrare un codice D3D che ho con WPF tramite la nuova D3DImage come descritto qui:
La mia domanda è questa: il pixel shader funziona su superfici fuori schermo?
Soluzione
Il rendering su una superficie fuori schermo è generalmente meno vincolato rispetto al rendering direttamente su un back buffer. L'unico vincolo derivante dall'uso di una superficie offscreen con D3DImage è che deve essere in un formato RGB / ARGB a 32 bit (a seconda della piattaforma). A parte questo, tutto ciò che l'hardware ha da offrire è a tua disposizione.
In effetti, tonnellate di effetti shader sfruttano le superfici fuori schermo per multipass o post-elaborazione a schermo intero.
Altri suggerimenti
Non so se ci sia qualcosa di speciale con WPF, ma in generale sì, i pixel shader funzionano su superfici fuori schermo.
Per alcuni effetti è necessario il rendering su una superficie diversa, ad esempio la rifrazione del vetro davanti a una scena renderizzata dallo shader. I pixel shader non possono accedere al contenuto dello schermo corrente e quindi la vista deve essere prima renderizzata su un buffer e quindi utilizzata come trama nel passaggio dello shader di rifrazione in modo che possa prendere il colore di sfondo da un pixel diverso da quello calcolato.