Recomiendo encarecidamente el uso de texturas, como dijo Dave. Puede ser una molestia, pero creo que proporcionaría un rendimiento mucho mejor.
Podría intentar buscar algoritmos de detección de bordes . Si crea sus mallas utilizando colores de vértice con colores sólidos y valores alfa medios (para una ligera transparencia), y luego usa un sombreador de detección de bordes, podría verse lo suficientemente bueno. No sería lo mismo, pero puede que te guste aún más; o tal vez no.
De lo contrario, es posible que esté buscando una solución de dos pasos, dibujando polígonos translúcidos (nuevamente, configure los colores de los vértices en un color sólido con un valor alfa medio), luego configure glPolygonMode (GL_LINE) y ajuste glLineWidth como desee (tal vez en función del objeto distancia) y dibuje los polígonos nuevamente.
Es un poco tarde y me está costando leer esto, pero una discusión en el foro apunta a este PDF: Representación de estructura metálica de un solo paso . Mis disculpas si no es relevante.
Sé que probablemente no sea lo que buscas, pero parece que Vector Tanks solo usa modelos texturizados. La textura le da el aspecto de marco de alambre, se ejecuta en mi iPod touch que no admite sombreadores.
fuente
La única forma en que lo he visto es con texturas de alta resolución, en su mayoría negras, como las de Tron 2.0. Sus texturas son casi universalmente, ya sea un negro plano con un borde grueso y de color, o una simple textura de ruido Perlin.
Aplicaron algo de procesamiento posterior simple para lograr el efecto de brillo.
fuente
Podría probar algún tipo de función de distancia simple en el sombreador de píxeles. Quizás algo así como coordenadas barcéntricas (almacene diferentes RGB en los vértices y el rasterizador hará la mayor parte del trabajo por usted).
Luego, su sombreador de píxeles tendrá la información que necesita sobre en qué parte del polígono se encuentra el píxel actual: cerca de un vértice, cerca de un borde o en el medio ...
Sin embargo, sospecho que en la práctica sería más fácil texturizarlo.
fuente
Qué tal esto: tome su modelo y bisele los bordes que desea que aparezcan como contornos. Colorea las caras que se crearon con un verde opaco brillante, mientras que todas las caras antiguas son de un verde translúcido oscuro.
Esto no requiere el uso de sombreadores de píxeles en absoluto. (De hecho, tampoco texturas; solo colores de la cara). Requiere un cierto procesamiento previo del modelo por su parte, lo que puede o no ser un problema.
No podrá ver el contorno cuando la superficie biselada sea perpendicular a la vista. Si esto le molesta, puede extruir un poco la superficie biselada, coloreando la extrusión como lo haría con el bisel. Puede jugar con diferentes grados de biselado y extrusión para hacer líneas más delgadas y gruesas.
fuente