Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Haddd en 16 de Octubre de 2003, 05:27:00 PM

Título: Efectos Y Declaraciones
Publicado por: Haddd en 16 de Octubre de 2003, 05:27:00 PM
 Bien, tengo este shader en un effect:

//-----------------------------------------------------------------------------
// Name: RenderSceneVS
// Type: Vertex shader                                      
// Desc: This shader computes standard transform and lighting
//-----------------------------------------------------------------------------
VS_OUTPUT2 RenderSceneVS2( float4 vPos : POSITION,
                        float2 vTexCoord0 : TEXCOORD0 )
{
   VS_OUTPUT2 Output;
   float3 vNormalWorldSpace;
 
   // Transform the position from object space to homogeneous projection space
   Output.Position = mul(vPos, WorldViewProjection);
     
   // Just copy the texture coordinate through
   Output.TextureUV = vTexCoord0;
   
   return Output;    
}


Y tengo esta declaración en mi programa:

static D3DVERTEXELEMENT9 PosTex1[] =
{
   { 0,0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_POSITION,0 },
   { 3,0,D3DDECLTYPE_FLOAT2,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_TEXCOORD,0 },
   D3DDECL_END()
};


La cuestión es que quiero dibujar un cubo texturado. El cubo se dibuja pero no aparece texturado, aparece negro.

La cuestión es..¿no debo declara el vértice como FLOAT4? Pero si lo hago no sale nada

¿ Puede ser los effects me hagan un SetTexture() a NULL sin yo decirles nada y por eso no lo veo?

Este mismo effect con mallas de D3DX sí que funciona, así que no es culpa del efect.
Título: Efectos Y Declaraciones
Publicado por: Haddd en 18 de Octubre de 2003, 09:23:50 AM
 Ya está, hay que pasarle la textura al effect <_<  
Título: Efectos Y Declaraciones
Publicado por: MChiz en 18 de Octubre de 2003, 10:58:05 AM
 Pero si no usas un pixel shader no tienes porque hacerlo, no?
Título: Efectos Y Declaraciones
Publicado por: Haddd en 18 de Octubre de 2003, 01:44:03 PM
 No tiene nada que ver usar o no un PS en este caso