Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: DarkKRuleR en Enero 19, 2014, 08:04:06 PM

Título: Bordes de sierra en 3D
Publicado por: DarkKRuleR en Enero 19, 2014, 08:04:06 PM
Buenash! Alguien sabe cómo solucionar esto?

(http://dmcplusdata.webcindario.com/screenshot100dsadsafdc.png)

es la recta donde colisionan de forma precisa un wall y un floor en un ángulo de 90º. Aparece así cuando lo miras desde ciertos ángulos... éstas son mis inicializaciones:

d3d_start();
d3d_set_hidden(true); //no dibujes lo que no se ve (es tapado por otras cosas)
d3d_set_lighting(true);
d3d_set_culling(false); //clave para ver todas las caras de los polígonos, walls y suelos
d3d_set_shading(true); //iluminacion mas suave
texture_set_interpolation(false); //A TRUE TAMPOCO SOLUCIONA LOS BORDES DE SIERRA
d3d_set_fog(true, c_black, 1000, 1200);
Título: Re:Bordes de sierra en 3D
Publicado por: Haseo en Enero 19, 2014, 11:41:16 PM
Viendo la imagen, de momento solo se me ocurre que el borde de la textura que usas este algo transparente, eso me pasa tambiem, chekea la textura, puede que soluciones tu problema.
Título: Re:Bordes de sierra en 3D
Publicado por: DarkKRuleR en Enero 20, 2014, 12:28:08 AM
Pues no, es opaca, me he asegurado dándole a make opaque y sigue :C
Título: Re:Bordes de sierra en 3D
Publicado por: elviskelley en Enero 20, 2014, 10:19:18 AM
Eso es el error Z del game maker en 3D. La unica solucion es que uses dll. O ignoras ese bugm
Título: Re:Bordes de sierra en 3D
Publicado por: DarkKRuleR en Enero 20, 2014, 12:29:45 PM
Hmmm... gracias :D que dll se usa y que tutorial necesito? Por ahora no es muy grave pero si no cuesta tanto vale la pena ir por esa dll!

rectifico lo dicho: sí es grave, necesito corregirlo :D
Título: Re:Bordes de sierra en 3D
Publicado por: Jucarave en Enero 20, 2014, 04:21:56 PM
Realmente no creo que sea tan grave como para cambiar a una dll, debe tener su solución.

Si quitas el techo (floor) de arriba también sucede el mismo efecto?, cuantos polígonos tiene ese muro, cuanto mide, si desactivas la luz funciona?

Saludos
Título: Re:Bordes de sierra en 3D
Publicado por: Haseo en Enero 20, 2014, 05:09:41 PM
Estoy deacuerdo con Jucarave, debe ser algo que pasaste por alto.
Título: Re:Bordes de sierra en 3D
Publicado por: DarkKRuleR en Enero 20, 2014, 05:19:16 PM
(http://dmcplusdata.webcindario.com/estalags.png)

Como veis, pasa lo mismo al cruzar el "floor" horizontal con esas estalagmitas, que son "walls" que interseccionan.

Sí, si quito el "floor" de arriba no sucede. Al igual que en la imagen que acabo de poner, sucede cuando interseccionan distintos walls (en ambos casos perpendicularmente en 90º, pero seguramente pase para más ángulos)

Los muros son todos de 100x100. En este caso concreto es una primitiva trianglestrip, donde cada muro de 100x100 contiene 9 vertices (8 triangulos). Si desactivo la luz este error no sucede, parece que nos vamos acercando? :D
Título: Re:Bordes de sierra en 3D
Publicado por: Ciberman en Enero 21, 2014, 03:41:53 PM
Primero, son dos errores distintos el que pusiste en la primera imagen y el que pusiste en la segunda, no hay que confundirlos.

El primer error de la primera imagen, como bien dijo Jucarave, ese es el error del "Z fighting".

Para saber cómo solucionarlo primero hay que entender cómo se produce.
Toda la pantalla es dibujada a medida que vamos dibujando los polígonos en 3D. Con cada polígono que dibujamos se va llenando el buffer que tiene la pantalla. Si vos tuvieras que dibujar en papel con lápices de colores esa misma imagen que pusiste en el primer post probablemente empieces dibujando por el fondo (osea, lo que está más atrás en la imagen) y luego vas a ir dibujando las cosas que van más adelante y se superpongan, hasta que llegues a la parte de más adelante, que la vas a dibujar con toda seguridad.
Pero qué pasa si te dicen que solamente podés dibujar en el orden inverso? Probablemente te cueste un poco más hacer el fondo.
Al GM le pasa lo mismo. Por lo que se puede ver en la imagen estás dibujando en el orden equivocado las cosas. ¿Cómo se soluciona eso? Hay que cambiar la depth con la que se dibuja cada cosa. Asi le indicás al gm en que orden tiene que dibujar cada polígono.

El segundo problema lamento informarte que no se puede solucionar. Ese es el conocidísimo error del "Alpha Bug" (con ese nombre se conoce en la GameMakerComunity oficial). En el gmstudio hay algunas funciones que permiten tratar mucho mejor el alpha bug, pero al menos que estés usando GMStudio, te recomendaría que desistas de usar walls.
Las walls son mucho más lentas que los polígonos comunes, aunque son más fáciles para usar. Pero no tenés que usarlas regularmente, solamente para hacer testeos.
Para solucionar el alpha bug, en el caso de que la forma que tenés que hacer sea un pinche por ejemplo, como se ve en la imagen, te recomiendo que lo hagas con primitivas. Es muy fácil. Y te va a quedar mejor. (aunque para formas más complejas probablemente gaste más recursos)
Título: Re:Bordes de sierra en 3D
Publicado por: DarkKRuleR en Enero 21, 2014, 04:55:38 PM
Graciass!! El primer error lo he "solucionado", debo hacer muchas comprobaciones e ir cambiando la depth segun muchos casos, quizas tenga problemas con algunos pero es eso xDD poco a poco lo iré solucionando.

El segundo no lo entiendo. Ya he probado a dibujar los pinchos del suelo con d3d_primitive_begin_texture, dando los 3 vertices, y el problema persiste...
Título: Re:Bordes de sierra en 3D
Publicado por: elviskelley en Enero 31, 2014, 06:50:58 PM
http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=437
pruebala a ver si te gusta, ahi esta el manual.