【Unity Shaders】学习笔记之固定着色器命令(二)

一、准备

 在开始着色之前,我们需要创建一个场景(Scene)供我们使用,然后在场景里创建一个球体(Sphere)。

   1.1 Diffuse

   漫反射计算一个简单的(Lambertian)光照模型。光照强度随着入射光线与表面的夹角减小而减小。光照强度只依赖于这个夹角,而且不会随着相机的移动或者旋转而改变。
Shader "liulongling/t1"
{
    Properties
    {
        _MainTex("主纹理",2D)="white"{}
        _DiffuseColor("漫反射",Color)=(1,1,1,1)
    }

    SubShader
    {
        Pass
        {

            Material
            {
                Diffuse[_DiffuseColor]//漫反射
            }
        }
    }
}


提示:这里把漫反射颜色改为红色后,球体颜色并未发生改变,是因为只有开启灯光之后,顶点光照才会有作用,材质块中的设定才会有效,所以加上代码Lighting On | Off:开启或关闭顶点光照 效果才会出来!如下:

   1.2 Lighting


这里写图片描述
效果出来了有木有..

   1.3 Specular Properties 高光属性 

  Specular 和 Diffuse 使用同样简单的光照模型,另外增加了一个和观察角度相关的反射高光。这个叫做Blinn-Phong 高光模型。它包含了一个反射高光,取决于物体反射高光物体表面角度,光线入射角度和观察角度。这种高光计算方法实际上恰好是模拟实时光源模糊反射的一种方法。高光模糊等级通过检视面板里的Shininess来控制。

_Specular("高光",Color) =(1,1,1,1)
Specular[_Specular]//高光 

这里写图片描述

注意:貌似加了高光前后并没有什么效果,这是为什么呢?因为只有开启独立高光SeparateSpecular On看到镜面反射后 才有效果

  1.4 SeparateSpecular 

  SeparateSpecular On | Off:开启独立镜面反射。这个命令会添加高光光照到着色器通道的末尾,因此贴图对高光没有影响。只在光照开启时有效!

这里写图片描述

  1.5 Emission 

  自发光颜色,当不被任何光照所照到时,对象的颜色。

Properties
{
  _Emission("自发光",Color)=(1,1,1,1)
}

SubShader
{
    Emission[_Emission]//自发光
}

这里写图片描述

  1.6 Shininess 

  加亮时的光泽度,在0和1之间。0的时候你会发现更大的高亮也看起来像漫反射光照,1的时候你会获得一个细微的亮斑。

这里写图片描述

  1.7 Cull

  要想保持30FPS的同时处理数十万的三角形,以现在的主流机器来说还是有些困难的。为了提高效率,人们提出了很多方法,其中包括LOD、Culling 
剔除,就是被挡住或视角以外的我们看不到的物体,因为它们无关紧要,所以我们就不去绘制,以节省资源,提高场景的运行效率 
比如立方体,你不会看到背离你的面,因此我们不需要绘制出背面,因此也被称做背面剔除 
语法:Cull Back | Front| Off 
Cull Back—— 不绘制背离观察者的几何面 
Cull Front—— 不绘制面向观察者的几何面 
Cull Off —— 显示所有面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值