Анимация листвы деревьев, травы
Автор: cppboris
Можно очень просто и практически без потери скорости добавить простую, но неплохо оживляющую картинку, анимацию листвы деревьев и т.п. Нужно просто периодически смещать текстурные координаты вдоль какой либо оси (в зависимости от наложения текстуры). Например по 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!
26 марта 2006