Logo

¡Bienvenido a Stratos!

Acceder

Foros



Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - CoLSoN2

#2626
Programación gráfica / Texturizar Skyboxes
22 de Noviembre de 2002, 07:32:48 AM
                                el mismo que uso para todo:


#define FVF_VERTEX1 (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_DIFFUSE|D3DFVF_TEX1)
                               
#2627
Programación gráfica / hm
21 de Noviembre de 2002, 09:38:35 PM
                               
CitarLa próxima versión ya será SOLO compatible 100% DX9. Es decir, que aquellos que no tengan una Radeon 9000 y pico, no podrán ver lo más mínimo.

joer, me parece limitar demasiado el marco de usuarios, no ? ..                                
#2628
Programación gráfica / hm
21 de Noviembre de 2002, 09:36:53 PM
                                es bmp
no tengo iluminacion activada

una pregunta, ai algo que pueda hacer para que en una sola sentencia se pongan a Default todos los TextureStageStage?                                
#2629
Programación gráfica / HM
21 de Noviembre de 2002, 08:34:08 PM
                                si tengo diffuse, todo blanco:




for (int i=0;i<20;i++)

{

 verts[i].color = D3DCOLOR_XRGB(255,255,255);

}



la textura es 128x128 y RGB 24bits                                
#2630
Programación gráfica / Texturizar Skyboxes
21 de Noviembre de 2002, 07:03:51 PM
                                tengo el siguiente codigo que genera los vertices: (no ai cara suelo)



// CARA FONDO

Log("Face 1");

verts[0].x = center.x;

verts[0].y = center.y + width;

verts[0].z = center.z + width;

verts[0].tu = 0; verts[0].tv = 0;

verts[1].x = center.x + width;

verts[1].y = center.y + width;

verts[1].z = center.z + width;

verts[1].tu = 1; verts[0].tv = 0;

verts[2].x = center.x + width;

verts[2].y = center.y;

verts[2].z = center.z + width;

verts[2].tu = 1; verts[0].tv = 1;

verts[3].x = center.x;

verts[3].y = center.y;

verts[3].z = center.z + width;

verts[3].tu = 0; verts[0].tv = 1;

// CARA IZQUIERDA

Log("Face 2");

verts[4].x = center.x;

verts[4].y = center.y + width;

verts[4].z = center.z;

verts[4].tu = 0; verts[0].tv = 0;

verts[5].x = center.x;

verts[5].y = center.y + width;

verts[5].z = center.z + width;

verts[5].tu = 1; verts[0].tv = 0;

verts[6].x = center.x;

verts[6].y = center.y;

verts[6].z = center.z + width;

verts[6].tu = 1; verts[0].tv = 1;

verts[7].x = center.x;

verts[7].y = center.y;

verts[7].z = center.z;

verts[7].tu = 0; verts[0].tv = 1;

// CARA DERECHA

Log("Face 3");

verts[8].x = center.x + width;

verts[8].y = center.y + width;

verts[8].z = center.z;

verts[8].tu = 0; verts[0].tv = 0;

verts[9].x = center.x + width;

verts[9].y = center.y + width;

verts[9].z = center.z + width;

verts[9].tu = 1; verts[0].tv = 0;

verts[10].x = center.x + width;

verts[10].y = center.y;

verts[10].z = center.z + width;

verts[10].tu = 1; verts[0].tv = 1;

verts[11].x = center.x + width;

verts[11].y = center.y;

verts[11].z = center.z;

verts[11].tu = 0; verts[0].tv = 1;

// CARA FRONTAL

Log("Face 4");

verts[12].x = center.x;

verts[12].y = center.y + width;

verts[12].z = center.z;

verts[12].tu = 0; verts[0].tv = 0;

verts[13].x = center.x + width;

verts[13].y = center.y + width;

verts[13].z = center.z;

verts[13].tu = 1; verts[0].tv = 0;

verts[14].x = center.x + width;

verts[14].y = center.y;

verts[14].z = center.z;

verts[14].tu = 1; verts[0].tv = 1;

verts[15].x = center.x;

verts[15].y = center.y;

verts[15].z = center.z;

verts[15].tu = 0; verts[0].tv = 1;

// CARA TECHO

Log("Face 5");

verts[16].x = center.x;

verts[16].y = center.y + width;

verts[16].z = center.z;

verts[16].tu = 0; verts[0].tv = 0;

verts[17].x = center.x + width;

verts[17].y = center.y + width;

verts[17].z = center.z;

verts[17].tu = 1; verts[0].tv = 0;

verts[18].x = center.x + width;

verts[18].y = center.y + width;

verts[18].z = center.z + width;

verts[18].tu = 1; verts[0].tv = 1;

verts[19].x = center.x;

verts[19].y = center.y + width;

verts[19].z = center.z + width;

verts[19].tu = 0; verts[0].tv = 1;



for (int i=0;i<20;i++)

{

 verts[i].color = D3DCOLOR_XRGB(255,255,255);

}



y este para renderizarlo..



