Hola la pregunta es simple, a ver la respuesta...
Me gustaria saber la distancia que hay desde el punto del observador de cualquier poligono, para así ordenarlos. Un saludo.
Ten en cuenta que puede que se produzca un solapamiento de polígonos de forma que un polígono esté delante y detrás al mismo tiempo. Lo que se suele utilizar en estos caso es un arbol BSP y seccionar dichos polígonos. De esta forma podrías renderizar los polígonos de atrás hacia adelante y viceversa.
De todas formas, para calcular la distancia (perpendicular) de un punto a un plano (en este caso el plano sobre el que yace el polígono) sería:
distancia = dot(normal_del_plano, (punto_sobre_el_plano - posicion_camara))
En este caso la normal del plano también es la normal del polígono y el punto sobre el plano es cualquier vértice del polígono. "dot" es la operación producto escalar (dot product).
Saludos.
Pero ¿ cual es la pregunta ?
1. Distancia desde la cámara hasta el plano en el que está contenido el polígono.
Respuesta: ( lo que dijo Berserker )
2. Distancia desde la cámara hasta el centro geométrico del polígono.
Respuesta: en primer lugar sacar el centro geométrico del polígono por la media ponderada de sus vértices.
en segundo lugar: donde P es la posición (del centro geométrico) del polígono y C la posición de la cámara.
sqrt( (Px-Cx)*(Px-Cx) + (Py-Cy)*(Py-Cy) + (Pz-Cz)*(Pz-Cz) );
:lol: Gracias.