Войти
ПрограммированиеПодсказкиГрафика

Анимация листвы деревьев, травы

Автор:

Можно очень просто и практически без потери скорости добавить простую, но неплохо оживляющую картинку, анимацию листвы деревьев и т.п. Нужно просто периодически смещать текстурные координаты вдоль какой либо оси (в зависимости от наложения текстуры). Например по Y:

...
static float ytrans = 0.0f;
const float anim_speed = 0.005f;    //скорость анимации
ytrans = ytrans < 3.14f*2 ? (ytrans + anim_speed) : 0.0f;
glMatrixMode(GL_TEXTURE);
glPushMatrix();
glTranslated(0, (float)sin(ytrans), 0);
glMatrixMode(GL_MODELVIEW);
...
Отрисовываем что надо
...
glMatrixMode(GL_TEXTURE);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
...

И... получаем беслатное оживление картинки ;) Такой эффект применяется в некоторых современных играх, например Unreal Tournament 2004. Также не плохо было бы добавить зависимость анимации от таймера, а не fps. Чтобы скорость анимации была одинакова на разных машинах. Good Luck!

#OpenGL, #анимация, #трава

26 марта 2006