İngilizce dilinde oku

Aracılığıyla paylaş


Hafif Haritaları Dağıtma (Direct3D 9)

Bir ışık kaynağı tarafından aydınlatıldığında, mat yüzeyler dağınık ışık yansımasını gösterir. Yayma ışığının parlaklığı, ışık kaynağından uzaklığa ve normal yüzey ile ışık kaynağı yön vektörü arasındaki açıya bağlıdır. Aydınlatma hesaplamaları ile simülasyonu yapılan yayma aydınlatma efektleri yalnızca genel etkiler üretir.

Uygulamanız doku ışık haritaları ile daha karmaşık dağınık aydınlatma simülasyonu yapabilir. Bunu, aşağıdaki C++ kod örneğinde gösterildiği gibi temel dokuya yayma ışık haritasını ekleyerek yapın.

// This example assumes that d3dDevice is a valid pointer to an
// IDirect3DDevice9 interface.
// lptexBaseTexture is a valid pointer to a texture.
// lptexDiffuseLightMap is a valid pointer to a texture that contains 
// RGB diffuse light map data.

// Set the base texture.
d3dDevice->SetTexture(0,lptexBaseTexture );

// Set the base texture operation and args.
d3dDevice->SetTextureStageState(0,D3DTSS_COLOROP,
                                D3DTOP_MODULATE );
d3dDevice->SetTextureStageState(0,D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState(0,D3DTSS_COLORARG2, D3DTA_DIFFUSE );

// Set the diffuse light map.
d3dDevice->SetTexture(1,lptexDiffuseLightMap );

// Set the blend stage.
d3dDevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE );
d3dDevice->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT );

Dokular ile Açık Eşleme