Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Color En Wireframe

Iniciado por Haddd, 24 de Febrero de 2004, 10:32:44 PM

« anterior - próximo »

Haddd

 Quiero que al estar en modo WireFrame me dibuje las líneas de un color que yo especifique.

Este es el shader:


//----------------------------------------------------------------------------------
//***********Las siguientes variables DEBEN tener EXACTAMENTE este nombre***********

float4x4    WorldViewProjection;
float4 Color_Pixel;

//----------------------------------------------------------------------------------

struct VS_INPUT
{
  float3 position:     POSITION;
};

struct VS_OUTPUT
{
  float4 position:     POSITION;
};

VS_OUTPUT VShader( VS_INPUT vin )
{
  VS_OUTPUT vout;
 
  // En la definición de shader utilizamos un float3 para la posición y necesitamos convertirlo a un float4
 
  float4 Posicion_Vertice=float4(vin.position,1.0f);
 
  vout.position = mul(Posicion_Vertice,WorldViewProjection);

  return vout;
}


struct PS_OUTPUT
{
  float4 color0:       COLOR0;
};

PS_OUTPUT PShader()
{
  PS_OUTPUT pout;
 
  pout.color0= Color_Pixel;

  return pout;
}

technique RenderScene
{
   pass p0
   {
       VertexShader = compile vs_1_1 VShader();
       PixelShader = compile ps_1_1 PShader();
   }
}



Las texturas se ponen a NULL.

Pues me dibuja el wireframe en blanco  :blink:

He probado poniendo el valor en el diffuse, pero nada.

¿ideas?

BeRSeRKeR

 Prueba a en vez de poner esto:

PS_OUTPUT PShader()
{
 PS_OUTPUT pout;

 pout.color0= Color_Pixel;

 return pout;
}


esto:

PS_OUTPUT PShader()
{
 PS_OUTPUT pout;

 pout.color0= float4(cualquier_color_menos_blanco);

 return pout;
}


Esto es para asegurarse de que el problema no está al pasar el color al pixel shader. Si aún así sale blanco, el problema estará en algún render state.

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

Haddd

 ya lo probé y sale blanco. Pero aquí los RenderStates no deben afectar, a no ser que en modo wireframe, los pixelshaders NO actuen

BeRSeRKeR

 Pues he hecho una prueba en RenderMonkey. En wireframe, como era de esperar, cambia el color de la malla al que tú le especifiques en el pixel shader. Lo único que he hecho ha sido especificar el modo wireframe y el resto de render states como los pone Direct3D por defecto.

Así que imagino que será algún render state...

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

MA]Mestre

 
Citara no ser que en modo wireframe, los pixelshaders NO actuen

El modo wireframe, ( fill o points ) establece como se rasterizan los poligonos, el siguiente stage del pipeline son las operaciones de pre-fragment, asi que los pixel shaders deberian funcionar con wireframe.

Yo tb pienso que pueden ser algun estado del render... con el mismo código, lo renderizas fill, se ve ok ?

Un Saludo.




Haddd

 Ya está, he descubierto el error. El problema es que no hacia el Pass del effect. :blink:

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.