Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Orden De Índices

Iniciado por BeRSeRKeR, 28 de Agosto de 2003, 05:08:07 PM

« anterior - próximo »

BeRSeRKeR

 Hola a todos.

Veréis, tengo una duda acerca de la forma más óptima de definir los índices que forman la geometría.

Mirad. Estos son los índices que forman un cubo.

  0   1     2
  2   3     0
  4   5     6
  6   7     4
  8   9   10
10  11    8
12  13  14
14  15  12
16  17  18
18  19  16
20  21  22
22  23  20


Como podéis ver, los índices están definidos de una forma más o menos secuencial.

Y esta es la lista de índices del mismo cubo pero definido de otra forma. Como podéis ver, los índices no van tan consecutivos.

  0    6    9
  9    3    0
12  15  21
21  18  12
  1    4  16
16  13    1
  5  10  22
22  17    5
11    7  19
19  23  11
  8    2  14
14  20    8


Así que la pregunta es, ¿es más optima para la aceleradora la primera lista de índices o es indiferente?

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

MChiz

 Sinceramente, no lo se a ciencia cierta, pero juraria que si. Temas de cache, ya sabes. Las tarjetas tienen cache de vertices, asi que si le pasas todos consecutivos digo yo que los reaprovechara.

BeRSeRKeR

 Si, precisamente por eso lo preguntaba :)

Yo también pienso que el tener los vértices que forman cada triángulo de manera consecutiva, aumenta el rendimiento de la caché.

Saludos
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

DraKKaR

 Si, las tarjetas graficas tienen una cache de vertices (que solo se usa con geometria indexada), de forma cuanto mas consecutivos sean los vertices mas se aprobechara esto (o cuanto antes se use un vertice desde la ultima vez que se haya usado).

_Grey

 En la documentacion de Nvidia no parecen dejarlo muy claro, tienen una utilidad para crear strip's de mallas optimizadas, que seguramente sabras, incluso diria que esta utilidad la has nombrado alguna vez.

De todas formas, sabiendo que la cache que se usa es FIFO tendria mos que poder decucir que lista es mejor, pero mirando a primera vista, los numero que se repiten al final y al principio en la siguiente cara, parecen igual, mirandolas en profundidad pues no se.

Pero sabiendo que la cache es FIFO, nunca se podra aprobechar al 100%, no?? es decir que, tendria que ser normal, en una lista optimizada, es normal que algunos vertices del cache se pierdan, nop??

Saludotes.

PD: Una puñetera documentacion sobre el orden de los vertices para usar la cache estaria bien, por que la documentacion de nvidia, no parece aclarar mucho, querran que usemos el cutre-programa ese!?

tiutiu

 OT: aprovechar va con v listos xD

Una cosa, por lo q veo las dos listas aprovechan como mucho 2 vertices del triangulo anterior cada 2 triangulos, es decir, el triangulo B aprovecha 2 vertices del A y el D pilla 2 del C, con lo cual da igual q esten tan salteados en la 2a, no ?
b>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos

MChiz

 Pues pensandolo detenidamente, puede ser que si que en ambos casos sea igual de eficiente...

NeLo

 Simplemente crear un test. Un modelo de miles de vertices, con dos versiones, una con índices ordenados, y la otra no. Y a probar.

Saludos.
Drowning deep in my sea of loathing

_Grey

 
Y a probar

No, si acelerar, acelera, el problema es saber cual es el orden correcto, por que no parece haber documentacion clarificadora al respecto.

Haddd

 Yo me hice la misma pregunta y cree un optimizador de indices. Pero no saqué ninguna conclusión. Bueno sí, la conclusión fue que mejor me dedico a analizar otros temas porque con este no creo que se consiga ganar mucha cosa. :D

BeRSeRKeR

 Si, supongo que este tipo de optimizaciones son secundarias pero me picaba la curiosidad :)

Saludos
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

DraKKaR

 Yo estoy con haddd, mejor dejar estas optimizaciones de tan bajo nivel, y dedicarse a otros menesteres mas importantes.  

Mars Attacks

 ¿Hay vida inteligente en otros planetas? ¿Y en el nuestro?

Lalala.

_Grey

 Ejecutar el "Optimized mesh" de los samples de DirectX, si puedes hacerlo no esta de mas.

Ithaqua

 ¡Todo lo contrario!
Un optimizador de índices es de las mejores optimizaciones que uno puede hacer :)
Las tarjetas desde hace tiempo (i.e. geforce1) disponen de una cache de vértices tanto preT&L como postT&L, y hacen uso de ella en geometría indexada.
Las diferencias que puede haber en rendimiento si la malla tiene una indexación caótica a diferencia de una malla con una indexación que favorezca que muchos cálculos puedan reutilizarse al hallarse ya en la caché son enormes.

Un optimizador de malla en ese sentido que reordene índices es una muy buena idea si lo que se busca es la mayor rapidez :)

        Saludos,

                 Ithaqua.
thaqua^Stravaganza
http://ithaqua.stravaganza.org






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.