como puedo hacer eso en hlsl??? esque solo tengo los de mi geforce 4 ti 4600 :)
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.