Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Eficiencia en acceso a vertices para ColDet y render

Iniciado por ElQueSeRompeElOrto, 22 de Enero de 2003, 09:50:37 PM

« anterior - próximo »

ElQueSeRompeElOrto

                                Tengo una duda con el tema de acceder al vertex buffer de un objeto cada
vez que quiero comprobar la deteccion de colisiones a nivel poligono.
Estoy usando Direct3D y necesito usar vertex buffers ,pero he leido que
no es muy eficiente que digamos acceder al buffer a comparacion de hacceder a un array comun y corriente ,de echo la eficiencia cae aun mas
si tengo una placa con Transform&Light y el vertex buffer se almacena en
la memoria de video ,el acceder a esta es mas lento que acceder a la memoria del sistema con el microprocesador ,(creo que es asi) ,pero tambien he leido que  al AGP alivia un poco este proceso , la cuestion es
En maquinas Con T&L es recomendable hacer un array de vertices para colisiones y un buffer D3D para renderizar ... es un locura lo que estoy diciendo? , si alguien sabe algo al respecto  y  me aconseja  si no es molestia desde lla muchas gracias...                                

BeRSeRKeR

                                Yo siempre he leído que es mejor dejar el vertex buffer quietecico y tener una copia en memoria del sistema para la detección de colisiones...

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

_Grey

                                A veces se tienen los vertices en un array donde se pueden tratar bien y luego se pasan a un gran vertexbuffer con todo lo que tengas que renderizar.

Pero lo que dices de tener el vertexbuffer por un lado y un array de vertices para las colision no es ninguna locura, se hace a menudo, es mas, a veces incluso el objeto del array es menos detallado para hacelerar las colisiones, pero de locura nada.                                

ALBSIM

                                ¿Alguien me puede explicar cuándo se manda la información de los arrays en RAM a la memoria de la gpu y qué formas hay de optimizarlo (creo que en OGL hay extensiones de NV para optimizar los VB para que se pasen una sola vez a la tarjeta?
Es decir, yo tengo un vertex buffer estático con todos los vértices del mundo el cual no lo cambio durante el resto de la aplicación, pero sí que necesitaré consultarlo para detec. de colis. como comentais arriba.
Al cargarlo al inicio de la aplicación lo guardo en un array y se lo mando a OGL con glVertexPointer. ¿Es aquí cuando se realiza la copia a la mem. de la GPU? y ¿Esta copia es única durante la aplicación? o por el contrario estos datos pasan constantemente de la RAM a la tarjeta.
¿Cuando leo este array lo hago desde la RAM o estoy trayendo inf. de la mem. de la tarjeta? Si no me equivoco (seguramente sí porque soy un inútil) por lo que he leído, debería tener la misma información en 2 arrays diferentes, porque si leo el array de los vértices estoy pidiendo datos desde la tarjeta gráfica.
Y en cuanto a los index buffers supongo que no tendrán el mismo problema, porque yo los cambio constantemente.                                






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.