thanks for your kind comments:)
bloodred, i had to make some changes to the exported file. mainly:
you have to replace the engine specific matrix, vector and texture declarations and
move matWorldViewProj to the second place in the mul instrinct.
then, and that was hard to find by trial and error, i had to change this:
Code:
     
Out.normal = normal;
Out.viewVec = vecViewPos - vPos;



to that:
Code:
  
Out.normal = mul(normal,matWorld);
Out.viewVec = vecViewPos - mul(vPos,matWorld);


to make the reflection and refraction to look what it should.

btw: i found this checker.fx on the web but it works on a geforce fx and not on my radeon 9800. there all is black. maybe someone can tell why, have a look:


Code:
 
/*****************************************************************************
Comments:
This example demonstrates the use of the ddx() and ddy() functions to
create a self-antialiased checkerboard shader. The checkerboard pattern
is entirely generated by the pixel shader. No texture maps are used.

By Mark Granger
Serious Magic Inc.
******************************************************************************/

/******** UN-TWEAKABLES *************************************/

float4x4 matWorldViewProj : WorldViewProjection;

/******** TWEAKABLES ****************************************/

float4 WhiteColor : Diffuse = {1.0f, 1.0f, 1.0f, 1.0f};

float4 BlackColor = {0.0f, 0.0f, 0.0f, 1.0f};

float Scale = 0.11;

float Blur = 1.0;

/****************** Data Structures ********************/

/* Data from application vertex buffer */
struct appdata {
float3 Position : POSITION;
float4 UV : TEXCOORD0;
float4 Normal : NORMAL;
};

/* Data passed from vertex shader to pixel shader */
struct vertexOutput {
float4 HPosition : POSITION;
float3 TexCoord : TEXCOORD0;
};

/******************** Vertex Shader ********************/

vertexOutput VertexChecker(appdata IN) {
vertexOutput OUT;

// Convert the object space vertex position to a four dimensional coordinate
float4 Po = float4(IN.Position, 1.0);

// Project the coordinate into screen space
OUT.HPosition = mul( Po,matWorldViewProj);

// Scale the object space vertex to create the texture coordinate
OUT.TexCoord = IN.Position * Scale;
return OUT;
}

/******************** Pixel Shader *********************/

float4 PixelChecker(vertexOutput IN) : COLOR {

// ddx(IN.TexCoord) gives the change in the texture coordinate when the screen pixel coordinate's x value is incremented by one
// ddy(IN.TexCoord) gives the change in the texture coordinate when the screen pixel coordinate's y value is incremented by one
// take the absolute value of each of these to determine the size of the texture region in x and y
// take the maximum of these to determine the actual texture region at the current screen pixel

float3 d = max(abs(ddx(IN.TexCoord)), abs(ddy(IN.TexCoord)));

// Scale the texture region by the blur factor
d *= Blur;

// To generate a checker, create a box function where 0 to 0.25 is is black and 0.25 to 0.5 is white.
// The texture region is used to create a smooth step betwen black and white centered at 0.25. This will generate
// anti-aliased gray values at the edges of the checkerboard pattern
d = smoothstep(0.25 - d, 0.25 + d, abs(frac(IN.TexCoord) - 0.5));

// The final chekerboard pattern is the x pattern inverted by the y pattern and inverted again by the z pattern
float check = d.x;
check = lerp(check, 1.0 - check, d.y);
check = lerp(check, 1.0 - check, d.z);

// The checker value is used to interpolate between any two colors
return lerp(WhiteColor, BlackColor, check);
}

/**************************************/

technique Checker
{
pass p0
{
VertexShader = compile vs_2_0 VertexChecker();
ZEnable = true;
ZWriteEnable = true;
CullMode = none;
AlphaBlendEnable = false;
SrcBlend = One;
DestBlend = One;
PixelShader = compile ps_2_a PixelChecker();
}

}

/*************************************/





www.earthcontrol.de
quoted: We want to maintain a clean, decent, American family suited forum look... which means you may post zombies or chainsaw massacres, but no erotic.