Zajmuję się tworzeniem obrazu w systemie iOS z OpenGL ES 2.0.Algorytmy transformacji wierzchołków OpenGL ES 2.0
Mam dobrą znajomość konfiguracji, rurociągu itp. I teraz przechodzę do matematyki.
Ponieważ moje doświadczenie z wypaczaniem obrazu jest zerowe, sięgam po kilka sugestii algorytmu.
Obecnie ustawiam początkowe wierzchołki w punktach w rodzaju siatki, które równo dzielą obraz na kwadraty. Następnie umieszczam dodatkowy wierzchołek na środku każdego z tych kwadratów. Kiedy rysuję indeksów, każdy kwadrat zawiera cztery trójkąty w kształcie X. Patrz zdjęcie poniżej:
Po zagraniu z photoshop trochę zauważyłem Adobe używa nieco bardziej skomplikowany algorytm ich marionetkowa osnowa, ale znacznie bardziej uproszczony algorytm dla ich standardowej osnowy. Co według ciebie jest najlepsze dla mnie do zastosowania tutaj/osobistych preferencji?
Po drugie, kiedy poruszam wierzchołkiem, chciałbym zastosować transformację ważoną do wszystkich innych wierzchołków, aby wygładzić krawędzie (zamiast tego, co mam poniżej, gdzie tylko wybrany wierzchołek jest transformowany). Jaki algorytm powinienem tu zastosować?
im ten sam problem. Czy masz rozwiązanie? Jak mi poszło? Pomóż mi –
przykro mi, ale to była praca dla pracodawcy, więc nie mogę podać kodu. manipuluj strukturami wierzchołków w obrębie metody dotknięć. kiedy manipulujesz wierzchołkami, przypisuj im wagę na podstawie ich odległości od pewnych punktów ustawionych jako "kotwice" i od ścian ekranu. kotwice można umieścić w dowolnym miejscu; na przykład przygwoździłem źrenice, aby nie ruszały się z oczu. jeśli waga wynosi 0, to nie ma to wpływu na wierzchołek. jeśli waga wynosi 1, wówczas stosowana jest pełna transformacja. nowy x = (transformacja pozioma * waga), nowy y = (transformacja pionowa * waga). itp. –
dziękuję ............. –