Доброго времени суток . Не раз ( а два ) я обращался к вам за советом , мудрые кодеры , и не раз ( а два ) вы наставляли меня на путь истинный … за что , собственно , очень признателен . Нынче гложет вопрос меня один касательно живых картинок . В 2Д игре (С++ , ОпенЖЛ) производится анимация объектов ( как ни странно ) но не оптимально ( через ж ) . Задача заключается в оптимизации данного процесса . Каждый кадр хранится в отдельном файле tga и подгружается в момент инициализации приложения . Хотелось бы узнать о подходе с "диафильмами" текстур , но поисковик не ответил на мой вопрос и забросал в ответ ссылками на порносайты …
Поделитесь опытом , ссылками , мудростью хранителей дескрипторов и указателей .
Заранее спасибо !
24 сентября 2009 в 4:00
Большое спасибо , я так и поступлю .
23 сентября 2009 в 19:03
Алексей правильно сказал – просто сдвигаете текстурные координаты (предположим, высота текстуры = высоте кадра, ширина текстуры = ширине кадра * кол-во кадров).
Наложение текстуры необходимым образом я бы сделал примерно так:
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)
23 сентября 2009 в 19:00
Вроде как есть картика, на котрой в виде "диафильма" есть несколько последовательных изображний. Загружается весь фаил, но выводится только один "кадр" (область всей картики, содержащая нужное изображение), потом происходит смещение и выводится другой кадр. Если не ошибаюсь, что-то вроде этого)).