說明
本系列文章是對<3D Apple Games by Tutorials>一書的學習記錄和體會git
此書對應的代碼地址github
SceneKit系列文章目錄app
不是全部燈光類型都有陰影,只有spot(點光源)和directional(方向光源)纔有投射陰影能力. post
Directional shadows方向光源陰影
方向光源在投射陰影時比較奇怪,由於節點的scale屬性在很大程度上決定了陰影的範圍.方向光源是平行光,因此陰影大小和光源距離無關,這就是爲何要用scale屬性來控制下投影的可見範圍. 若是你使用了方向光源,可是卻看不到陰影,極可能你須要調整節點的scale屬性.性能
下面的圖片就展現出調整方向光源節點的scale屬性對陰影的影響: 學習
當scale設置爲1時,能夠清晰看到方塊陰影,當增長爲2時,能看到圓形的身體,可是仍然沒有手,鼻子和頭.最終增長到5時,才能看到全部的身體部分,甚至是尖尖的鼻子.3d
- Behaviour(行爲):決定光源是否投射陰影.
- Color(顏色):決定陰影顏色,能夠修改顏色和透明度等級.
- Sample radius(樣本半徑):產生若干疊加的陰影貼圖,值小則陰影銳利,值大則陰影邊緣柔軟.
- Near/Far clipping(近/遠裁剪):超出範圍的任何物體將不會產生陰影.當有性能問題時應該設置
- Scale(比例):決定產生陰影貼圖的分辨率,scale爲1將產生最高的分辨率,當scale越高產生的分辨率越低.
- Sample count(樣本數):該參數和Sample radius(樣本半徑)參數共同做用.數值越大陰影邊緣越柔軟.
- Bias(斜紋):有時候陰影渲染會出現問題,常稱爲shadow acne.能夠用該屬性來修復錯誤.
Spot shadows點光源陰影
其中各個屬性的做用同方向光源陰影同樣.