hlsl.vsd
上传用户:junlon
上传日期:2022-01-05
资源大小:39075k
文件大小:1k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // file: hlsl.vsd
  2. // 
  3. float4x4 mWorldViewProj;  // World * View * Projection transformation
  4. float4x4 mWorldView;
  5. float lowest;
  6. float highest;
  7. float4 lightDir;
  8. float ambient;
  9. // 雾参数
  10. float nearFog;
  11. float farFog;
  12. struct VS_OUTPUT{
  13. float4 Pos: POSITION;
  14. float4 Color: COLOR;
  15. float3 Tex: TEXCOORD0;
  16. float Fog: TEXCOORD1;
  17. };
  18. VS_OUTPUT main(float4 pos: POSITION, float2 tex: TEXCOORD0, float4 color: COLOR, float4 normal: NORMAL)
  19. {
  20. VS_OUTPUT Out;
  21. Out.Pos = mul(pos, mWorldViewProj);
  22. float bright = dot(normal, normalize(lightDir)) + ambient;
  23. Out.Color = color * bright;
  24. Out.Tex.x = tex.x;
  25. Out.Tex.y = tex.y;
  26. Out.Tex.z = (pos.y - lowest)/(highest - lowest);
  27. float4 posMulView = mul(pos, mWorldView);
  28. float fogPara = (length(posMulView.xyz) - nearFog)/(farFog - nearFog);
  29. Out.Fog = clamp(fogPara, 0.0f, 1.0f);
  30. return Out;
  31. }