Estoy haciendo un intento de juego en c# con direct3D usando las librerias de Bisual Basic. De momento estoy haciendo pruebas y he conseguido rendear un picachu en 3d. Pero tengo un problema con las texturas y esque parece como si el picachu fuera trasparente porque miras desde la espalda del picachu y le ves los ojos y le miras de un lado y le ves el ojo del lado que se ve y el del otro lado tambien. Lo he probado con otras figuras y pasa lo mismo. no se si me he explicao. alguien sabe que puede estar pasando??
A mí me suena a que tienes las normales del objeto invertidas. Quizás puedas solucionarlo deshabilitando la eliminación de caras ocultas, pero sería más lógico que revisaras el modelo y trataras de invertirle las normales a la malla. Que alguien que sepa más corrobore o desmienta mis teorías :sonriendo:
[ Este Mensaje fue editado por: Forum Master el 2002-09-29 11:51 ]
El modelo tiene pinta de estar bien. Lo exporté de 3d studio y lo abri con el MeshView que viene con DX SDK y el modelo se ve perfectamente. Aparte de que tambien me pasa con otras figuras. Tiene que ser algo en mi codigo, pero no doy con ello.
O bien tienes las normales (o la indicación del sentido horario de los vértices) invertida, o por otro lado también puede ser que no tengas el z-buffer activado.
Comprobarás fácilmente cual es el error activando el z-buffer o invirtiendo el sentido de las normales.
el z buffer esta activado (con esto basta no?):
device.SetRenderState(D3DRS_ZENABLE, 1);
como puedo invertir las normales?
gracias
Revisa a ver cómo estás haciendo el culling, prueba con:
device.SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
Metaxas
Citar
El 2002-09-30 14:09, alpedreteño escribió:
el z buffer esta activado (con esto basta no?):
device.SetRenderState(D3DRS_ZENABLE, 1);
como puedo invertir las normales?
gracias
Además de activar el ZBuffer, tambien hay que crear una superficie para él y añadirsela al BackBuffer, ¿has hecho esto?, por lo menos en DX7 era así, no sé si será igual en DX8.1
Para invertir las normales solo tienes que intercambiar 2 índices de cada triángulo. Por ejemplo, si un triangulo está formado por los vértices 3,4,8 cambiando dos de ellos quedaria el triángulo 3,8,4
[ Este Mensaje fue editado por: fiero el 2002-09-30 16:56 ]