Underwater.fx
上传用户:henghua
上传日期:2007-11-14
资源大小:7655k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // oi oi
  2. float4x4 mViewProj;
  3. float4x4 mView;
  4. float4x4 mWorld;
  5. float4 view_position;
  6. float3 watercolour;
  7. float sun_shininess, sun_strength;
  8. float3 sun_vec;
  9. texture texDiffuse;
  10. struct VS_INPUT
  11. {
  12.     float3 Pos      : POSITION;
  13. float3 Normal   : NORMAL;
  14. float2 tc : TEXCOORD0;
  15. };
  16. struct VS_OUTPUT
  17. {
  18.     float4  Pos : POSITION;    
  19. float2 tc : TEXCOORD0;
  20. float fade : TEXCOORD1;
  21. float4 colour : COLOR0;
  22. };
  23. sampler sDiffuse = sampler_state
  24. {  
  25.     Texture = <texDiffuse>; 
  26.     MipFilter = NONE; 
  27.     MinFilter = LINEAR; 
  28.     MagFilter = LINEAR; 
  29. AddressU  = CLAMP;
  30. AddressV  = CLAMP;
  31. };
  32. VS_OUTPUT VShader(VS_INPUT i)
  33. {
  34.     VS_OUTPUT o;
  35. o.Pos = mul(float4(i.Pos.x, 0.75*i.Pos.y,i.Pos.z, 1), mWorld);
  36. o.Pos = mul(o.Pos, mViewProj);
  37. o.tc = i.tc;
  38. o.colour = dot(sun_vec,i.Normal);
  39. o.fade = 0.3 + 0.7 * saturate(-i.Pos.y*0.04);
  40. return o;
  41. }
  42. float4 PShader(VS_OUTPUT i) : COLOR
  43. {
  44.     return lerp(i.colour*tex2D(sDiffuse, i.tc), float4(watercolour,1),i.fade);
  45. }
  46. technique T0
  47. {
  48.     pass P0
  49.     {        
  50. pixelshader = compile ps_2_0 PShader();
  51. vertexshader = compile vs_1_1 VShader();
  52. }
  53. }