shadow_volume.shader
上传用户:qccn516
上传日期:2013-05-02
资源大小:3382k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /* shadow volume shader
  2.  *
  3.  * written by Alexander Zaprjagaev
  4.  * frustum@frustum.org
  5.  * http://frustum.org
  6.  */
  7. <vertex_local0> ilight
  8. <vertex>
  9. !!ARBvp1.0
  10. ATTRIB xyz = vertex.attrib[0];
  11. PARAM mvp[4] = { state.matrix.mvp };
  12. PARAM light = program.local[0];
  13. TEMP v;
  14. SUB v, xyz, light;
  15. DP3 v.w, v, v;
  16. RSQ v.w, v.w;
  17. MUL v, v, v.w;
  18. MUL v, v, 10000.0;
  19. SUB v.w, 1.0, xyz.w;
  20. MAD v, v, v.w, xyz;
  21. MOV v.w, 1.0;
  22. DP4 result.position.x, mvp[0], v;
  23. DP4 result.position.y, mvp[1], v;
  24. DP4 result.position.z, mvp[2], v;
  25. DP4 result.position.w, mvp[3], v;
  26. MOV result.color, { 0, 0.1, 0, 1.0 };
  27. END
  28. /* only for Radeons
  29.  * analog of depth clamp extension
  30.  */
  31. #ifdef RADEON
  32. <fragment>
  33. !!ARBfp1.0
  34. MOV_SAT result.depth, fragment.position.z;
  35. END
  36. #endif /* DEPTH_CLAMP */