singlepost

Живая картинка (анимация) ОпенЖЛ << На главную или назад  

Доброго времени суток . Не раз ( а два ) я обращался к вам за советом , мудрые кодеры , и не раз ( а два ) вы наставляли меня на путь истинный … за что , собственно , очень признателен . Нынче гложет вопрос меня один касательно живых картинок . В 2Д игре (С++ , ОпенЖЛ) производится анимация объектов ( как ни странно ) но не оптимально ( через ж ) . Задача заключается в оптимизации данного процесса . Каждый кадр хранится в отдельном файле tga и подгружается в момент инициализации приложения . Хотелось бы узнать о подходе с "диафильмами" текстур , но поисковик не ответил на мой вопрос и забросал в ответ ссылками на порносайты …
Поделитесь опытом , ссылками , мудростью хранителей дескрипторов и указателей .

Заранее спасибо !

4 ответов в теме “Живая картинка (анимация) ОпенЖЛ”

  1. 3
    Роман Волошин ответил:

    Большое спасибо , я так и поступлю .

  2. 2
    Андрей Мельников ответил:

    Алексей правильно сказал – просто сдвигаете текстурные координаты (предположим, высота текстуры = высоте кадра, ширина текстуры = ширине кадра * кол-во кадров).
    Наложение текстуры необходимым образом я бы сделал примерно так:
    glTexCoord2d(width*i,1); glVertex2d(-1,1);
    glTexCoord2d(width*(i+1),1); glVertex2d(1,1);
    glTexCoord2d((width*(i+1),0); glVertex2d(1,-1);
    glTexCoord2d(width*i,0); glVertex2d(-1,-1);
    width = 1.0/кол-во_кадров
    i – порядковый номер кадра (0…кол-во_кадров-1)

  3. 1
    Алексей Крикунов ответил:

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

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.