Compartir a través de


Polígonos teselantes

OpenGL solo puede mostrar directamente polígonos convex simples. Un polígono es sencillo si:

  • Los bordes solo se cruzan en vértices.
  • No hay vértices duplicados.
  • Exactamente dos bordes se encuentran en cualquier vértice.

Para mostrar polígonos simples no convexas o polígonos simples que contengan agujeros, primero debe triangular los polígonos (subdividirlos en polígonos convex). Dicha subdivisión se denomina teselación. GLU proporciona una colección de funciones que realizan teselación. Tenga en cuenta que las funciones de teselación GLU no pueden controlar polígonos nomples; no hay ningún método OpenGL estándar para controlar dichos polígonos.

Dado que la teselación suele ser necesaria y puede ser bastante complicada, en esta sección se describen las funciones de teselación GLU en detalle. Estas funciones toman como polígonos simples de entrada arbitrarios que pueden incluir agujeros y devuelven algunas combinaciones de triángulos, mallas de triángulos y ventiladores de triángulos. Si no desea tratar con mallas o ventiladores, puede especificar que las funciones de teselación devuelvan solo triángulos. Sin embargo, la información de malla y ventilador mejora el rendimiento. La teselación de polígonos funciona triangulando un polígono concavo con uno o varios contornos.

Usar de teselación de polígono

  1. Cree un objeto de teselación con gluNewTess.

  2. Use gluTessCallBack para definir funciones de devolución de llamada que usará para procesar los triángulos generados por el teselador.

  3. CongluBeginPolygon, gluTessVertex, gluNextContoury gluEndPolygon, especifique el polígono con agujeros o el polígono concave que se va a teselar.

    Una vez completada la descripción del polígono, la instalación de teselación invoca las funciones de devolución de llamada según sea necesario.

    Puede destruir objetos de teselación innecesarios con gluDeleteTess.

Para obtener más información sobre cómo guardar los datos de teselación, consulte Using Callback Functions.