[SceneKit專題]8-Lights燈光

蘋果API搬運工發表於2017-12-25

說明

本系列文章是對<3D Apple Games by Tutorials>一書的學習記錄和體會

此書對應的程式碼地址

SceneKit系列文章目錄

surface normal表面法線

表面上某一點的法向量(Normal Vector)指的是在該點處與表面垂直的方向。對於平面,其上各點的法向是一樣的,統一為這個平面的法向。對於曲面,各點具有不同的法向量. 正確設定網格面上點的法向,對幾何體在光照等情況下顯示得更真實,這樣就可以減少頂點數量,提高渲染速度

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影像更真實的祕密就是使用真實世界的光照技術,比如在攝影辦很流行的三點光照系統.

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

相關文章