Вопрос

Моя команда в настоящее время ограничена рисованием изображений на платформе opengl 1.4, что означает, что мы не можем использовать какое-либо изящное отображение текстур для рисования изображения (да, мы ограничены использованием интегрированной графической платформы Intel, это очень раздражает).Пока что мы можем рисовать, масштабировать и переворачивать изображение, но парень, занимающийся графикой, утверждает, что вращение с помощью glRotate невозможно при использовании glDrawPixels, что нам придется переходить к текстурам и так Далее, которые не работают на платформе Intel.

Я поспорил с ним за обедом, что есть функция поворота, такая как glRotate, которая будет работать для прямых растровых изображений.Существует ли такая функция?Сработает ли glRotate?Я немного новичок в этом графическом деле, но кажется нелепым, что библиотека не допускает поворота растровых изображений, кроме как с помощью поворота текстуры.

Спасибо.

Это было полезно?

Решение

Вы не можете использовать glRotate с glDrawPixels.

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

Короче говоря, glDrawPixels скопирует пиксельные данные из памяти процесса в графическую память и выполнит некоторые очень тривиальные преобразования, такие как переворачивание и масштабирование.Все более продвинутое (например, вращение) требует, чтобы вы действительно использовали функции графического набора микросхем.Например.Вы должны использовать текстуры.

И текстуры действительно работают.Они также хорошо работают с GL 1.4 и графическими чипсетами Intel.Я сам довольно долго работал над таким чипсетом.Вы не получите производительности современных чипсетов ATI или NVIDIA, но они и не это тоже плохо.

Моя лучшая ставка заключается в том, что кто-то пытался создать текстуры размера non power of two, не смог этого сделать и решил, что текстуры в целом не работают на чипсете.

Это неправда.Они действительно работают.Вам просто нужно знать, что OpenGL требует, чтобы вы создавали текстуры в двух измерениях и что вам нужно либо использовать подпрямоугольник большей текстуры, либо поместить несколько изображений в одну очень большую текстуру (последняя называется текстурный атлас).

Вы можете компенсировать меньшее изображение внутри более крупной текстуры, изменив координаты текстуры.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top