   Cubemap problem
  Hello all,im experiencing something strange, i'm doing a 3D work for a client, it's basically a port where ships are drawn based on their real position in the world. The ship coordinates (longitude/latitude) arrive to us from an antenna on the top of our building then we place the ships in the right spot in our simulated 3D world.The problem i have is, im using a cubemap for the sky and im using the same cubemap even in the water surface (reflective part of the water shader), the weird thing is, everything works fine on the following video cards:Radeon 1950ProRadeon 9800ProGeforce 6200 TurbocacheGeforce 7900GSon the other hand, when i went to the client and started the project the result was very strange:On the client's Geforce 8800GTS the Cubemap is all pixelated, the texture details are completely lost, it looks like that pixels are taken randomly and drawn :/, this happens both in the sky and both in the reflective water shader.This is how it should look like, view is from top, the clouds on the water are the result of the reflection, the water is perturbed to simulate waves.Working (ignore the difference in aspect, took the screenoshot with different window size):I've tried Direct3D demos on the same puter, and they work fine (HDRCUbemap and others), so im pretty sure im doing something wrong, but i can't really understand what, addressing the cubemap as a 2D texture (tex2D instead of tex3D) showed that the texture is indeed loaded correctly.Now im posting the sky shaders:this is the vertex shader:float4x4 g_mWVP   : register(c0);float4x4 g_mW: register(c4);float4x4 g_mV: register(c8);float4   g_Diffuse: register(c12);float4   g_Ambient: register(c13);float4   g_Specular: register(c14);float4   g_Emissive: register(c15);float4   g_ViewPos: register(c32);float4   g_ViewEye: register(c33);float4   g_LightPos: register(c34);float3   g_LightDir: register(c35);struct VS_OUTPUT{float4 Pos   : POSITION;float3 N: TEXCOORD0;float3 V: TEXCOORD1;};struct VS_INPUT{float4 Pos    : POSITION;float3 Normal : NORMAL;float2 Tex    : TEXCOORD0;};VS_OUTPUT main(VS_INPUT i){VS_OUTPUT o = (VS_OUTPUT)0;o.Pos = mul(i.Pos, g_mWVP);o.N = mul(i.Normal, g_mW);float3 PosWorld = mul(i.Pos, g_mW);o.V = g_ViewPos - PosWorld;return o;}this is the pixel shader:float4   g_Diffuse: register(c4);float4   g_Ambient: register(c5);float4   g_Specular: register(c6);float4   g_Emissive: register(c7);sampler3D texSampler0: register(s0);struct PS_OUTPUT{    float4 Color : COLOR0;};struct PS_INPUT{    float3 N: TEXCOORD0;    float3 V: TEXCOORD1;};PS_OUTPUT main(PS_INPUT i){    PS_OUTPUT o = (PS_OUTPUT)0;    float3 N = normalize(i.N);    float3 V = normalize(i.V);    float3 tC = tex3D(texSampler0, -V);    o.Color = float4(tC, 1);    return o;}PS: Im not using the effects interface (which is nice i know), i'm manually compiling and setting shaders.   
  "tex3D" ist definitily wrong. What you want is "texCUBE". Maybe the drivers of the other boards corrected the sampling instruction or they don't even care for what instruction you use because they derive it from the texture type bound to the sampler... who knows. tex3D is definitly wrong, I deem this one case of "why did this ever work so far?"Bye, Thomas   ;  Wtf, you are damn right, tex3D is for Volume textures!.*slaps himself thousand times*This might be what i was doing wrong, hopefully.Thanks Thomas!   ;  Hello again,i verified on the client and confirm that the problem was indeed what you said, it's still quite strange (and maybe worrysome) that it worked on so many cards tested :-).Thanks again Thomas.   ;Quote:Original post by BumpMappedi verified on the client and confirm that the problem was indeed what you said, it's still quite strange (and maybe worrysome) that it worked on so many cards tested :-).Yes, that bothered me as well. We got some interesting insight of how samplers work internally today :-) Glad to see the problem is solved!Bye, Thomas