(Mac OS X, Какао, C / C ++, OpenGL, немного математически.)
Project - это игра в покер в реальном времени (30 кадров в секунду) с 2D-видом. Представление OpenGL настроено для ортогональной проекции с использованием glOrtho; камера всегда смотрит прямо на карты / стол. На сегодняшний день это, по сути, механизм компоновки 2D-изображений.
Мои игральные карты представляют собой предварительно созданные текстуры (с альфа-каналом), которые отображаются следующим образом:
glBegin(GL_TRIANGLE_STRIP);
glTexCoord2f(0.0, 0.0);
glVertex3d(startDraw_X, startDraw_Y, 0.0);
glTexCoord2f(1.0, 0.0);
glVertex3d(endDraw_X, startDraw_Y, 0.0);
glTexCoord2f(0.0, 1.0);
glVertex3d(startDraw_X, endDraw_Y, 0.0);
glTexCoord2f(1.0, 1.0);
glVertex3d (endDraw_X, endDraw_Y, 0.0);
glEnd();
Это хорошо работает и обеспечивает отображение пикселей 1: 1 для высокого качества изображения.
ВОПРОС: как я могу (дешево, быстро) «перевернуть» или исказить мою карту с помощью OpenGL? Поворотная часть не сложная, но у меня проблемы с перспективой.
В частности, я имею в виду горизонтальное переключение UIViews в приложениях для iPhone (например, музыка). UIView будет переворачиваться на , сжимаясь по горизонтали, с видом перспективы («задние» координаты вида будут сжиматься по вертикали.)
Спасибо за любую помощь или советы.