Pergunta

Eu tenho uma rede de polilinhas, e eu gostaria de exibir todas as partes das linhas que estão dentro de uma determinada caixa de X-Y. Atualmente estou tornando as linhas em OpenGL usando uma GL_LINE_STRIP e funciona bem. No entanto, se o limite das cruzes caixa X-Y através de uma das linhas (entre vértices), existe uma boa maneira para apenas mostrar a parte da linha que está dentro da caixa?

graças,

Jeff

Foi útil?

Solução

Se o seu caixa é apenas um retângulo comum bidimensional, eixo alined você pode usar a função glScissor. Em poucas palavras ele define um retângulo 2D na tela coordenadas onde todo o desenho tem lugar.

Se você caso é mais complicado (por exemplo, você pode ter um retângulo em um avião dentro de uma cena 3D ou assim ..) você pode primeiro desenhar o seu retângulo para o buffer de estêncil e permitir estêncil-teste para a linha-renderização. Essa abordagem dá-lhe uma flexibilidade ilimitada sobre a forma que restringe o desenho, mas pode ser um pouco mais lento durante a renderização e leva mais esforço para a instalação.

Outras dicas

Eu acho que Nils Pipenbrinck deu-lhe as duas melhores opções, mas vou jogar fora outra apenas para completude:. Clipe de aviões ( glClipPlane () )

Dito isso, eu acho que glScissor () é a solução mais fácil se ele vai ser sempre janela alinhados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top