[SceneKit专题]8-Lights灯光

说明

本系列文章是对<3D Apple Games by Tutorials>一书的学习记录和体会node

此书对应的代码地址git

SceneKit系列文章目录github

surface normal表面法线

表面上某一点的法向量(Normal Vector)指的是在该点处与表面垂直的方向。对于平面,其上各点的法向是同样的,统一为这个平面的法向。对于曲面,各点具备不一样的法向量. 正确设置网格面上点的法向,对几何体在光照等状况下显示得更真实,这样就能够减小顶点数量,提升渲染速度app

QQ20170404-204747@2x.png

  • Normal vectors(法向量):红色的线,垂直于表面
  • Light source vector(光源向量):黄色的线
  • Surface shading(表面着色):每一个面的颜色都不一样,是计算光源向量和表面法线的夹角,夹角小则表面亮,夹角大则表面暗.
  • View source vector(视点源向量):假想的从相机发出的向量.
  • Surface culling(表面剔除):只有面向相机的表面才是可见的,这样渲染引擎就能决定哪一个表面能够剔除不渲染.

Sphere nodes球体节点

QQ20170404-212339@2x.png

QQ20170404-212352@2x.png

QQ20170404-212403@2x.png

球体有两种,但实际,二者的不一样就在于Geodesic复选框有没有选中,能够互相切换工具

  • Radius(半径):设置球体的尺寸.
  • Segment count(分段数):Scene Kit是使用不少小多边形连结在一块儿造成网格来模拟曲面的.分段数控制着生成球体时的片断数量,片断越多,球体越光滑,多边形数量也越多,固然渲染时花费的时间也越长,能够设置小一些.
  • Geodesic(测地线):影响两种球体的多边形风格生成.默认状况下,表面是由简单的小四边形组成,可是测地线球体使用相同面积的三角形来组成网格
    QQ20170404-212427@2x.png
  • Diffuse(漫反射):被光线照亮后漫反射出的颜色.
  • Specular(镜面反射):控制材料反光,闪亮属性,白色则强烈反光,黑色昏暗不光滑.
    QQ20170404-212436@2x.png
    材料检查器中找到setting区
  • Shininess(镜面光洁):该值越小,表示材质越粗糙,点光源发射的光线照射到上面,也能够产生较大的亮点。该值越大,表示材质越相似于镜面,光源照射到上面后,产生较小的亮点。
  • Fresnel(菲涅耳):若是你站在湖边,低头看脚下的水,你会发现水是透明的,反射不是特别强烈;若是你看远处的湖面,你会发现水并非透明的,但反射很是强烈。这就是“[菲涅尔]效应”。

Light nodes灯光节点

WX20171203-135243@2x.png

  • Omni light(泛光灯):从一个点向全部方向发光,就像太阳同样.可是在3D游戏中模拟太阳时,泛光灯并非最好选择,由于太阳光到达地球时,更接近于平行光.通常该类型适用于烛光或者灯泡光.
  • Directional light(平行光):带有方向的平行光,通常用来模拟到达地面的太阳光.
  • Spot light(点光源):从一个点发出的有方向的光,呈圆锥形.适用于聚光灯,好比直升机上的探照灯.
  • Ambient light(环境光):环境光控制场景中的全局明亮程度.也能够理解为用来控制场景中阴影的黑暗程度.
  • IES light(IES光):即光度光源.它利用真实世界的物理测量结果来定义一个光探针,包括形状,方向和光照强度.这些信息储存在*Illuminating Engineering Society (IES)*定义的标准格式文件中.你会发现许多制造商会根据他们产品的光照特色发布出对应的IES文件.要使用IES光源,你必须根据IES文件的URL来建立SCNLightTypeIES类型灯光.
  • Light Probe(光探针):光探针不是真实的光源.当把光探针放在场景中时,它会采样当前位置的全部方向的光的颜色和强度.而后用这些信息来给场景中不一样位置的材质着色.例如,当将一个纯白色的物体放在一堵五彩斑斓的墙附近时,物体上就会映照出墙体的颜色.

Three point lighting三点光照法

让3D图像更真实的秘密就是使用真实世界的光照技术,好比在摄影办很流行的三点光照系统. post

QQ20170404-212231@2x.png

  • Key light(主光源):最主要的光源,从正面照亮物体.
  • Back light(背光源):位于物体后方,和主光源相对的位置.主要目的是造成边缘光效果,使物体边缘高亮.
  • Fill light(补光光源):和主光源垂直,主要目的是控制物体阴影的黑暗程度.

QQ20170405-233421@2x.png

  • Mode(模式):Dynamic(动态的)或者Baked(烘焙的).光源处理移动或者被照亮的节点会移动,就使用动态Dynamic模式.当使用外部3D创做工具创做光照贴图,并将光照效果烘焙到场景中的物体纹理时,可以使用烘焙模式.
  • Color(颜色):光的颜色
  • Attenuation(衰减):控制光源在距离上的强烈程度.小于Start距离的是彻底100%光照,大于End距离的是无光照,中间按Falloff衰减

看图理解三点光照系统,Front light和Back light是Omni类型,环境光是Ambient类型. 学习

QQ20170405-234533@2x.png