Couleur de brouillard (Direct3D 9)
La couleur de brouillard pour le brouillard de pixels et de vertex est définie via l’état de rendu D3DRS_FOGCOLOR. Les valeurs d’état de rendu peuvent être n’importe quelle couleur RVB, spécifiée en tant que couleur RVBA. Le composant alpha est ignoré.
L’exemple C++ suivant définit la couleur de brouillard sur blanc.
/* For this example, the d3dDevice variable is
* a valid pointer to an IDirect3DDevice9 interface.
*/
HRESULT hr;
hr = d3dDevice->SetRenderState(
D3DRS_FOGCOLOR,
0x00FFFFFF); // Highest 8 bits are not used.
if(FAILED(hr))
return hr;
Le brouillard est appliqué différemment par le pipeline de fonction fixe et le pipeline programmable.
- Si le pilote prend en charge D3DPMISCCAPS_FOGANDSPECULARALPHA :
- Si le pipeline de fonction fixe est utilisé et qu’D3DRS_FOGCOLOR est défini, v1.w (dans le nuanceur de pixels) est égal à la valeur définie dans l’état de rendu de brouillard.
- Si le pipeline programmable est utilisé, v1.w (dans le nuanceur de pixels) est égal à 0, même si oD1.w est explicitement écrit dans un nuanceur de vertex.
- Si le pilote ne prend PAS en charge D3DPMISCCAPS_FOGANDSPECULARALPHA :
- Si le pipeline de fonction fixe est utilisé et D3DRS_FOGCOLOR est défini, la version 1.w (dans le nuanceur de pixels) est égale à la valeur définie dans l’état de rendu de brouillard.
- Si oFog est explicitement écrit dans un nuanceur de vertex, v1.w (dans le nuanceur de pixels) est égal à oFog, limité entre 0 et 1.
- Si aucun des deux cas ci-dessus ne s’applique, v1.w (dans le nuanceur de pixels) est égal à 0, même si oD1.w est explicitement écrit dans un nuanceur de vertex.
Pour plus d’informations, consultez D3DPMISCCAPS.
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour