lightFuncV.glsl
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:1k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file lightFuncV.glsl
  3.  *
  4.  * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
  5.  * $License$
  6.  */
  7. float calcDirectionalLight(vec3 n, vec3 l)
  8. {
  9. float a = max(dot(n,l),0.0);
  10. return a;
  11. }
  12. float calcPointLight(vec3 v, vec3 n, vec4 lp, float la)
  13. {
  14. //get light vector
  15. vec3 lv = lp.xyz-v;
  16. //get distance
  17. float d = length(lv);
  18. //normalize light vector
  19. lv *= 1.0/d;
  20. //distance attenuation
  21. float da = clamp(1.0/(la * d), 0.0, 1.0);
  22. //angular attenuation
  23. da *= calcDirectionalLight(n, lv);
  24. return da;
  25. }