2013-06-17 29 views
6

Czytam o Texture Views w Czerwonej Księdze new. Na stronie 322 mówi:Kiedy używać widoków tekstur

OpenGL pozwala na współdzielenie jednego magazynu danych między wieloma tekstur, każdy z własnym formatem i wymiarach.

(poprzez Texture wyświetleń)

Teraz moje pytania to:

Czy to oznacza jedno źródło tekstura jest określany przez wielu przypadkach (w tym widokiem przypadek tekstury)?

Czym się różni od używania tego samego obiektu teksturowego, na przykład z różnymi próbnikami?

Ponadto, to znaczy, że zmiana tekstury pikseli poprzez widzenia tekstury zmieni piksele w oryginalnej tekstury obiektu? (Przypuszczam, że odpowiedź jest pozytywna, jak doc mówi, że jest alias do sklepu tekstury)

Odpowiedz

6

Tak, udostępnianie magazynu danych oznacza uzyskiwanie dostępu do tego samego magazynu z różnych obiektów. Podobnie jak dzielenie wskaźnika oznacza możliwość uzyskania dostępu do tej samej pamięci z dwóch różnych lokalizacji.

Różni się od używania obiektów samplera, ponieważ nie ma między nimi żadnych podobieństw. Sampler objects zapisz parametry próbkowania. Obiekty tekstur mają parameters that are not for sampling, takie jak the mipmap range, swizzle mask i tym podobne. Nie są to stan próbnika; są w stanie tekstury.

Obiekty tekstur mają również specific texture type. Różne widoki tego samego magazynu mogą mieć different texture types (within limits). Możesz mieć GL_TEXTURE_2D, który jest widokiem pojedynczej warstwy tekstury GL_TEXTURE_2D_ARRAY. Możesz wziąć GL_TEXTURE_2D_ARRAY z 6 lub więcej warstw i utworzyć z niego GL_TEXTURE_CUBE_MAP.

Obiekty próbnika nie mogą tego zrobić.

Obiekty tekstur mają numer internal format, który definiuje, w jaki sposób pamięć ma być interpretowana. Różne widoki tego samego magazynu mogą mieć different formats (within limits) Próbniki nie mają wpływu na format.

Obiekty samplera również nie mogą tego zrobić.

Czy można użyć widoków tekstury, aby uzyskać ten sam efekt, co obiekty samplera? Nie. W przypadku próbników oddziela się parametry próbkowania od obiektów tekstury. Pozwala to na użycie tego samego zestawu parametrów dla wielu różnych obiektów. W związku z tym można zmienić jeden obiekt próbnika i użyć go z wieloma teksturami, bez konieczności przechodzenia do każdej tekstury i modyfikowania jej.

Są to dwie różne funkcje, z dwóch różnych powodów.

+0

Tak, teraz jest to całkiem jasne. Ale gdy raz pytanie nie odpowiedziałeś: jeśli zmiana danych w widoku tekstury zmieni to również w teksturę odniesienia, opartą na twoim zdaniu: "Tak jak dzielenie wskaźnika oznacza możliwość aby uzyskać dostęp do tej samej pamięci z dwóch różnych lokalizacji. " odpowiedź brzmi prawdopodobnie "tak"? –

Powiązane problemy