Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: BeRSeRKeR en 28 de Agosto de 2003, 05:08:07 PM

Título: Orden De Índices
Publicado por: BeRSeRKeR en 28 de Agosto de 2003, 05:08:07 PM
 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.
Título: Orden De Índices
Publicado por: MChiz en 28 de Agosto de 2003, 09:52:12 PM
 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.
Título: Orden De Índices
Publicado por: BeRSeRKeR en 28 de Agosto de 2003, 09:58:05 PM
 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
Título: Orden De Índices
Publicado por: DraKKaR en 28 de Agosto de 2003, 10:20:34 PM
 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).
Título: Orden De Índices
Publicado por: _Grey en 28 de Agosto de 2003, 11:31:55 PM
 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!?
Título: Orden De Índices
Publicado por: tiutiu en 29 de Agosto de 2003, 11:19:34 AM
 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 ?
Título: Orden De Índices
Publicado por: MChiz en 29 de Agosto de 2003, 06:58:52 PM
 Pues pensandolo detenidamente, puede ser que si que en ambos casos sea igual de eficiente...
Título: Orden De Índices
Publicado por: NeLo en 29 de Agosto de 2003, 07:17:10 PM
 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.
Título: Orden De Índices
Publicado por: _Grey en 29 de Agosto de 2003, 10:23:50 PM
 
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.
Título: Orden De Índices
Publicado por: Haddd en 30 de Agosto de 2003, 06:06:58 PM
 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
Título: Orden De Índices
Publicado por: BeRSeRKeR en 30 de Agosto de 2003, 06:26:36 PM
 Si, supongo que este tipo de optimizaciones son secundarias pero me picaba la curiosidad :)

Saludos
Título: Orden De Índices
Publicado por: DraKKaR en 30 de Agosto de 2003, 07:13:33 PM
 Yo estoy con haddd, mejor dejar estas optimizaciones de tan bajo nivel, y dedicarse a otros menesteres mas importantes.  
Título: Orden De Índices
Publicado por: Mars Attacks en 30 de Agosto de 2003, 07:16:51 PM
 ¿Hay vida inteligente en otros planetas? ¿Y en el nuestro?

Lalala.
Título: Orden De Índices
Publicado por: _Grey en 31 de Agosto de 2003, 12:00:41 AM
 Ejecutar el "Optimized mesh" de los samples de DirectX, si puedes hacerlo no esta de mas.
Título: Orden De Índices
Publicado por: Ithaqua en 03 de Septiembre de 2003, 05:34:58 PM
 ¡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.