Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Distancias...

Iniciado por Degiik, 01 de Enero de 2005, 01:39:30 PM

« anterior - próximo »

Degiik

 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.
egiik: h-O-5 hoja/ingestión 100mo Vida suspendida ( 1 día )

BeRSeRKeR

 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.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Trancos

 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) );

Degiik

egiik: h-O-5 hoja/ingestión 100mo Vida suspendida ( 1 día )






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.