Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Backface Culling

Iniciado por cemar, 24 de Noviembre de 2003, 01:51:34 PM

« anterior - próximo »

cemar

 Hola!! Estoy empezando con esto de la programación 3D. He elegido DirectX como API.

Quería preguntaros sobre la necesidad de usar el "Backface culling". He estado pensando que si utilizo un Z_Buffer, no necesito utilizar culling, porque las caras traseras nunca apareceran, al estar por detrás de las caras que estan delante. Estoy en lo cierto?
Se acelera el proceso de render si se utilizan al mismo tiempo Backface culling y Z-Buffer?

Me gustaria preguntaros tambien si es mejor utilizar triangle strips o triangle lists. Y si es mejor utilizar strips, como puedo hacerlo de manera compatible con el culling, ya que creo haber entendido que hay problemas por el orden de los vertices.

Si tanto las listas como los strips son buenos, en qué casos tendría que aplicar cada uno?.

Buf, me salen tantas dudas al principio. Pero supongo que todo el mundo a pasado por esa fase.

Muchas gracias.

_Grey

 Puede que no aparezcan pero las dibuja, si la cara que tiene delante ya esta dibujada la eliminacion de los pixels que no se tienen que dibujar se eliminan facil mente, pero se tiene que hacer la comprobacion. Yo usaria la eliminacion de caras, no esperes ganar un porron de velocidad, pero siempre sera mas rapido por poco que sea.

Si usas el Backface culling y el ZBuffer, no es tiempo lo que ganaras precisamente, es mas el render es mas rapido sin ninguna de esas activaciones, pero claro...... si tienes que ordenar las caras (que es lo normal) y eliminar los poligonos que no se dibujaran (que tambien es lo normal) pues que lo haga el Hard de video que para eso esto, y es mas rapido.
Es decir, no es tanto que el render sea mas rapido, si no el echo de que son cosas de las que hoy dia no se pueden prescindir, y la aceleradora 3D es mas rapida que la CPU, por norma.
Es decir, usa el Backface culling y el ZBuffer sin ningun temor.

No tendran problemas al usar el backface culling con strips, mas que nada por que la aceleradora ya se encarga de hacerlo correctamente.
La dificultad de trabajar con strips o lists esta en como se almacena la informacion de los vertices, es mas facil trabajar con lists, pero no tienes que tocar los indices de los poligonos (el INDEXBUFFER)y estan bien ordenados un strip sera mas rapido, en la seccion de developer de nvidia tenin una utilidad para hacer la prueba de pasar un objeto de list a strip pero era un formato propio, por lo que en un principo tendras que trabajar con lists, hasta que encuentres alguna utilidad para pasar a strip........... seguramente aparecera alguien por el post con alguna segerencia a este respecto.

Saludos.

tamat

 creo que confundes las dos tecnicas:

Backface Culling: Consiste en no pintar los poligonos que no tienen la normal enfocada hacia la camara

Z-Buffer: Consiste en no pintar los pixeles de los poligonos que quedan por detras de un pixel pintado anteriormente en esa misma posición.

Como ves no tienen nada que ver, el primer se utiliza para evitar pintar partes de los modelos que quedan en el "interior" del objeto, por ejemplo, si modelamos un personaje lo obvio es que las caras internas de los poligonos de la malla (las que enfocan hacia sus tripas, su cerebro, etc) no haga falta pintarlas porque nunca será necesario, pues así ahorramos procesarlos.

El ZBuffer es muy necesario, sin él deberiamos hacer muchos más calculos y sería una locura.

Resumiendo,  si no sabes qué hace cada uno entonces activa el ZBuffer y desactiva el Backface Culling, es el caso en el que pierdes más recursos pero mejor eso que no que pintes cosas y luego veas que no aparecen,
Por un stratos menos tenso






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.