Pregunta

Tengo problemas para envolver mi cabeza alrededor de cómo funcionan. En primer lugar, en un juego 2d la matriz de proyección debe ser configurado como orto con la izquierda, derecha, arriba, abajo la ventana de juego, ¿verdad? Pero cuando se cambia el tamaño de la ventana, ¿debo cambiar glViewport, no la matriz de proyección? Y ¿Cómo puedo mantener la relación de aspecto?

Podría alguien explicar los efectos de estas dos cosas, en 2d juego ortográfica, de modo que pueda entenderlo mejor?

Se siente como OpenGL está haciendo un montón de cosas inútiles en una configuración 2D. Rasterizar y el cálculo de los fragmentos cuando las imágenes ya están ahí, la conversión de las coordenadas de los vértices de NDC sólo de ser reconvertido a lo que ya por donde glViewport.

Además, como se hace en el legado de OpenGL libre que tenemos que hacer nuestras propias matrices, pero no nuestros propios cálculos que hace glViewport?

Gracias.

¿Fue útil?

Solución

No se debe confundir lo que la entrada a GL y lo que da salida a.

los parámetros que se utilizan para calcular la matriz de Ortho son los que se correlacionan con el entrada . La salida de una matriz de proyección es siempre la [-1: 1] x [-1: 1] x. [-1: 1] cubo

la ventana gráfica se traduce a ese cubo de renderizado coordenadas de destino. Así que eso es por lo general lo que desea cambiar para que coincida con el nuevo tamaño de ventana (bueno, eso y el uso de este dispositivo en sí).

Sí, GL hace un montón de cosas inútiles para un trayecto de renderizado 2D. Es una API 3D después de todo ...

Voy a terminar diciendo que usted no tiene que construir matrices de hacer transformaciones 2D, siempre y cuando su vértice shader salidas en el cubo he mencionado anteriormente. Si desea escribir la esquina superior derecha de la ventana, siempre se puede pasar sus vértices directamente como (0,0) (0,1) (1,0) (1,1) y simplemente salida que.

Otros consejos

No está seguro de qué idioma está usando OpenGL, pero si usted está buscando para C ++ este sitio, http: // nehe.gamedev.net/ prácticamente cubre todo, y tiene tutoriales de tan simples como "Hello World" todo el camino hasta juegos básicos y efectos 3D.

Espero que ayuda

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