O que é a escolha do OpenGL®?
O OpenGL® Picking in Computer Programming é o processo de determinar qual objeto dentro de uma cena tridimensional (3D) está localizada em um determinado ponto na tela quando a cena é renderizada. Ele também pode se referir à localização de vários objetos em um ponto ou dentro de uma caixa. Na maioria das vezes, a colheita do OpenGL® é usada para determinar qual objeto 3D na tela um usuário está tentando selecionar com um cursor de mouse. Embora essa operação possa parecer simples, existem várias sutilezas em como o OpenGL® torna uma cena que pode torná -la bastante complexa. Além disso, existem falhas intrínsecas em determinadas placas gráficas e drivers que podem fazer com que a função de coleta do OpenGL® falhe e retorne os resultados falsos. A cena é realmente armazenada na memória como uma coleção de formas primitivas ou polígonos, que são apenas coleções de pontos 3D no espaço docena. O computador usa coordenadas mundiais, que às vezes são chamadas de coordenadas absolutas, para executar a maioria das funções básicas que manipulam objetos na cena. Na maioria dos aplicativos, o usuário pode manobrar a visão da cena a diferentes ângulos, para que os objetos possam ser vistos em diferentes perspectivas. A localização virtual do usuário dentro da cena é chamada de ângulo da câmera ou posição da câmera.
A complexidade da coleta do OpenGL® vem da determinação da localização do mouse na tela bidimensional (2D) de uma posição e ângulo possivelmente arbitrários na cena, a posição da câmera. Além disso, como a renderização da perspectiva do espectador humano é realmente 2D, não há como o usuário fornecer a profundidade do mouse clique dentro da cena. A função de coleta do OpenGL® resolve esse problema complexo de duas maneiras.
O primeiro é que, em vez de perFormando uma série de cálculos separados para traduzir onde o espectador é abstrivelmente e, em seguida, encontre um objeto na janela de renderização, a função realmente torna a cena como faz quando está funcionando normalmente, com a exceção que a renderização usada para a seleção não é exibida, ela é usada apenas para calcular as posições corretas dos objetos. A diferença é que, em vez de renderizar toda a área que seria visível para o usuário, ela apenas renderiza a área onde o mouse está localizado. Isso significa que quaisquer objetos renderizados estão tecnicamente no ponto em que o ponteiro do mouse está localizado.
O segundo problema, ou seja, não ter como indicar a profundidade de uma área selecionado, é resolvido retornando todos os objetos que estão sob as coordenadas do mouse na cena. A função OpenGL® de coleta retorna todos os objetos em uma matriz, juntamente com a que distância estão da localização do espectador. Isso permite que um programa encontre rapidamente o objeto mais próximo, se desejar.
Uma maneira de visualizar oA coleta do PENG® é imaginar uma linha, às vezes chamada de raio na programação 3D, passando da localização do ponteiro do mouse para a cena e para longe da localização do espectador. Cada objeto que esse raio toca é adicionado a uma variedade de objetos, juntamente com a que distância está do espectador. Esta é uma explicação muito simples de como uma forma de colheita OpenGL® funciona.
Outro método de escolha de objetos no OpenGL® envolve localizar um objeto por cor e pode ser consideravelmente mais rápido. Este método renderiza a cena, mas, em vez de aplicar iluminação e textura aos objetos, eles são renderizados com uma cor simples e simples. Cada objeto ou grupo de objetos tem sua própria cor distinta. A cena é renderizada apenas na memória e não é exibida, portanto, isso não afeta o que o usuário vê. Em vez de procurar colisões em 3D entre objetos, a cor na posição do cursor do mouse é retornada, e essa cor se correlaciona com um objeto específico.