2009-12-20 14 views
9

Próbuję dowiedzieć się, jak używać tekstury float w GLES2. Dokumentacja API (http://www.khronos.org/opengles/sdk/docs/man/glTexImage2D.xml) mówi, że można używać tylko niepodpisanych bajtów i skrótów, ale widziałem ludzi, którzy twierdzili, że są one obsługiwane gdzie indziej.Tekstury zmiennoprzecinkowe w OpenGL ES 2.0

Mogę użyć GL_LUMINANCE jako formatu tekstur, ale dostanie mi tylko jedną wartość zmiennoprzecinkową.

Jeśli ktokolwiek ma pewien wgląd, to powinienem to docenić.

Odpowiedz

9

W OpenGL ES 2.0 tekstury zmiennopozycyjne są obsługiwane tylko wtedy, gdy implementacja eksportuje rozszerzenie OES_texture_float. Zauważ, że to rozszerzenie pozwala tylko na najbliższe filtrowanie na poziomie tekstury i brak filtrowania między poziomami tekstury. To ograniczenie jest rozluźnione przez obecność OES_texture_float_linear. Innym potencjalnym zastrzeżeniem jest to, że obecność OES_texture_float nie wymaga, aby obsługa implementacji renderowała tekstury zmiennopozycyjne z obiektami bufora ramki.

Co próbujesz zrobić z teksturami pływającymi?

+0

Przechowuję informacje o niektórych pozycjach. Byłby więc fragment shadera, który wykonuje pewne obliczenia (ruch cząstek) i renderuje do bufora ramki, który jest podawany do innego shadera (renderowania). Chodzi o to, że potrzebuję precyzji pływaka. – notlion

+0

Na mojej implementacji (kodowanie dla iOS) kluczami były "GL_OES_texture_float" i "GL_OES_texture_half_float_linear" –