1、SceneKit簡介
SceneKit(SK)是WWDC12推出的OS X平台的Cocos 3D渲染引擎框架。支持粒子效果,物理模擬,腳本事件,多程渲染,支持iOS平台。SceneKit整合了Core Image,Core Animation之類的圖形框架,現在還整合進了SpriteKit。SceneKit是基於OpenGL構建的。
2、相關類說明
3、ModellO.h
基於I/O框架的橋梁,就是通過ModelIO給相關類(SCNScene、SCNLight、SCNCamera、SCNGeometry、SCNMaterial等)添加類別。
4、SceneKit.h
所有和SceneKit庫相關的類的頭文件。
5、SceneKitTypes.h
在SceneKit中使用到的各種類型(如枚舉值、結構體)。還有一個NSValue的類別,在給節點SCNNode做動畫時可以用:
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"rotation"]; animation.duration = 10.0; animation.toValue = [NSValue valueWithSCNVector4:SCNVector4Make(0, 1, 0, 2*M_PI)]; animation.repeatCount = MAXFLOAT; [self.node addAnimation:animation forKey:@"node"];
6、SCNAction.h
主要負責節點SCNNode的屬性,實現node的漸變、移動、出現、消失、實現動畫等。
7、SCNAnimation.h
創建以預定方式移動場景元素的聲明性動畫(設置動畫時間、路徑、速率等),或管理使用外部創作工具導入的動畫(通過URL:animationWithContentsOfURL實現動畫)。
8、SCNAudioSource.h
用於添加聲音,簡單可重復使用的音頻源。
9、SCNBoundingVolume.h
使用這個協議來獲取或者判斷節點和幾何體的邊界框,只有三個方法。
10、SCNCAAnimationExtensions.h
遵循SCNAnimation協議,給CAAnimation添加類別,獲取動畫相關信息。
11、SCNCamera.h
被稱為照相機或者攝像機,可以附加到節點以提供顯示場景的角度。其實就是用戶視角和人的眼睛一樣。
12、SCNCameraController.h
SCNCameraController是攝像機(SCNCamera)的操作類。
13、SCNConstraint.h
SCN約束是一個抽象類,它表示可以應用於節點的單個約束,根據指定的規則自動調整節點的位置或方向。
14、SCNGeometry.h
負責呈現三維模型的類,它管理者物體的形狀、紋理等。
15、SCNHitTest.h
有關搜索位於指定點或指定線段(或光線)的場景元素的結果的詳細信息(如節點、坐標等)。
16、SCNJavascript.h
在指定的JavaScript上下文中導出ScEnKIT的符號(常量和類定義)。(用於macos系統)
17、SCNLevelOfDetail.h
SCNLevelOfDetail代表模型的細節層次,比如獲取SCNGeometry屬性等。
18、SCNLight.h
用於添加光源,連接到一個節點照亮現場,可以給場景添加不同的燈光,模擬逼真的環境。
19、SCNMaterial.h
用於設定模型的外觀屬性。
20、SCNMaterialProperty.h
用於設置模型的各種特性,比如材質的紋理和顏色等。
21、SCNMorpher.h
管理節點基於模型與一個或者多個目標模型之間平滑過渡,也就是控制幾何圖形的變形。
22、SCNNode.h
場景圖的結構元素,表示3D坐標空間中的位置和變換,您可以將模型,燈光,相機或其他可顯示內容附加到該元素。
23、SCNParametricGeometry.h
用於獲取模型的相關信息。
24、SCNParticleSystem.h
使用您指定的一般行為的高級仿真,管理動畫和渲染小圖像精靈或粒子的系統。(用於macos(10.10))
25、SCNPhysicsBehavior.h
SCNPhysicsBehavior是一個抽象的類,它代表了物理世界中的一種行為。(用於macos(10.10))
26、SCNPhysicsBody.h
SCNPhysicsBody類描述了節點的物理特性(如質量、摩擦等)。(用於macos(10.10))
27、SCNPhysicsContact.h
SCNPhysicsContact類包含有關物理接觸的信息(節點等)。(用於macos(10.10))
28、SCNPhysicsField.h
SCNPhysicsField類是描述在物理世界中應用的力場的抽象類。(用於macos(10.10))
29、SCNPhysicsShape.h
SCNPhysicsShape代表一個物理體的形狀,(用於macos(10.10))
30、SCNPhysicsWorld.h
SCNPhysicsWorld類描述並允許控制3D場景的物理模擬。SCNPhysicsWorld類不應該直接分配,而是使用物理世界屬性從SCNScene類檢索。
31、SCNReferenceNode.h
一個場景圖節點,用作要從單獨的場景文件加載的內容的占位符。
32、SCNRenderer.h
用於在現有的Metal工作流程或OpenGL上下文中顯示SceneKit場景的渲染器。
33、SCNScene.h
SCNScene是呈現出來的場景,一個具有附加的幾何圖形,燈光,相機和其他屬性的節點層次,這些屬性一起形成一個可顯示的3D場景。
34、SCNSceneRenderer.h
SCNView,SCNLayer和SCNRenderer類通用的方法和屬性。
35、SCNSceneSource.h
管理與從文件或數據加載場景內容相關的數據讀取任務。
36、SCNShadable.h
使用Metal或OpenGL着色器程序自定義SceneKit渲染幾何和材質的方法。
37、SCNSkinner.h
管理骨骼動畫與其動畫的節點和幾何之間的關系的對象。
38、SCNTechnique.h
增加或后處理SceneKit渲染場景的規范,使用額外的繪圖通過定制的Metal或OpenGL着色器。
39、SCNTransaction.h
SceneKit動畫基於Core Animation 框架,可以隱式或顯式創建。
隱式創建是實際是通過動畫節點的一些動畫屬性來實現:SceneKit自動在run loop一次運行期間對一個場景包含節點屬性的所有改變組合成一個原子操作,稱為一個事務,由SCNTransaction 類表示;當設置SCNTransaction類的動畫周期不為0時,所有對節點動畫屬性的改變自動執行動畫。
顯式創建動畫時,可以選擇CAAnimation一種類型的子類來創建特定類型的動畫。
40、SCNView.h
SCNView用於顯示SceneKit的3D內容,在iOS系統上是UIView的子類,因此可以把SCNView類添加到UIView上。