【Unity Shader】光照模型

  • 光照模型
    • Lambertian
      • 各向同性的光照模型,与视角无关,效率高,用于低模的情况较多,属于 Unity 内置光照模型,使用时只需要声明 #pragma surface surfFunc Lambertian 即可,不需要额外方法
      • 光照强度,即该表面顶点处的颜色的相关性: I = NdotL = dot (normal, lightDir)
    • 简单的自定义光照模型,#pragma surface surfFunc modelFunc,然后声明一个方法 Lighting + modelFunc 即可,会自动调用,参数为 (SurfaceOutput s, half3 lightDir, half3 viewDir, half atten)
      • atten 是光照的衰减量
    • Phong
      • I = Ia Ka + Id Kd + Is Ks
        • N = normal
        • L = lightDir
        • V = viewDir
        • R = reflect(N, L) = normalize(2.0 * normal * NdotL - lightDir)
        • Kd = NdotL
        • Ks = pow(max(RdotV, 0), power) 
    • Blinn Phone
      • 与 Phone 不同之处在于 Ks,原因是 RdotV = |R||V|cos(a),当 a 超过九十度的时候变黑丢失细节了,视角与光源在被照射物体同一侧时很容易发生,所以需要改善
      • H = normalize(V + L)
      • Ks = pow(max(NdotH, 0), power)
    • Toon Shader
      • 属于非真实渲染的着色方式
      • 基于冷色和暖色调的渲染,采用一些光照模型,并将明暗与色调相结合
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值