Mamy opracować scenę przewijania/powiększania w OpenGL ES na Androida, bardzo podobną do poziomu w Angry Birds, ale bardziej przypominającą poziom w World Of Goo. Bardziej jak ten drugi, ponieważ świat nie będzie składał się z powtarzających się warstw, jak w Angry Birds, ale o dużym obrazie. Ponieważ scena musi przewijać/powiększać i dlatego wiele z nich nie będzie widocznych, zastanawiałem się nad najbardziej efektywnym sposobem implementacji renderowania, skupiając się wyłącznie na środowisku (tj. Nie na obiektach na świecie, ale na warstwach tła).Przewijanie/powiększanie sceny w OpenGL i poddziale
Będziemy używać rzutowania ortograficznego.
Pierwszą rzeczą, która przychodzi do głowy, jest utworzenie dużego 4 prostokątnego prostokąta w rozmiarze światowym, który ma przypisaną do niego teksturę tła i tłumaczenie/skalowanie za pomocą glTranslatef/glScalef. Zastanawiałem się jednak, czy niewidoczny obszar poza granicami ekranów nadal jest renderowany przez OpenGL, ponieważ nie jest on wybierany (utracisz widoczny obszar, a są tylko 4 wierzchołki). Czy zatem bardziej efektywne byłoby dzielenie tego prostokąta, aby można było usunąć niewidoczne mniejsze prostokąty?
Inną opcją byłoby utworzenie 4 prostokątnego prostokąta, który wypełniłby ekran, a następnie przesunięcie tła poprzez dostosowanie jego współrzędnych tekstury. Sądzę jednak, że napotkalibyśmy problemy podczas budowania większych światów, biorąc pod uwagę limit rozmiaru tekstury. Wydaje się, że jest to fajna implementacja dla powtarzających się środowisk, takich jak AngryBirds.
Może jest inny sposób ..?
Jeśli ktoś ma pomysł na temat tego, jak można to zrobić w Angry Birds/World of Goo, prosimy o podzielenie się z nimi, co chciałbym usłyszeć. Wydaje się, że zaimplementowali system, który pozwala na płynne przesuwanie i powiększanie świata (WorldOfGoo = VERY).
Właściwie uważam, że celem uboju jest wysłanie mniejszej liczby wierzchołków do potoku grafiki. Jeśli podzielisz zbyt dużo prostokąta, będziesz wysyłać więcej wierzchołków. Ogólnie rzecz biorąc, procesor graficzny powinien dobrze znać klipy - to część przetwarzania. – Jake