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.
Ya está, hay que pasarle la textura al effect <_<
Pero si no usas un pixel shader no tienes porque hacerlo, no?
No tiene nada que ver usar o no un PS en este caso