Aracılığıyla paylaş


Tek Renkli Açık Haritalar (Direct3D 9)

Bazı eski 3B hızlandırıcı panoları, hedef pikselin alfa değerini kullanarak doku karıştırmayı desteklemez. Daha fazla bilgi için bkz. Alfa Doku Karıştırma (Direct3D 9). Bu bağdaştırıcılar genellikle birden çok doku karıştırmayı desteklemez. Uygulamanız bunun gibi bir bağdaştırıcı üzerinde çalışıyorsa, tek renkli ışık eşlemesi gerçekleştirmek için çok geçişli doku karıştırmayı kullanabilir.

Bir uygulama, tek renkli ışık eşlemesi gerçekleştirmek için ışık haritası dokularının alfa verilerinde aydınlatma bilgilerini depolar. Uygulama, direct3D'nin doku filtreleme özelliklerini kullanarak ilkel görüntüdeki her pikselden ışık haritasında karşılık gelen bir ifadeye eşleme gerçekleştirir. Kaynak karıştırma faktörünü ilgili texel'in alfa değerine ayarlar.

Aşağıdaki örnekte, bir uygulamanın tek renkli ışık haritası olarak dokuyu nasıl kullanabileceği gösterilmektedir:

// This example assumes that d3dDevice is a valid pointer to an
// IDirect3DDevice9 interface and that lptexLightMap is a valid
// pointer to a texture that contains monochrome light map data.

// Set the light map texture as the current texture.
d3dDevice->SetTexture(0, lptexLightMap);

// Set the color operation.
d3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);

// Set argument 1 to the color operation.
d3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1,
                                D3DTA_TEXTURE | D3DTA_ALPHAREPLICATE);

Hedef alfa karıştırmayı desteklemeyen görüntü bağdaştırıcıları genellikle birden çok doku karıştırmayı desteklemediğinden, bu örnek ışık haritasını tüm 3B hızlandırıcı kartlarında kullanılabilen ilk doku olarak ayarlar. Örnek kod, doku verilerini ilkelin mevcut rengiyle karıştırmak için dokuyu karıştırma aşamasının renk işlemini ayarlar. Ardından giriş verileri olarak ilk dokuyu ve ilkelin mevcut rengini seçer.

Dokular ile Açık Eşleme