ShaderJoy —— 基础光照模型公式与源码【GLSL】

举报
ShaderJoy 发表于 2021/12/29 23:57:46 2021/12/29
【摘要】 Lambert 光照效果【基于 Raytrace 实现】 Lambert 光照模型是一种经验的光照模型,其理论基础是 Lambert 余弦定理。主要是用来模拟粗糙物体表面的光照现象,它并没有考虑镜面反射部分     /// @note 球心和球面上一点做差,计算球面法线vec3 normal_at(vec...

Lambert 光照效果【基于 Raytrace 实现】

Lambert 光照模型是一种经验的光照模型,其理论基础是 Lambert 余弦定理。主要是用来模拟粗糙物体表面的光照现象,它并没有考虑镜面反射部分

 

 


  
  1. /// @note 球心和球面上一点做差,计算球面法线
  2. vec3 normal_at(vec3 s_c, vec3 point)
  3. {
  4. return normalize(point - s_c);
  5. }
  6. void mainImage( out vec4 fragColor, in vec2 fragCoord )
  7. {
  8. vec2 uv = fragCoord.xy / iResolution.xy;
  9. float aspect_ratio = iResolution.x / iResolution.y;
  10. uv.x *= aspect_ratio;
  11. uv.x += (1.0 - aspect_ratio) / 2.0;
  12. //vec2 mouse_loc = vec2(iMouse.x / iResolution.x, iMouse.y / iResolution.y);
  13. //vec2 mouse_loc = vec2(0.5) + 0.2*vec2(sin(0.05 * iTime), cos(0.05 * iTime));
  14. vec2 mouse_loc = vec2(0.5);
  15. //vec3 sphere_centre = vec3(0.2);
  16. vec3 sphere_centre = vec3(mouse_loc.x, 0

文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。

原文链接:panda1234lee.blog.csdn.net/article/details/51970893

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。