Autor Wątek: [Android] Shadery, osobne wątki, gdzie i jak tworzyć i zwalniać zasoby?  (Przeczytany 3551 razy)

Offline PsichiX (ΨΧΞ)

  • Użytkownik
    • PsichiX Website

# Październik 24, 2012, 11:08:30
nie zabardzo wiem jak to zaimplementować. kiedyś chciałem się za to zabrać na PCtowej wersji silnika, lecz skończyło się fiaskiem - brak dobrej referencji, która pomogłaby mi to ogarnąć.
Albo jestem za głupi na to (ale wątpię..)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

  • +1
# Październik 24, 2012, 11:49:53
Cytuj
przy okazji chciałbym spytać, czy używanie shaderów do postprocessingu (z użyciem FBO) na androidowych telefonach jest czymś normalnym i nie powoduje drastycznego spadku wydajności, czy jednak nie zaleca się tego używać póki co?
Postprocessing jest dość kosztowny, ale drobny postprocess możesz sobie pozwolić. Trzeba tylko pamiętać, żeby wszelkie możliwe texcoordy generować w vertex shaderze i pchać do PS przez współrzędne XY - czyli jak robisz blur na 8 sampli to liczysz texcoordy w VS i wrzucasz na 8 varyingów typu vec2. Wtedy GPU jest w stanie prefetchować tekstury jeszcze przed odpaleniem PS.

Jeśli spritebatch, to dlaczego nie instancing?
Jeżeli już odpowiadasz w danym wątku to proponuję przeczytać chociaż pierwsze słowo tytułu. ;)

Offline Kos

  • Użytkownik
    • kos.gd

# Październik 24, 2012, 12:25:04
To nie ma instancingu w ES 2? Nojaaa ._.

Offline PsichiX (ΨΧΞ)

  • Użytkownik
    • PsichiX Website

# Październik 24, 2012, 12:43:52
co do postprocessu to raczej jakieś efekty imitujące światło byłyby do zrobienia, czyli sama proceduralna manipulacja koloru, nawet możliwie bez użycia tekstury. Aczkolwiek metodę na blura, którą opisałeś, stosuję już od dawna w PCtowej wersji, tak więc z nim nie miałbym problemów :)

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Październik 24, 2012, 13:03:01
Cytuj
To nie ma instancingu w ES 2? Nojaaa ._.
Nie zaobserwowałem. :) OpenGL ES 2.0 jest mniej więcej na poziomie Shader Model 2.0.

Zawsze możesz, jak to w OpenGL'ach bywa, użyć pseudoinstancingu, ale instancowanie quadów w ten sposób akurat mija się z celem.