說明
本系列文章是對<3D Apple Games by Tutorials>一書的學(xué)習(xí)記錄和體會此書對應(yīng)的代碼地址
準(zhǔn)備工作SCNFloor
創(chuàng)建前需要做一些準(zhǔn)備工作,要創(chuàng)建一個可見的內(nèi)容來展示.比如用floor地板
floor node地板節(jié)點(diǎn)是有特殊特性的節(jié)點(diǎn).floor是一個向四方無限延伸的平面,無限大,而且還可以用做反射面.比如鏡子,水銀,水面.

QQ20170404-142607@2x.png
拖動一個floor到場景中,更改名稱為Floor,設(shè)置位置等

QQ20170404-142651@2x.png
- Identity(身份標(biāo)識):Name是惟一的,決定性的,這樣當(dāng)使用代碼就可以拿到該對象.
- Position(位置):決定節(jié)點(diǎn)的擺放位置,相對于父節(jié)點(diǎn).
- Euler Angles(歐拉角角度):決定節(jié)點(diǎn)相對于父節(jié)點(diǎn)的旋轉(zhuǎn).pitch(俯仰), yaw(偏航) 和 roll(滾轉(zhuǎn)).
- Scale(縮放比例):對節(jié)點(diǎn)及其子節(jié)點(diǎn)應(yīng)用全局的縮放,也是相對于父節(jié)點(diǎn).

QQ20170404-142702@2x.png
屬性檢查器是和類型相關(guān)的,下面是floor的屬性
- Reflectivity(反射率):控制表面反射,1.0完全鏡面反射,0.0不反射.
- Falloff Start/End:控制反射的漸變,從哪里開始和結(jié)束.當(dāng)Scene Kit渲染地板上的反射時,用了一個透明度漸變,它可以根據(jù)物體距離地板的距離使部分反射逐漸褪色.近的物體將渲染出銳利的反射,遠(yuǎn)距離的物體則更模糊的反射.
- Resolution Factor(分辨率):決定反射分辨率的馬賽克程度.1.0會有1:1像素級精確反射,而0.1將會看到粗糙,馬賽克的反射.這些計算對性能消耗很大,所以犧牲一些反射的質(zhì)量可以讓你的游戲運(yùn)行更流暢.理解這個參數(shù)能讓你在性能優(yōu)化時更方便.

QQ20170404-142714@2x.png
地板沒有顏色很難被看到,所以選擇材料檢查器,點(diǎn)擊Diffuse選擇顏色
相機(jī)有兩種:perspective(透視相機(jī)) orthographic(正交投影相機(jī)).
Perspective camera透視相機(jī)
在第一人稱射擊游戲中很常見,產(chǎn)生近大遠(yuǎn)小的深度知覺

QQ20170404-133542@2x.png
- Projection(投影):xy視場范圍決定相機(jī)視野范圍.當(dāng)xy都設(shè)置為0時,系統(tǒng)默認(rèn)把垂直方向設(shè)置為60度,并根據(jù)屏幕比例來自動調(diào)整水平視野
- Z Clipping Range(Z軸裁剪范圍):決定了平頭截體深度范圍,小于Near和大于Far的對象將會被裁剪不渲染.
- Depth of Field(景深):控制相機(jī)光圈大小,可以聚集到某一點(diǎn)上產(chǎn)生虛化背景,但是會帶來很高的性能消耗.
- Category Bitmask(類掩碼):允許設(shè)置屏蔽對象,只看某些特殊的東西.
Orthographic Camera正交投影相機(jī)
遠(yuǎn)近物體一樣大,比如吃豆人游戲中

QQ20170404-133905@2x.png
- Projection(投影):因為物體不管無管遠(yuǎn)近都一樣大,所以當(dāng)需要放大或縮小視場時不能通過改變距離調(diào)整,而要通過scale來放大或縮小視場.
- Z Clipping Range(Z軸裁剪范圍):決定了平頭截體深度范圍,小于Near和大于Far的對象將會被裁剪不渲染.
- Depth of Field(景深):控制相機(jī)光圈大小,可以聚集到某一點(diǎn)上產(chǎn)生虛化背景,但是會帶來很高的性能消耗.
- Category Bitmask(類掩碼):允許設(shè)置屏蔽對象,只看某些特殊的東西.