2014-02-21 3 views
1

Я занимаюсь шейдерами, и я хочу сделать очень простую тупую тень. Точно так же, как фотошоп делает на слое. Мне нужно сделать это в GLSL.Простая тень на языке шейдера openGL

У меня есть это, собирая биты и куски кода из Интернета. Но это довольно плохо.

Кроме того, мне нужно, чтобы он работал по телефону, поэтому он должен быть довольно эффективным. Итак, да, это не удается, и оба они эффективны и выглядят как тень.

https://www.shadertoy.com/view/4s2GDG

ответ

0

Если вы собираетесь запустить это приложение на телефоне вы не должны сделать шейдер похож на показанный один - это слишком сложно для мобильного устройства. Он имеет петли, которые являются излишним для не очень мощных мобильных графических процессоров.

Я бы рекомендовал вам сделать несколько проходов рендеринга - один для объекта и один вместо тени. Да, это вызовет overdraw, но если все сделано правильно, он будет работать лучше, чем такой сложный шейдер. Даже рендеринг пинг-понга между двумя объектами рендеринга - не очень сложная задача для современного графического процессора, если сделать это с помощью простых шейдеров по сравнению с шейдерами с петлями - эти очень медленные. Мы реализовали простое размытие, которое работает довольно гладко даже на Adreno 200. Вы можете прочитать об этом здесь http://androidworks-kea.blogspot.com/2013/10/developers-notes-iii-simple-dof-effect.html и принять это для ваших нужд.

Смежные вопросы