說明
本系列文章是對<3D Apple Games by Tutorials>一書的學習記錄和體會
準備工作SCNFloor
建立前需要做一些準備工作,要建立一個可見的內容來展示.比如用floor地板 floor node地板節點是有特殊特性的節點.floor是一個向四方無限延伸的平面,無限大,而且還可以用做反射面.比如鏡子,水銀,水面.
拖動一個floor到場景中,更改名稱為Floor,設定位置等
- Identity(身份標識):Name是惟一的,決定性的,這樣當使用程式碼就可以拿到該物件.
- Position(位置):決定節點的擺放位置,相對於父節點.
- Euler Angles(尤拉角角度):決定節點相對於父節點的旋轉.pitch(俯仰), yaw(偏航) 和 roll(滾轉).
- Scale(縮放比例):對節點及其子節點應用全域性的縮放,也是相對於父節點.
- Reflectivity(反射率):控制表面反射,1.0完全鏡面反射,0.0不反射.
- Falloff Start/End:控制反射的漸變,從哪裡開始和結束.當Scene Kit渲染地板上的反射時,用了一個透明度漸變,它可以根據物體距離地板的距離使部分反射逐漸褪色.近的物體將渲染出銳利的反射,遠距離的物體則更模糊的反射.
- Resolution Factor(解析度):決定反射解析度的馬賽克程度.1.0會有1:1畫素級精確反射,而0.1將會看到粗糙,馬賽克的反射.這些計算對效能消耗很大,所以犧牲一些反射的質量可以讓你的遊戲執行更流暢.理解這個引數能讓你在效能優化時更方便.
相機有兩種:perspective(透視相機) orthographic(正交投影相機).
Perspective camera透視相機
在第一人稱射擊遊戲中很常見,產生近大遠小的深度知覺
- Projection(投影):xy視場範圍決定相機視野範圍.當xy都設定為0時,系統預設把垂直方向設定為60度,並根據螢幕比例來自動調整水平視野
- Z Clipping Range(Z軸裁剪範圍):決定了平頭截體深度範圍,小於Near和大於Far的物件將會被裁剪不渲染.
- Depth of Field(景深):控制相機光圈大小,可以聚集到某一點上產生虛化背景,但是會帶來很高的效能消耗.
- Category Bitmask(類掩碼):允許設定遮蔽物件,只看某些特殊的東西.
Orthographic Camera正交投影相機
遠近物體一樣大,比如吃豆人遊戲中
- Projection(投影):因為物體不管無管遠近都一樣大,所以當需要放大或縮小視場時不能通過改變距離調整,而要通過scale來放大或縮小視場.
- Z Clipping Range(Z軸裁剪範圍):決定了平頭截體深度範圍,小於Near和大於Far的物件將會被裁剪不渲染.
- Depth of Field(景深):控制相機光圈大小,可以聚集到某一點上產生虛化背景,但是會帶來很高的效能消耗.
- Category Bitmask(類掩碼):允許設定遮蔽物件,只看某些特殊的東西.