Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema con Orden De dibujo

Iniciado por combo_heroe, 13 de Abril de 2012, 07:05:22 PM

« anterior - próximo »

combo_heroe

Hola estaba realizando una prueba de un motor de fisica, la pruba consiste en poner un numero n de cubos apilados y dejar caer desde un punto mas alto cada cierto tiempo una Esfera, por lo que mi Orden de dibujo es primero dibujar la lista de cubos y despues la lista de bolas, el problema que vi es que algunas ocasiones al chocar las bolas se van detras de las cajas (desde la vista de la camara), pero por el orden de dibujo se siguen pintando

Como  pueso solucionar esto???. Muchas Gracias por sus respuestas

WaaghMan

Si nada de lo que dibujas es transparente, lo más sencillo es asegurarse de que se está usando el ZBuffer para que las cosas de detrás no tapen a las de delante, aunque se pinten después.
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

combo_heroe

#2
Me podrian dar un ejemplo estoy trabajando con XNA 4.0 y en WP7 y de un vistazo en Google sobre ZBuffer en xna, ninguno de los ejemplo me sirve

Encontre uno http://stackoverflow.com/questions/3763475/disabling-depth-buffer-checks-in-xna-4-0-on-windows-phone-7

DepthStencilState depthState = new DepthStencilState();
            depthState.DepthBufferEnable = true; /* Enable the depth buffer */
            depthState.DepthBufferWriteEnable = true; /* When drawing to the screen, write to the depth buffer */

            SharedGraphicsDeviceManager.Current.GraphicsDevice.DepthStencilState = depthState;


ya lo implemente al final del metodo Draw y funciona, pero despues de estar un rato corriendo, y al irele agregando modelos al dibujo llega un punto en que la pantalla se ponde morada y varios modelos desaparecen, despues intente poner este codigo en la inizializacion, pero ya no funciona

Que estoy haciendo  mal??


WaaghMan

Probablemente te falte el Clear al principio del frame. Creo que era Device.Clear(), con una serie de parámetros.
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

combo_heroe

pues tengo el
SharedGraphicsDeviceManager.Current.GraphicsDevice.Clear(Color.CornflowerBlue);
pero vi que hay otras sobrecargas, pero no estoy muy seguro de como usarlas ya que simpre he usado eso, no se si por eso me esta dando este comportamiento

WaaghMan

No sé si esa sobrecarga te limpia el zbuffer, hay una en la que le dices qué cosas quieres limpiar.
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games


combo_heroe

y que valores de le debo de dar aparte del ClearOptions es que la documentacion no me ayuda en mucho  Oo






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.