Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Saber El Num De Vertices Apartir Del Num De...

Iniciado por Miki, 10 de Enero de 2004, 12:23:21 AM

« anterior - próximo »

Miki

Pues eso, aver si alguien sabe como se puede hayar el número de vertices apartir de un número de de trigs dado. Vertices BASE, es decir, no repetidos (en cuyo caso está claro k sería tan simple como multiplicar por 3). El modo de triangulos sería un TRIANGLELIST.

Gracias de antemano...

Kriller

 Precisamente, si tienes un TRIANGLELIST tienes que multiplicar por 3 el número de triángulos para obtener el número de vértices. Si no es eso lo que quieres saber intenta explicarlo mejor.

Saludos.

Miki

 Para explicarlo bien basta con poner el ejemplo del cubo. Tiene 8 vertices BASE ( k indexados son 36) y 12 trigs (36/3 efectiviwonder :-P). Yo lo quiero hallar es el número de vértices BASE.  

Kriller

 Eso ya depende totalmente de cada malla. Por ejemplo, si levantas la cara de arriba (como si fuera la tapa del cubo) te aparecen otros dos vértices base, es decir 10, cuando sigues teniendo 36 vértices reales y 12 triángulos.

Lo que puedes hacer es recorrer a lo bruto todos los vértices de la malla (los 36 en el cubo) e ir creando grupos de vértices. Todos los vértices que compartan una misma posición estarán en el mismo grupo. Al final, el número de grupos es el número de vértices base que buscas.

BeRSeRKeR

 Efectivamente, la única forma es ir comparando vértice a vértice. Una optimización será ordenar la lista de vértices, con lo que el recuento de los vértices "únicos" es más rápido. Algo así:

Citarsort(vertices);

lastVertex = vertices[0];
numVertices = 1;
foreach vertex in vertices do
    if lastVertex != vertex do
       lastVertex = vertex;
       numVertices++;
    end if
end foreach

Saludos.

PD: ¿se nota demasiado que me aburro? :D
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Miki







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.