Red de conocimiento informático - Problemas con los teléfonos móviles - La selección de qt OpenGL tendrá una diferencia de desplazamiento

La selección de qt OpenGL tendrá una diferencia de desplazamiento

El programa usa printf como salida, pero no se puede imprimir directamente en la ventana de salida de la aplicación Qt. Debe imprimirse una vez finalizado el proceso. Puede usar qDebug para reemplazar printf. Durante la prueba, encontré una situación en la que se seleccionaban todos los objetos sin importar dónde hiciera clic en la pantalla. Después de buscar información y comparar las pruebas, se me recordó que debía prestar atención a las ubicaciones de llamada de gluLookAt y gluPerspective. 1. Hay tres modos de renderizado en Opengl: (1) modo de renderizado, el modo predeterminado (2) modo de selección, (3) modo de retroalimentación; De la siguiente manera

El modo GLint glRenderMode(modo GLenum)

puede seleccionar uno de los siguientes tres modos: modo de dibujo (GL_RENDER), modo de selección (GL_SELECT), modo de retroalimentación (GL_FEEDBACK).

El valor de retorno de la función puede determinar el número de aciertos en modo de selección o el número de primitivas en modo de retroalimentación.

2. Al realizar programación de gráficos con OpenGL, generalmente necesita usar el mouse para operaciones interactivas, como usar el mouse para seleccionar objetos en la pantalla, lo que llamamos selección.

Picking en OpenGL es una aplicación de la canalización de gráficos OpenGL. Por lo tanto, la selección en OpenGL no utiliza pruebas de intersección de rayos para determinar si un objetivo se selecciona como D3D, sino que se implementa utilizando la matriz de selección en la etapa de transformación de proyección (Transformación de proyección) de la canalización de gráficos.