[SceneKit專題]7-Cameras相機

說明

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

此書對應的代碼地址git

SceneKit系列文章目錄github

準備工做SCNFloor

建立前須要作一些準備工做,要建立一個可見的內容來展現.好比用floor地板 floor node地板節點是有特殊特性的節點.floor是一個向四方無限延伸的平面,無限大,並且還能夠用作反射面.好比鏡子,水銀,水面. 性能優化

QQ20170404-142607@2x.png

拖動一個floor到場景中,更更名稱爲Floor,設置位置等 app

QQ20170404-142651@2x.png

  • Identity(身份標識):Name是唯一的,決定性的,這樣當使用代碼就能夠拿到該對象.
  • Position(位置):決定節點的擺放位置,相對於父節點.
  • Euler Angles(歐拉角角度):決定節點相對於父節點的旋轉.pitch(俯仰), yaw(偏航) 和 roll(滾轉).
  • Scale(縮放比例):對節點及其子節點應用全局的縮放,也是相對於父節點.

QQ20170404-142702@2x.png
屬性檢查器是和類型相關的,下面是floor的屬性

  • Reflectivity(反射率):控制表面反射,1.0徹底鏡面反射,0.0不反射.
  • Falloff Start/End:控制反射的漸變,從哪裏開始和結束.當Scene Kit渲染地板上的反射時,用了一個透明度漸變,它能夠根據物體距離地板的距離使部分反射逐漸褪色.近的物體將渲染出銳利的反射,遠距離的物體則更模糊的反射.
  • Resolution Factor(分辨率):決定反射分辨率的馬賽克程度.1.0會有1:1像素級精確反射,而0.1將會看到粗糙,馬賽克的反射.這些計算對性能消耗很大,因此犧牲一些反射的質量可讓你的遊戲運行更流暢.理解這個參數能讓你在性能優化時更方便.

QQ20170404-142714@2x.png
地板沒有顏色很難被看到,因此選擇材料檢查器,點擊Diffuse選擇顏色

相機有兩種:perspective(透視相機) orthographic(正交投影相機).

Perspective camera透視相機

在第一人稱射擊遊戲中很常見,產生近大遠小的深度知覺 post

QQ20170404-133542@2x.png

  • Projection(投影):xy視場範圍決定相機視野範圍.當xy都設置爲0時,系統默認把垂直方向設置爲60度,並根據屏幕比例來自動調整水平視野
  • Z Clipping Range(Z軸裁剪範圍):決定了平頭截體深度範圍,小於Near和大於Far的對象將會被裁剪不渲染.
  • Depth of Field(景深):控制相機光圈大小,能夠彙集到某一點上產生虛化背景,可是會帶來很高的性能消耗.
  • Category Bitmask(類掩碼):容許設置屏蔽對象,只看某些特殊的東西.

Orthographic Camera正交投影相機

遠近物體同樣大,好比吃豆人遊戲中 性能

QQ20170404-133905@2x.png

  • Projection(投影):由於物體無論無管遠近都同樣大,因此當須要放大或縮小視場時不能經過改變距離調整,而要經過scale來放大或縮小視場.
  • Z Clipping Range(Z軸裁剪範圍):決定了平頭截體深度範圍,小於Near和大於Far的對象將會被裁剪不渲染.
  • Depth of Field(景深):控制相機光圈大小,能夠彙集到某一點上產生虛化背景,可是會帶來很高的性能消耗.
  • Category Bitmask(類掩碼):容許設置屏蔽對象,只看某些特殊的東西.
相關文章
相關標籤/搜索