Udostępnij za pośrednictwem


Porady: eksportowanie tekstury do użycia z Direct2D lub aplikacjami JavaScript

Potok zawartości obrazu może generować tekstury, które są zgodne z konwencjami renderowania wewnętrznego w Direct2D.Tekstury tego rodzaju są odpowiednie do użycia w aplikacjach, które używają Direct2D, oraz w aplikacjach ze Sklepu Windows utworzonych przy użyciu języka JavaScript.

Niniejszy dokument przedstawia te działania:

  • Konfigurowanie obrazu źródłowego, który ma być przetwarzany przez potok zawartości obrazu.

  • Konfigurowanie potoku zawartości obrazu do generowania tekstury, która może być używana w aplikacji Direct2D lub JavaScript.

    • Generowanie pliku .dds ze skompresowanym blokiem.

    • Generowanie wstępnie przemnożonego kanału alfa.

    • Wyłącz generowanie mipmappingu.

Konwencje renderowania w Direct2D

Tekstury, które są używane w kontekście Direct2D muszą spełniać poniższe wewnętrzne konwencje renderowania Direct2D:

  • Direct2D implementuje przezroczystość przy użyciu wstępnie przemnożonego alfa.Tekstury używane z Direct2D muszą zawierać wstępnie przemnożony kanał alfa, nawet jeśli tekstura nie używa przezroczystości ani przejrzystości.Aby uzyskać więcej informacji dotyczących wstępnie przemnożonego kanału alfa, zobacz Porady: eksportowanie tekstury wykorzystującej wstępnie przemnożony kanał alfa.

  • Tekstury muszą być dostarczane w formacie .dds, przy użyciu jednego z tych formatów kompresji blokowej:

    • Kompresja BC1_UNORM

    • Kompresja BC2_UNORM

    • Kompresja BC3_UNORM

  • Mipmapy nie są obsługiwane.

Aby utworzyć teksturę, która jest zgodna z konwencjami renderowania Direct2D

  1. Zaczyna się od podstawowej tekstury.Załaduj istniejący obraz lub utwórz nowy w sposób opisany w temacie Porady: tworzenie tekstury podstawowej.Do obsługi kompresji bloku w formacie .dds, należy określić teksturę, która ma szerokość i wysokość będące wielokrotnościami czterech, na przykład 100 x 100, 128 x 128 lub 256 x 192.Mipmapping nie jest obsługiwany, dlatego tekstura nie musi mieć kształtu kwadratu i nie musi być potęgą liczby 2.

  2. Skonfigurować pliku tekstury, dzięki czemu jest przetwarzany przez potok zawartości obrazu.W oknie Eksplorator rozwiązań otwórz menu skrótów dla utworzonego właśnie pliku tekstury, a następnie wybierz polecenie Właściwości.Na stronie Właściwości konfiguracji > Ogólne ustaw właściwość Typ elementu na Potok zawartości obrazu.Upewnij się, że właściwość Zawartość jest ustawiona na Tak, a właściwość Wyłącz z kompilacji jest równa Nie, a następnie wybierz przycisk Zastosuj.Pojawia się strona właściwości konfiguracji Potok zawartości obrazu.

  3. Ustaw format wyjściowy na jeden z formatów skompresowanego bloku.Na stronie Właściwości konfiguracji > Potok zawartości obrazu > Ogólne ustaw właściwość Kompresja na Kompresja BC3_UNORM (/compress:BC3_UNORM).Możesz wybrać dowolny z formantów BC1, BC2 lub BC3, w zależności od wymagań.Direct2D nie obsługuje obecnie tekstur BC4, BC5, BC6 lub BC7.Aby uzyskać więcej informacji o różnych formatach kompresji blokowej, zobacz Kompresja blokowa (Direct3D 10).

    [!UWAGA]

    Format kompresji, który określono, określa format pliku, który jest wytwarzany przez potok zawartości obrazu.Różni się od właściwości Format obrazu źródłowego w Edytorze obrazu, który określa format pliku obrazu źródłowego w wersji przechowywanej na dysku — to znaczy, w formacie roboczym.Zazwyczaj użytkownik nie chce, aby format roboczy był skompresowany.

  4. Konfigurowanie potoku zawartości obrazu tak, aby uzyskać wyniki korzystające z wstępnie przemnożonego kanału alfa.Na stronie Właściwości konfiguracji > Potok zawartości obrazu > Ogólne ustaw właściwość Konwertuj na format wstępnie przemnożonego kanału alfa na Tak (/generatepremultipliedalpha).

  5. Konfigurowanie potoku zawartości obrazu tak, aby nie generować mipmap.Na stronie Właściwości konfiguracji > Potok zawartości obrazu > Ogólne ustaw właściwość Generuj mipy na Nie.

  6. Wybierz przycisk OK.

Podczas budowania projektu Potok zawartości obrazów konwertuje obraz źródłowy z formatu roboczego do formatu wyjściowego, który określiłeś, konwersja obejmuje generowanie wstępnie przemnożonego kanału alfa, włącznie z poziomami MIP, a wynik jest kopiowany do katalogu wyjściowego projektu.