2011-02-16 9 views
10

Poszukuję wskazówek na temat wdrażania prostych efektów powierzchniowych w OpenGL ES 2.0. Nic tak fantazyjnego jak odbicie czy załamanie, tylko podstawowy efekt fali/fali, który moduluje się w czasie. Wydajność ma kluczowe znaczenie. Zakładam, że najlepiej zrobi to w cieniu.GLSL dla prostych efektów powierzchni wody

Jakieś wskazówki, jak najlepiej sobie z tym poradzić?

Odpowiedz

10

Istnieje stara sztuczka do symulowania fal wody & zmarszczki przy użyciu minimalnego wysiłku pod względem równań. Jest używany w wielu miejscach i nie mogę znaleźć oryginału, ale możesz go pobrać, na przykład z here.

Będziesz potrzebował 2 tekstur, z których każda zawiera tylko wysokość. Symulacja odbywa się za pomocą ping-ponga pomiędzy nimi (używając jednego jako źródła i drugiego jako miejsca docelowego za każdym razem).

Podczas renderowania może być konieczne uzyskanie normalnej powierzchni od wysokości sąsiada.

10

Adrian Boeing's blog ma przykład kodu GL, wraz z jasnymi objaśnieniami, dla wielu efektów, w tym marszczenia.