美文网首页
unity shader 进阶

unity shader 进阶

作者: 日常P | 来源:发表于2017-12-24 10:19 被阅读0次

    一.法向量与光照计算:

    image.png

    1.计算法向量:(U,V的顺序相当重要,取决于坐标系类型,这里为左手坐标系,即将左手大拇指指向法向量,四指环绕的方向决定了U,V的顺序为顺时针)


    image.png

    2.向量叉积:(用于计算法向量,U,V的顺序决定了V1,V2,从而决定了叉积的顺序)

    .png
    ![.png](https://img.haomeiwen.com/i8760155/0f6ff2fabbc05db1.png?imageMogr2/auto-orient/strip%7CimageVi[图片上传中...(image.png-c83113-1513330632257-0)]
    ew2/2/w/1240)

    二.diffuse光照模型:

    image.png

    1.diffuse包含两个部分:diffuse(漫反射)+ambient(环境光)
    2.N(normal法线)和L(lighting环境光),dot(N,L)为计算向量N,L的点积,反应了cos(a)的数值


    dot<0接受光照,dot>=0不接受光照,即做一个背面剔除.png

    3.diffuse中最重要的几个点:

    image.png

    三.specular镜面反射模型

    1.计算反射向量R的方法(unityCG函数库中reflect函数可用)


    image.png

    四.phong模型,即环境光+漫反射+镜面反射模型

    漫反射需要一次点积,镜面反射求反射向量时也要进行一次点积,但是下面的模型求镜面反射时不需要求反射向量,而是通过用入射向量(光)与平面指向摄像机的向量的和H来计算H与N的夹角,夹角越小,镜面反射越强

    五.blinnPhong模型,即在phong基础上进行一次点积优化的模型

    image.png

    六光照贴图(Lightmapping):

    参考自https://www.cnblogs.com/tgycoder/p/4853534.html
    Lightmapping光照贴图技术是一种增强静态场景光照效果的技术,其优点是可以通过较少的性能消耗使静态场景看上去更加真实,丰富,更加具有立体感;缺点是不能用来实时地处理动态光照。当游戏场景包含了大量的多边形时,实时光源和阴影对游戏的性能的影响会很大。这时使用Lightmapping技术,将光线效果预渲染成贴图使用到多边形上模拟光影效果。

    相关文章

      网友评论

          本文标题:unity shader 进阶

          本文链接:https://www.haomeiwen.com/subject/ojvdwxtx.html