Udostępnij przez


Łączenie tekstur multipass (Direct3D 9)

Aplikacje Direct3D mogą osiągnąć wiele efektów specjalnych, stosując różne tekstury do pierwotnego w trakcie wielu przebiegów renderowania. Typowym terminem jest mieszanie tekstur wielopassowych. Typowym zastosowaniem do łączenia tekstur wieloprzepustowych jest emulowanie efektów złożonych modeli oświetlenia i cieniowania przez zastosowanie wielu kolorów z kilku różnych tekstur. Jedna z takich aplikacji jest nazywana mapowaniem światła. Aby uzyskać więcej informacji, zobacz Light Mapping with Textures (Direct3D 9).

Nuta

Niektóre urządzenia mogą stosować wiele tekstur do elementów pierwotnych w jednym przebiegu. Aby uzyskać szczegółowe informacje, zobacz Tekstury Blending (Direct3D 9).

 

Jeśli sprzęt użytkownika nie obsługuje mieszania wielu tekstur, aplikacja może używać łączenia tekstur wieloprzepustowych w celu osiągnięcia tych samych efektów wizualnych. Jednak aplikacja nie może utrzymać szybkości klatek, które są możliwe w przypadku korzystania z wielu mieszanek tekstur.

Aby wykonać mieszanie tekstur wielopassowych w aplikacji C/C++.

  1. Ustaw teksturę na etapie tekstury 0, wywołując metodę IDirect3DDevice9::SetTexture.
  2. Wybierz żądany kolor i argumenty łączenia alfa z IDirect3DDevice9::SetTextureStageState metody. Ustawienia domyślne są odpowiednie do łączenia tekstur wieloprzepustowych.
  3. Renderuj odpowiednie obiekty w scenie.
  4. Ustaw kolejną teksturę na etapie tekstury 0.
  5. Ustaw stany renderowania D3DRS_SRCBLEND i D3DRS_DESTBLEND, aby odpowiednio dostosować czynniki mieszane źródła i miejsca docelowego. System łączy nowe tekstury z istniejącymi pikselami na powierzchni docelowej renderowania zgodnie z tymi parametrami.
  6. Powtórz kroki 3, 4 i 5 z dowolną liczbą tekstur.

tekstury