Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas con la cámara en DirectX: los polys enloquecen xD

Iniciado por CoLSoN2, 09 de Octubre de 2002, 08:58:37 PM

« anterior - próximo »

CoLSoN2

                                Pues vereis, tengo un visualizador de modelos, que renderizaba de coña. pero he hecho algunos cambios en la clase cámara, y ahora la camara la maneja de coña, pero los triangulos se superponen dependiendo de la posicion de la camara, algo raro. podeis ver en una determinada posicion de la camara , esto se renderiza:



si teneis idea de porque puede, ser .. =([/img]                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Haddd

                                Pues como no pongas aquí el código de la cámara..¡difícil lo tenemos para ayudarte! Yo creo que construyes mal la matriz de visualización, pero necesito código para decirte donde                                

CoLSoN2

                                void W3C_GFX_Camera::Create(LPDIRECT3DDEVICE8 device)
{
   D3DXMATRIX Trans, XRot, YRot, ZRot;
   D3DXMATRIX view;

   // cogemos la matriz de view actual y sacamos de ella algunos vectores
   device->GetTransform(D3DTS_VIEW, &view);
   m_right = D3DXVECTOR3(view._11, view._21, view._31);
   m_up = D3DXVECTOR3(view._12, view._22, view._32);
   m_dir = D3DXVECTOR3(view._13, view._23, view._33);

   // calculamos la nueva matriz
   D3DXMatrixTranslation(&Trans, -m_pos.x, -m_pos.y, -m_pos.z);
   D3DXMatrixRotationY(&YRot, -m_YRot);
   D3DXMatrixRotationX(&XRot, -m_XRot);
   D3DXMatrixRotationZ(&ZRot, -m_ZRot);

   view = Trans * YRot * XRot * ZRot;

   device->SetTransform(D3DTS_VIEW, &view);
}                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Haddd

                                Qué forma MAS extraña de usar la cámara. Aquí te paso mi código:

   D3DXQUATERNION qR;CXMatriz rot;
   D3DXQuaternionRotationYawPitchRoll( &qR, m_AngY, m_AngX, m_AngZ);
   D3DXMatrixAffineTransformation( &rot, 1, NULL, &qR, NULL);

   m_At=CXVector(0,0,1)*rot;
   m_WorldUp=CXVector(0,1,0)*rot;

   m_WorldUp.Normalizar();

   m_NAt=m_At.NormalizarNuevo();


Ahora ya puedes utilizar las funciones de D3DX de LookAt para la cámara.                                

BeRSeRKeR

                                Es posible que si estás utilizando un pure device, ese sea el problema. Si estás utilizando parte de la clase de cámara que hay en los tutos, convendría hacer unas modificaciones que en aquel momento no hice porque eran unos tutos básicos. Y es que por ejemplo, con un pure device, los métodos GetTransform del device fallarán por lo que sería conveniente que mantuvieses tú mismo tus matrices de vista y proyección...a ver si hago el ánimo y actualizo el code de esa clase y lo subo a la page... ;)

Saludos                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

CoLSoN2

                                así es.
tonces mejor tener una matriz de miembro de la clase que vaya guardandola, no ? probaré eso, thx                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

CoLSoN2

                                sigue haciendo lo mismo :                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

_Grey

                                Utilizas bien el ZBuffer!?

Por que parece un tipico error de cuando se dibujan los polis sin zbuffer sin tener en cuanta la profundidad de estos....

:I                                

CoLSoN2

                                el zbuffer esta bien, io tambien pense ke seria de eso, pero esta exactamente igual ke cuando iba bien :                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Haddd

                                ¿has probado lo que yo te he dicho? No has respondido a mi post.                                

Ithaqua

                                Cada x dias sale un post como este, y siempre es por usar mal el near y el far. Pon el near a 1.0 por ejemplo y el far al que necesites. Mira en posts antiguos la razón. En el shot la verdad es que no se distingue nada (yo al menos no distingo nada), pero lo más probable es que sea eso.                                
thaqua^Stravaganza
http://ithaqua.stravaganza.org

CoLSoN2

                                haddd, es k tu codigo es propio de tu engine, pero igualmente, prefiero acerlo con vectores distintos(direccion,posicio,etc), ke con los valores de la rotacion, etc

ithaqua, el far y near tengo 1.0 y 1000.0 , y lo del shot, simplemente es una nave ke deberia tener una superficie bien hecha, pero salen agujeros (triangulos ke faltan) por todos lados, pero en cuanto muevo la camara minimamente, estos trianguloske faltan se cambian, es decir, se ven, y otros no se ven, cosa rara XD
mirare en otros posts, aver ke encuentro thx                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

_Grey

                                se ven, y otros no se ven

esto podria ser otra cosa,pues igual el orden de los vertices en los poligonos esta mal,es decir, que las normales de los polis estan mal, en ocasiones ocurre cuando se trabaja en un modelador y sacar el modelo, por que en el modelador se suelen ver los polignos por ambos lados.

se ve bien si pones "setRenderState(D3DRS_CULLMODE,D3DCULL_NONE);" ?

saludos.                                

CoLSoN2

                                no, el culling no tengo desactivado y se ve asi. Pero si se hubiera visto asi siempre vale, pero el problema es ke tenia el visualizador ke renderizaba de coña. Pero el manejo de la camara era muy malo. Ahora, al implementarlo de otra forma, pasa esto :                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

CoLSoN2

                                SIIIIII ya tira!"!! :D:DdD;D;DD:D

thx a todos, creo que la solucion a sido un poco de todo, tenia algo que ver con el near y far, y con el culling, y nose que mas xDDDD

;***                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor






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.