Pregunta

Mi equipo actualmente está limitado a dibujar imágenes en una plataforma opengl 1.4, lo que significa que no podemos usar ningún mapa de texturas ingenioso para dibujar una imagen (sí, estamos limitados a usar la plataforma de gráficos integrados Intel, es muy molesto). Hasta ahora, podemos dibujar, escalar y voltear una imagen, pero el tipo que hace los gráficos afirma que la rotación a través de glRotate no se puede hacer usando glDrawPixels, que tendríamos que ir a las texturas, etc. que no funcionan en la plataforma Intel.

Le apuesto el almuerzo a que hay una función de rotación, como glRotate, que funcionará para mapas de bits directos. ¿Existe tal función? ¿Funcionaría glRotate? Soy un poco novato en este tema de los gráficos, pero parece ridículo que la biblioteca no permita la rotación de mapas de bits, excepto a través de la rotación de texturas.

Gracias.

¿Fue útil?

Solución

No puedes usar glRotate con glDrawPixels.

glDrawPixels es la forma peor y menos eficiente de obtener píxeles en la pantalla con diferencia. Incluso obtendrá un mejor rendimiento al colocar los píxeles en la pantalla utilizando un rasterizador de software mal escrito.

En resumen, glDRawPixels copiará datos de píxeles de la memoria de proceso a la memoria gráfica y hará algunas transformaciones muy triviales, como voltear y escalar. Todo lo más avanzado (como la rotación) requiere que uses las características del conjunto de chips de gráficos. P.ej. Tienes que usar texturas.

Y las texturas funcionan. También funcionan bien con GL 1.4 y los chipsets gráficos Intel. He trabajado en un chipset de este tipo durante bastante tiempo. No obtendrá el rendimiento de los modernos conjuntos de chips ATI o NVIDIA, pero tampoco son eso malo.

Mi mejor apuesta es que alguien intentó crear texturas de un tamaño que no tiene potencia de dos, no lo hizo y decidió que las texturas en general no funcionan en el chipset.

Eso no es cierto. Ellos trabajan Solo debes saber que OpenGL requiere que crees texturas con el poder de dos dimensiones y que debes usar un rectángulo rectangular de la textura más grande o colocar varias imágenes en una textura muy grande (la última se llama atlas de textura).

Puedes compensar la imagen más pequeña dentro de una textura más grande ajustando las coordenadas de la textura.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top