[SceneKit專題]12-Shadows陰影

說明

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

此書對應的代碼地址github

SceneKit系列文章目錄app

不是全部燈光類型都有陰影,只有spot(點光源)和directional(方向光源)纔有投射陰影能力. post

QQ20170409-142240@2x.png

Directional shadows方向光源陰影

方向光源在投射陰影時比較奇怪,由於節點的scale屬性在很大程度上決定了陰影的範圍.方向光源是平行光,因此陰影大小和光源距離無關,這就是爲何要用scale屬性來控制下投影的可見範圍. 若是你使用了方向光源,可是卻看不到陰影,極可能你須要調整節點的scale屬性.性能

QQ20170411-203954@2x.png

下面的圖片就展現出調整方向光源節點的scale屬性對陰影的影響: 學習

QQ20170411-204017@2x.png

當scale設置爲1時,能夠清晰看到方塊陰影,當增長爲2時,能看到圓形的身體,可是仍然沒有手,鼻子和頭.最終增長到5時,才能看到全部的身體部分,甚至是尖尖的鼻子.3d

QQ20170411-205426@2x.png

  • Behaviour(行爲):決定光源是否投射陰影.
  • Color(顏色):決定陰影顏色,能夠修改顏色和透明度等級.
  • Sample radius(樣本半徑):產生若干疊加的陰影貼圖,值小則陰影銳利,值大則陰影邊緣柔軟.
  • Near/Far clipping(近/遠裁剪):超出範圍的任何物體將不會產生陰影.當有性能問題時應該設置
  • Scale(比例):決定產生陰影貼圖的分辨率,scale爲1將產生最高的分辨率,當scale越高產生的分辨率越低.
  • Sample count(樣本數):該參數和Sample radius(樣本半徑)參數共同做用.數值越大陰影邊緣越柔軟.
  • Bias(斜紋):有時候陰影渲染會出現問題,常稱爲shadow acne.能夠用該屬性來修復錯誤.

QQ20170411-213711@2x.png

QQ20170411-213724@2x.png

Spot shadows點光源陰影

QQ20170411-213847@2x.png
其中各個屬性的做用同方向光源陰影同樣.

QQ20170411-214006@2x.png
相關文章
相關標籤/搜索