Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Texturizar Skyboxes

Iniciado por CoLSoN2, 21 de Noviembre de 2002, 07:03:51 PM

« anterior - próximo »

CoLSoN2

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

                                Estás modulando la textura con el diffuse. ¿Tienes diffuse?, porque si no lo tienes, te saldrá todo negro. No modules si no lo necesitas, utiliza SELECT_ARG1                                

Mars Attacks

                                A mí me recuerda a cuando tratas de cargar una imagen que, o bien no es potencia de 2, o no es del mismo formato (ya sea en cuanto a profundidad de color o compresión) que el que admite el cargador.                                

CoLSoN2

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

                                ¿tienes la iluminación activada?                                

Mars Attacks

                                ¿Es un tga?                                

CoLSoN2

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

                                ¿ y el FVF como lo tienes?                                

CoLSoN2

                                el mismo que uso para todo:


#define FVF_VERTEX1 (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_DIFFUSE|D3DFVF_TEX1)
                               
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

Mars Attacks

                                ¿Y el bmp está guardado sin compresión? A veces pasan cosas curiosas y basta con editar el bmp y volver a guardarlo sin cambiar nada.                                

Haddd

                                Si en el FVF tienes FVF_NORMAL y no defines la normal en el cubo, es lógico que te salga mal. Quítale lo de FVF_NORMAL.                                

CoLSoN2

                                ombre, no uso nada de iluminacion, y tampoco uso normales en el terreno usando ese mismo FVF y se me ve perfectamente, pero voi a probar..... nop, sigue =                                
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

Repoker

                                Hola Colson :)

Emm.. no estoy nada puesto en Direct3D pero en OpenGL me ha pasado alguna vez algo parecido y era por culpa de que las normales estaban apuntando hacia el interior del cubo ! XD prueba a mirar si ell error viene de ahi :P

Posiblemente no lo sea, pero es relativamente facil de ver :P                                

CoLSoN2

                                para ke sirven las normales aparte de para iluminacion ? (t recuerdo k la tengo desactivada)                                
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

                                ¿Porque no pones la estructura sVertex?
¿Puede ser que tengas un problema al cargar la textura y poer eso se vea negro, puesto que le pasas un NULL?                                






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.