Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: boubou en 22 de Febrero de 2004, 04:06:20 PM

Título: Especificar Version De Los Shaders
Publicado por: boubou en 22 de Febrero de 2004, 04:06:20 PM
 como puedo hacer eso en hlsl??? esque solo tengo los  de mi geforce 4 ti 4600  :)
Título: Especificar Version De Los Shaders
Publicado por: BeRSeRKeR en 22 de Febrero de 2004, 04:23:01 PM
 Si lo que quieres decir es cómo decirle al compilador HLSL para qué versión quieres compilar el shader, en la función:

HRESULT WINAPI D3DXCompileShader(LPCTSTR pSrcData,
   UINT srcDataLen,
   CONST D3DXMACRO* pDefines,
   LPD3DXINCLUDE pInclude,
   LPCTSTR pFunctionName,
   LPCTSTR pTarget,
   DWORD Flags,
   LPD3DXBUFFER* ppShader,
   LPD3DXBUFFER* ppErrorMsgs,
   LPD3DXSHADER_CONSTANTTABLE* ppConstantTable
);


el parámetro pTarget indica cual será la versión. Así, tienes que los posibles valores son (sacado de MSDN):

Vertex shader targets: vs_1_1, vs_2_0, vs_2_sw
Pixel shader targets: ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw
Texture fill targets: tx_0, tx_1

Si en lugar de utilizar esa función, utilizas los archivos fx, entonces puedes especificarlo en el propio archivo fx. Por ejemplo:

technique technique_name
{
   pass pass_name
   {          
       VertexShader = compile vs_2_0 vertexShader();
       PixelShader  = compile ps_2_0 pixelShader();
   }
}


Saludos.