if (FAILED(dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE)))

 Log("ERROR! SetRemderState: CULLING MODE");



   if (m_texture->Set(dev) == false)

 Log("ERROR! Setting Texture");



if (FAILED(dev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE)))

 Log("ERROR! SetTextureStageState: D3DTSS_COLOROP");

if (FAILED(dev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE)))

 Log("ERROR! SetTextureStageState: D3DTSS_COLORARG1");

if (FAILED(dev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE)))

 Log("ERROR! SetTextureStageState: D3DTSS_COLORARG2");

if (FAILED(dev->SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR)))

 Log("ERROR! SetTextureStageState: D3DTSS_MINFILTER");

if (FAILED(dev->SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR)))

 Log("ERROR! SetTextureStageState: D3DTSS_MAGFILTER");





if (FAILED(dev->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 10, endlist,

sizeof(sVERTEX))))

{

 Log("ERROR! Rendering object");

 if (FAILED(dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CW)))

  Log("ERROR! SetRemderState: CULLING MODE");

 return false;

}



if (FAILED(dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CW)))

 Log("ERROR! SetRemderState: CULLING MODE");



el problema está que io le aplico esta texturA:



y me sale esto ..


alguien sabe k leches pasa? oO

NOTA: lo que se renderiza no es negro negro, sino negro con unas lineas gris claro, nose, como si se hiciese un motion blur a la textura :                                
#2631
General Programadores / hmm
21 de Noviembre de 2002, 07:33:09 AM
                                sigo usando GetTickcount, pero aora si ke se limita a los Hz.. se keda siempre en 60-61. Y si subo la frec. del monitor a 85, pos en 85. alguna vez oi que habia que tocar algo en la config de la tarjeta grafica (active desktop > propiedades > configuracion > avanzadas ..) alguien sabe? tengo una nvidia gforce 4 ti 4200                                
#2632
Programación gráfica / hm
19 de Noviembre de 2002, 11:59:00 PM
                                nada nada, ya está , no era problema de eso parece..

lo de codigo , arriba mientras escribes el mensaje ai unos botones, uno pone CODE. Le das 1 vez, pasteas el codigo, y le das otra vez.                                
#2633
Programación gráfica / hmm
19 de Noviembre de 2002, 08:47:44 PM
                                los planos los calculo asi:

dev->GetTransform(D3DTS_VIEW,&matview);

D3DXMatrixMultiply(&Matrix,&matview,&matproj);



 // calculamos los planos

m_Planes[0].a = Matrix._14 + Matrix._13; // plano cercano

m_Planes[0].b = Matrix._24 + Matrix._23;

m_Planes[0].c = Matrix._34 + Matrix._33;

m_Planes[0].d = Matrix._44 + Matrix._43;

D3DXPlaneNormalize(&m_Planes[0], &m_Planes[0]);



m_Planes[1].a = Matrix._14 - Matrix._13; // plano lejano

m_Planes[1].b = Matrix._24 - Matrix._23;

m_Planes[1].c = Matrix._34 - Matrix._33;

m_Planes[1].d = Matrix._44 - Matrix._43;

D3DXPlaneNormalize(&m_Planes[1], &m_Planes[1]);



m_Planes[2].a = Matrix._14 + Matrix._11; // plano izquierda

m_Planes[2].b = Matrix._24 + Matrix._21;

m_Planes[2].c = Matrix._34 + Matrix._31;

m_Planes[2].d = Matrix._44 + Matrix._41;

D3DXPlaneNormalize(&m_Planes[2], &m_Planes[2]);



m_Planes[3].a = Matrix._14 - Matrix._11; // plano derecha

m_Planes[3].b = Matrix._24 - Matrix._21;

m_Planes[3].c = Matrix._34 - Matrix._31;

m_Planes[3].d = Matrix._44 - Matrix._41;

D3DXPlaneNormalize(&m_Planes[3], &m_Planes[3]);



m_Planes[4].a = Matrix._14 - Matrix._12; // plano de arriba

m_Planes[4].b = Matrix._24 - Matrix._22;

m_Planes[4].c = Matrix._34 - Matrix._32;

m_Planes[4].d = Matrix._44 - Matrix._42;

D3DXPlaneNormalize(&m_Planes[4], &m_Planes[4]);



m_Planes[5].a = Matrix._14 + Matrix._12; // plano de abajo

m_Planes[5].b = Matrix._24 + Matrix._22;

m_Planes[5].c = Matrix._34 + Matrix._32;

m_Planes[5].d = Matrix._44 + Matrix._42;

D3DXPlaneNormalize(&m_Planes[5], &m_Planes[5]);


kreo k es el metodo estandar :
el parametro NEAR de la matriz de proyeccion, lo tengo en 1.0 , pero aunke lo ponga en 0.00001 sigue aciendo lo mismo                                
#2634
Programación gráfica / Checkear Cubos con Frustum
18 de Noviembre de 2002, 10:55:58 PM
                                tengo esta función que checkea si algún vertice del box está en el frustum:


bool W3C_GFX_Frustum::CheckCube(float XCenter, float YCenter,

       float ZCenter, float Size)

