Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Error Al Compilar Vertex Shader...

Iniciado por Helius, 21 de Diciembre de 2005, 07:12:20 PM

« anterior - próximo »

Helius

 Hola,

Estoy tratando de compilar todos los shaders que tengo pero usando MDX 2.0 y tengo una serie de problemas.

Primero me da el el error "X2001: Shader version expected". Por lo que sospecho que quiere que le ponga la versión dentro del shader, ya que ahora con MDX 2.0 se usa la función Shader.FromFile() para compilar y esta función no acepta la versión como parámetro.

Bien, pues si le pongo la versión al principio del shader me dice siempre "error X2000: syntax error: unexpected token 'float4x4'" con lo que esté a continuación de la versión.

¿¿Alguien sabe como compilar con esta versión?? porque con la antigua me compilaban perfectamente.

Dejo el código de uno muy simple:

vs_2_0;

float4x4 view_proj_matrix;

//////////////////////////////////////////////////////////////////////

struct VS_INPUT
{
float4 Pos:   POSITION;
float2 Tex0:  TEXCOORD0;
float3 Normal:  NORMAL;
float3 Tangent:     TANGENT0;
float3 Binormal:    BINORMAL0;
};

struct VS_OUTPUT
{
float4 Pos:   POSITION;
float2 Tex0:  TEXCOORD0;
};

//////////////////////////////////////////////////////////////////////

VS_OUTPUT Main(VS_INPUT In)
{
VS_OUTPUT Out;

Out.Pos = mul(view_proj_matrix, In.Pos);

Out.Tex0 = In.Tex0;

return Out;
}
Geardome Devlog
Tutoriales sobre DirectX 9, Nintendo DS y PSP.

zupervaca

 Prueba a poner esto al final del archivo:

// Tecnica que se usara
technique Basica
{
   pass P0
   {
 VertexShader = compile vs_2_0 RenderSceneVS();
 PixelShader  = compile ps_2_0 RenderScenePS();
   }
}

RenderSceneVS es la función que se llama cuando se quiere tratar un vértice y RenderScenePS es la función que se llama cuando se quiere pintar un píxel. Puedes tener varias técnicas para el renderizado aunque si solo existe una te la coge automáticamente pongas el nombre que le pongas. vs_2_0 puede ser vs_1_0, vs_1_1, etc a lo mismo que el ps_2_0.
No obstante como programando shaders soy un cazurro(*) aun, puede que ni siquiera sea lo que estabas preguntando :lol:.

Cazurro: Dicese del que esta empanado(*) o es un bruto.
Empanado: Algo remojado en pan rallado y huevo. :lol:

Haddd

 Ni idea. Ya sufrimos muchísimo con MDX 1.1 y hemos decidido no utilizar el 2.0 hasta que esté bien probado. :blink:  

Helius

 No uso effects, uso los shaders a pelo, por lo que lo de la technique no me sirve.

Mi duda es si está bien escrita la definición de la versión del shader al principio del archivo. La defino así:

vs_2_0;

Sé que con los shaders en ASM había que ponerlo de esta manera: "vs.1.1"...

Saludos.
Geardome Devlog
Tutoriales sobre DirectX 9, Nintendo DS y PSP.






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.