Pracowałem nad przeniesieniem stosunkowo dużego źródła opengl ES 1.1 do ES 2.0.
W OpenGL ES 2.0 (co oznacza, że wszystko korzysta z shaderów) chcę narysować czajnik trzy razy.
Pierwszy, o jednolitym kolorze (ala stary glColor4f).
Drugi, z kolorem na wierzchołek (czajniczek ma również tablicę kolorów wierzchołków)
Trzeci z teksturą na wierzchołek
I może czwarty z teksturami i kolorami dla wierzchołków. A potem może piąty, z normalnymi również ...
O ile wiem, mam dwie możliwości wdrożenia. Pierwszym z nich jest stworzenie modułu cieniującego, który obsługuje wszystkie powyższe elementy, z jednolitym ustawionym w celu zmiany zachowania (np. Użyj jednolitego jednolitego koloru lub jednolitego koloru na wierzchołek).
Drugim wyborem jest utworzenie innego modułu cieniującego dla każdej sytuacji. W przypadku niektórych niestandardowych procesów wstępnego przetwarzania modułu cieniującego nie jest to takie skomplikowane, ale problemem jest koszt wydajności przełączania modułów cieniujących między obiektami rysującymi. Czytałem, że to nie jest trywialnie małe.
To znaczy, najlepszym sposobem na zrobienie tego jest zbudowanie obu i zmierzenie, ale dobrze byłoby usłyszeć wszelkie dane wejściowe.