{

// nos aseguramos que al menos 1 punto esté en el frustum

for (short i=0;i<6;i++)

{



 if(D3DXPlaneDotCoord(&m_Planes[i], &D3DXVECTOR3(XCenter, YCenter, ZCenter)) >= 0.0f)

  continue;

 if(D3DXPlaneDotCoord(&m_Planes[i], &D3DXVECTOR3(XCenter+Size, YCenter, ZCenter)) >= 0.0f)

  continue;

 if(D3DXPlaneDotCoord(&m_Planes[i], &D3DXVECTOR3(XCenter, YCenter+Size, ZCenter)) >= 0.0f)

  continue;

 if(D3DXPlaneDotCoord(&m_Planes[i], &D3DXVECTOR3(XCenter+Size, YCenter+Size, ZCenter)) >= 0.0f)

  continue;

 if(D3DXPlaneDotCoord(&m_Planes[i], &D3DXVECTOR3(XCenter, YCenter, ZCenter+Size)) >= 0.0f)

  continue;

 if(D3DXPlaneDotCoord(&m_Planes[i], &D3DXVECTOR3(XCenter+Size, YCenter, ZCenter+Size)) >= 0.0f)

  continue;

 if(D3DXPlaneDotCoord(&m_Planes[i], &D3DXVECTOR3(XCenter, YCenter+Size, ZCenter+Size)) >= 0.0f)

  continue;

 if(D3DXPlaneDotCoord(&m_Planes[i], &D3DXVECTOR3(XCenter+Size, YCenter+Size, ZCenter+Size)) >= 0.0f)

  continue;

 if(D3DXPlaneDotCoord(&m_Planes[i], &D3DXVECTOR3(XCenter+Size/2, YCenter+Size/2, ZCenter+Size/2)) >= 0.0f)

  continue;  

 return false;

}

return true;

}



para aclararos un poco, XCenter,YCenter y ZCenter es igual a XPos, YPos, ZPos en el dibujo, y width = Size:



y con esto, al acercarme mucho al terreno , algunos nodos no se renderizan:



(esto es solo en algunas posiciones de la camara). Aver si podriais saber xq :                                
#2635
General / Quien va al simo?
13 de Noviembre de 2002, 11:33:15 PM
                                1º Kien regalaba procesadores?? ? XD
2º lo digo por el aspecto del desarrollo, no otra campus party llena de gamers y leechers. Es decir, una especie de E3 casera xD                                
#2636
General / hm
13 de Noviembre de 2002, 05:06:10 PM
                                lo ke tendríamos kacer es reunirnos todos los desarrolladores de juegos amateur un dia del año en algun local, traer demos de nuestros juegos en desarrollo o trailers o algo y estar ahi un par de días, tos tiraos dormiendo en el local y tal, y a la vez pos ablando d los ke nos interesa, .. tanto simo y tanta ppolla muerta XD
eso sería el SIMIO, osea unos cuantos simios tiraos por ahgi XD                                
#2637
Programación gráfica / hmnm
11 de Noviembre de 2002, 07:15:08 PM
                                si, estaba mal eso. Pero peta en la creacion, y en la creacion el RECT no interviene para nada, es durante el render. :                                
#2638
Programación gráfica / Fuentes con ID3DXFont
11 de Noviembre de 2002, 01:29:42 AM
                                Mientras me curro un gestor de fuentes por sprites más curradillo, quiero hacer funcionar este metodo, pero, aun siendo la cosa mas simple delmundo, me falla. La cuestion es que me peta en ejecucion al hacer el D3DXCreateFont.


bool W3C_GFX_Font::Init(IDirect3DDevice8 *dev, HFONT handle, D3DCOLOR fcolor,

     float X1, float Y1, float X2, float Y2)

{

rect->left = (long)X1;

rect->right = (long)X2;

rect->top = (long)Y1;

rect->top = (long)Y2;



if (FAILED(D3DXCreateFont(dev,handle,&font))) // aqui peta

 return false;

return true;

}


dev es el device, bien creado ( a no ser que se necesite algo para hacer funcionar esto ..). font es un puntero a ID3DXFont. Y handle es un HFONT, que obtengo con (HFONT)GetStockObject(SYSTEM_FONT) en ejecucion.

Tambien he probado con D3DXCreateFontIndirect, ppero etaba igual. Alguien sabe ke leches pasa? o_O                                
#2639
General Programadores / Calcular Frames por segundo
11 de Noviembre de 2002, 01:26:15 AM
                                Vereis, tengo el siguiente codigo para calcular FPS:


float W3C_APP_Game::GetFPS()

{

unsigned long time,delay;

time = GetTickCount();

delay = time - oldTime;

oldTime = time;



return 1000.0/(double)delay;

}


y el resultado de esto, a cada frame, lo loggeo. Y siempre es 50 o 100.
Osea, el log es algo asi:
50
100
100
50
50
50
100
50
100
50
50
...

Y no se que falla. ¿que utilizais vosotros?                                
#2640
Programación gráfica / ein?
10 de Noviembre de 2002, 06:30:59 PM
                                z-bias? o_O                                





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.
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.