В предыдущем уроке мы рисовали гладкую поверхности в виде бегущей волны. В этом уроке мы попробуем превратить нашу поверхность в настоящую воду. Луч света проходящий, через границу двух сред, немного изменяет свое направление. Этот эффект называют преломлением света. Пусть на глубине y=ybottom расположено дно, покрытое текстурой. Над поверхностью воды находится глаз наблюдателя, т.е. камера. Нужно выяснить, какую точку текстуры дна увидит наблюдатель. Для этого изменим направление хода луча света на обратное. Луч света будет выходить из глаза наблюдателя, преломляться на поверхности воды и попадать на дно. Точка пересечения преломленного луча и дна и будет видна наблюдателю.
Ссылки
- Мои разработки. Живые обои "Colorful Wave"
- Мои разработки. Живые обои "Волны на поверхности"
- OpenGL ES в Android, класс GLSurfaceView
- OpenGL ES 1. Основы рисования для начинающих
- OpenGL ES 1. Применение индексов при обходе вершин
- OpenGL ES 1. Освещение и материалы
- OpenGL ES 1. Двумерные текстуры
- OpenGL ES 1. Текстурирование на примере
- OpenGL ES 1. Как сделать текстуры прозрачными
- OpenGL ES 1. Как наложить несколько текстур на один полигон
- OpenGL ES 1. Текстуры в движении
- OpenGL ES 1. Зеркальное отражение при помощи кубических текстур
- OpenGL ES 2.0. Урок первый-Шейдеры
- OpenGL ES 2.0. Урок второй-Освещение в шейдере
- OpenGL ES 2.0. Урок третий-Двумерные текстуры
- OpenGL ES 2.0.Урок 4.Гладкие поверхности.
- OpenGL ES 2.0. Урок 5. Шейдер преломления света