Estoy trabajando en una versión parcial de juego relativamente pequeña (vista superior) del juego, utilizando OpenGL para mis gráficos. Se trata de un ángulo basado en el sigilo básico, y como tal con todos mis enemigos estoy dibujando un arco de visión para que el jugador sepa dónde están mirando.OpenGL- Método simple de clipping/oclusión 2D?
Uno de mis problemas hasta ahora es que cuando dibujo este arco la vista (como un polígono relleno) se muestra de forma natural a través de las paredes de la pantalla ya que no hay nada que impida que:
I' Tengo curiosidad por saber cómo puedo prevenir algo como esto. Ya tengo un código en su lugar que me permitirá detectar intersecciones de línea con muros y demás (para la detección de la vista del enemigo), y teóricamente podría usar esto para detectar un caso así y dibujar el polígono en consecuencia, pero esto probablemente sería bastante complicado y/o ineficiente, entonces me pregunto si hay algún sistema OpenGL integrado que pueda hacer esto para mí, probablemente lo haría mucho mejor.
He intentado buscar preguntas sobre temas como saturación/oclusión, pero ni siquiera estoy seguro de si esto es exactamente lo que debería estar buscando; mis habilidades OpenGL son limitadas. Parece que cualquier cosa que use, digamos, glClipPlanes o glScissor no sería adecuada para esto debido a la gran cantidad de muros individuales y demás.
Por último, esto es solo una demostración que estoy haciendo en mi tiempo libre, por lo que los gráficos no son exactamente mi principal preocupación. Si hay una manera (razonablemente) indolora de hacer esto, entonces espero que alguien pueda señalarme en la dirección correcta; si no hay una manera simple, entonces puedo dejar el problema por ahora o encontrar otras soluciones.
Estoy buscando algo similar, para manejar las sombras en un juego de fichas de arriba hacia abajo. Mis sospechas hasta ahora han estado en la línea del raycasting (lenta pero perfecta) y la creación de una máscara de los oclusores y algún tipo de mecánica de esquemas de sombras. – ssube
¿Ha considerado usar solo iluminación OpenGL? Puede significar un poco de trabajo, pero una luz colocada adecuadamente podría dar el efecto deseado. – Keith
@Keith: Gracias, podría ser una buena idea. Mi experiencia con la iluminación también es limitada, y probablemente necesitaría hacer una serie de ajustes en mi código de dibujo para que todo funcione. Pero lo tendré en cuenta si no sale nada mejor. – Linkage