Stratos

Autor Tema: Problema con Orden De dibujo  (Leído 380 veces)

combo_heroe

  • Stratos
  • Mensajes: 12
    • Ver Perfil
Problema con Orden De dibujo
« en: 13 de Abril de 2012, 06:05:22 pm »
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

  • Stratos
  • Mensajes: 483
    • Ver Perfil
    • Milkstone Studios
    • Email
Re: Problema con Orden De dibujo
« Respuesta #1 en: 14 de Abril de 2012, 01:05:18 pm »
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

  • Stratos
  • Mensajes: 12
    • Ver Perfil
Re: Problema con Orden De dibujo
« Respuesta #2 en: 14 de Abril de 2012, 06:22:26 pm »
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

Código: [Seleccionar]
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??

« última modificación: 14 de Abril de 2012, 06:33:07 pm por combo_heroe »

WaaghMan

  • Stratos
  • Mensajes: 483
    • Ver Perfil
    • Milkstone Studios
    • Email
Re: Problema con Orden De dibujo
« Respuesta #3 en: 15 de Abril de 2012, 06:56:46 pm »
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

  • Stratos
  • Mensajes: 12
    • Ver Perfil
Re: Problema con Orden De dibujo
« Respuesta #4 en: 16 de Abril de 2012, 05:42:12 pm »
pues tengo el
Código: [Seleccionar]
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

  • Stratos
  • Mensajes: 483
    • Ver Perfil
    • Milkstone Studios
    • Email
Re: Problema con Orden De dibujo
« Respuesta #5 en: 17 de Abril de 2012, 08:36:49 am »
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

Vicente

  • Moderador
  • Stratos
  • *****
  • Mensajes: 4485
    • MSN Messenger - drizzit81@hotmail.com
    • Ver Perfil
    • http://www.jadengine.com
Re: Problema con Orden De dibujo
« Respuesta #6 en: 17 de Abril de 2012, 03:47:54 pm »

combo_heroe

  • Stratos
  • Mensajes: 12
    • Ver Perfil
Re: Problema con Orden De dibujo
« Respuesta #7 en: 21 de Abril de 2012, 10:51:00 pm »
y que valores de le debo de dar aparte del ClearOptions es que la documentacion no me ayuda en mucho  Oo