SceneKit 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。
クラス
_SCNShaderModifiers |
シェーダー スニペットのディクショナリ。 |
SCNAccelerationConstraint |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNAction |
外観、ジオメトリ、アニメーション、または任意の関数の変更を含む、 に対 SCNNodeしてアクションを実行します。 |
SCNActionable |
アクションの適用を許可します。 |
SCNActionable_Extensions |
プロトコルからSCNActionableのすべてのメソッドをISCNActionableサポートする インターフェイスへの拡張メソッド。 |
SCNAnimatable |
アニメーションの適用を許可します。 |
SCNAnimatable_Extensions |
プロトコルからSCNAnimatableのすべてのメソッドをISCNAnimatableサポートする インターフェイスへの拡張メソッド。 |
SCNAnimatableExtensions |
ISCNAnimatable の拡張メソッド。 |
SCNAnimation |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNAnimationEvent |
アニメーション中に特定の時刻に関数を実行します。 |
SCNAnimationPlayer |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNAudioPlayer |
位置指定 SCNAudioSource オーディオで使用する または AVAudioNode を保持します。 |
SCNAudioSource |
SceneKit シーン内の位置指定オーディオ用の再利用可能なオーディオ ソース。 |
SCNAvoidOccluderConstraint |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNAvoidOccluderConstraintDelegate |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNAvoidOccluderConstraintDelegate_Extensions |
プロトコルからSCNAvoidOccluderConstraintDelegateのすべてのメソッドをISCNAvoidOccluderConstraintDelegateサポートする インターフェイスへの拡張メソッド。 |
SCNBillboardConstraint |
を自動的に制約 SCNNode して、常に現在のレンダリング ノードを指します。 |
SCNBoundingVolume |
3D 空間でボリュームを定義する関数。 |
SCNBox |
SCNGeometry顔がすべて四角形である 。 |
SCNCamera |
視野や奥行きなどの属性を持つカメラを指定します。 |
SCNCameraController |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNCameraControllerDelegate |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNCameraControllerDelegate_Extensions |
プロトコルからSCNCameraControllerDelegateのすべてのメソッドをISCNCameraControllerDelegateサポートする インターフェイスへの拡張メソッド。 |
SCNCapsule |
SCNGeometryキャップ付き端を持つ円柱である 。 |
SCNCone |
SCNGeometry円錐台である 。 または、パーティーハット。 |
SCNConstraint |
ノードの変換を自動的に調整します。 |
SCNCylinder |
SCNGeometry右の円形円柱である 。 |
SCNDistanceConstraint |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNErrorCodeExtensions |
SceneKit.SCNErrorCode 列挙の拡張メソッド。 |
SCNFloor |
SCNGeometry無限平面である 。 |
SCNGeometry |
SceneKit geometry オブジェクトの基本クラス |
SCNGeometryElement |
頂点と描画プリミティブに関する情報を結合します。 GPU に送信された 1 つの描画コマンドにマップされます。 |
SCNGeometrySource |
SCNGeometryElements と組み合わせて 3D オブジェクトを定義する頂点データを提供します。 |
SCNGeometrySourceSemantic |
頂点モード属性を列挙します。 |
SCNGeometryTessellator |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNHitTest |
の引数HitTest(SCNVector3, SCNVector3, SCNHitTestOptions)で使用する |
SCNHitTestOptions |
SCNNode および SCNSceneRenderer でのヒット テストの構成オプション |
SCNHitTestResult |
特定のポイントまたはレイに沿って配置された SCNNode (存在する場合) に関する情報。 |
SCNIKConstraint |
SCNConstraint逆運動学を適用する 。 |
SCNJavaScript |
JavaScript モジュールをエクスポートするメソッドを含む静的クラス。 |
SCNLayer |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNLevelOfDetail |
ワールド空間または画面空間のしきい値でレンダリングされる代替ジオメトリを制御します。 |
SCNLight |
すべての SCNLightTypes に使用される光源。 |
SCNLightAttribute |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNLightingModel |
SceneKit.SCNMaterial.LightingModel プロパティで使用する定数。これは、ライトとマテリアルを組み合わせて特定のレンダリングされた色を生成する方法を定義します。 |
SCNLightType |
の型 SCNLightを列挙します。 |
SCNLookAtConstraint |
SCNConstraint別のノードを指すノードの向きを指定する 。 |
SCNMaterial |
SCNGeometry のサーフェスの照明特性とシェーディング特性を指定します。 |
SCNMaterialProperty |
のさまざまなプロパティ (色やテクスチャなど) SCNMaterialを構成します。 |
SCNMorpher |
1 つ以上のターゲット SCNGeometry オブジェクトへの SCNGeometry のアニメーション変換。 |
SCNNode |
シーン グラフ内のノード。 |
SCNNodeRendererDelegate |
カスタム OpenGL 描画コードを追加するためのデリゲート オブジェクト関数を定義するインターフェイス。 |
SCNNodeRendererDelegate_Extensions |
プロトコルからSCNNodeRendererDelegateのすべてのメソッドをISCNNodeRendererDelegateサポートする インターフェイスへの拡張メソッド。 |
SCNParticleProperty |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNParticlePropertyController |
SCNParticleSystem によって放出されるパーティクルのプロパティをアニメーション化します。 |
SCNParticleSystem |
開発者が指定した動作の小さなスプライトを出力します。 |
SCNPhysicsBallSocketJoint |
2 つの SCNPhysicsBody オブジェクトが互いに回転できるようにする SCNPhysicsBehavior。 |
SCNPhysicsBehavior |
1 つ以上の SCNPhysicsBody オブジェクトの動作を制御します。 |
SCNPhysicsBody |
物理シミュレーションを SCNNode に追加します。 |
SCNPhysicsConeTwistJoint |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNPhysicsContact |
2 つの SCNPhysicsBody オブジェクトが互いに接触する方法。 |
SCNPhysicsContactDelegate |
オブジェクト間 SCNPhysicsBody のタッチに応答するデリゲート オブジェクト関数.. |
SCNPhysicsContactDelegate_Extensions |
プロトコルからSCNPhysicsContactDelegateのすべてのメソッドをISCNPhysicsContactDelegateサポートする インターフェイスへの拡張メソッド。 |
SCNPhysicsContactEventArgs |
E:SceneKit.SCNPhysicsContactEventArgs.DidEndContact、:SceneKit.SCNPhysicsContactEventArgs.DidUpdateContact イベントのデータDidUpdateContactを提供します。 |
SCNPhysicsField |
特定のボリューム内のすべての SCNPhysicsBody オブジェクトに強制を適用します。 |
SCNPhysicsHingeJoint |
1 つの軸に沿って 2 つの SCNPhysicsBody オブジェクトをアタッチする SCNPhysicsBehavior。 |
SCNPhysicsShape |
SCNPhysicsBody のソリッド ボリューム。 衝突検出で使用されます。 |
SCNPhysicsShapeOptions |
SceneKit.SCNPhysicsShape.Create* で使用されるディクショナリの有効なキー |
SCNPhysicsShapeOptionsKeys | |
SCNPhysicsShapeOptionsTypes |
に関連付 SCNPhysicsShapeけられた幾何学的な型。 |
SCNPhysicsSliderJoint |
2 つの SCNPhysicsBody オブジェクトを接続する SCNPhysicsBehavior を使用すると、それらのオブジェクトをスライドさせて、接続ポイントの周りを回転できます。 |
SCNPhysicsTest |
M:SceneKit.SCNPhysicsWorld.ContactTest* で使用するための有効なオプション。 |
SCNPhysicsTestKeys |
検索、バックフェイス カリング、衝突テストを制御する値が含まれます。 |
SCNPhysicsTestSearchModeKeys |
返される競合の検索結果を制御する値を列挙します。 |
SCNPhysicsVehicle |
車輪付き車両の物理学をシミュレートする SCNPhysicsBehavior。 |
SCNPhysicsVehicleWheel |
SCNPhysicsVehicle 上のホイールの外観と物理的特性。 |
SCNPhysicsWorld |
SCNScene 内の衝突やその他の物理関連プロパティをモデル化する物理シミュレーション。 |
SCNPlane |
SCNGeometry四角形の片面有限平面である 。 |
SCNProgram |
OpenGL シェーディング言語で記述されたシェーダーを使用してカスタム レンダリングを実行します。 |
SCNProgramDelegate |
SCNProgram オブジェクトのデリゲート オブジェクト。 |
SCNProgramDelegate_Extensions |
プロトコルからSCNProgramDelegateのすべてのメソッドをISCNProgramDelegateサポートする インターフェイスへの拡張メソッド。 |
SCNProgramSemanticOptions |
でSetSemantic(NSString, String, SCNProgramSemanticOptions)使用する をMappingChannel定義します。 |
SCNPropertyControllers |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNPyramid |
SCNGeometry右四角形のピラミッドである 。 |
SCNReferenceNode |
SCNNodeシーン ファイルからコンテンツを読み込む 。 |
SCNRenderer |
SCNScene を OpenGL コンテキストにレンダリングします。 |
SCNRenderingArguments |
と SetSemantic(NSString, String, SCNProgramSemanticOptions)で使用するキーをRender(SCNNode, SCNRenderer, NSDictionary)定義します。 |
SCNRenderingOptions |
DictionaryContainerをインスタンス化するときに を定義 |
SCNReplicatorConstraint |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNScene |
3D シーンの最上位の説明。 |
SCNSceneExportDelegate |
ファイルへのシーンのエクスポートを処理するメソッドを定義するプロトコル。 |
SCNSceneExportDelegate_Extensions |
プロトコルからSCNSceneExportDelegateのすべてのメソッドをISCNSceneExportDelegateサポートする インターフェイスへの拡張メソッド。 |
SCNSceneLoadingOptions |
シーン読み込みのオプション。 |
SCNSceneRenderer |
インターフェイスの ISCNSceneRenderer 実装クラス。 |
SCNSceneRenderer_Extensions |
プロトコルからSCNSceneRendererのすべてのメソッドをISCNSceneRendererサポートする インターフェイスへの拡張メソッド。 |
SCNSceneRendererDelegate |
SCNRenderer クラスのデリゲート オブジェクトは、レンダリング イベントを反映するメソッドを定義します。 |
SCNSceneRendererDelegate_Extensions |
プロトコルからSCNSceneRendererDelegateのすべてのメソッドをISCNSceneRendererDelegateサポートする インターフェイスへの拡張メソッド。 |
SCNSceneSource |
ファイルまたは NSData オブジェクトからシーン定義データを読み取ります。 |
SCNSceneSourceLoadErrors |
の読み込み SCNSceneSource中に発生する可能性があるエラーの種類を列挙します。 |
SCNSceneSourceLoading |
SCNScene オブジェクトを作成および読み込むオプション。 |
SCNSceneSourceProperties |
シーン ファイルに関連付けられているメタデータ キー。 GetProperty(NSString) で使用されます。 |
SCNShadable |
ISCNShadable の実装です。 |
SCNShadable_Extensions |
プロトコルからSCNShadableのすべてのメソッドをISCNShadableサポートする インターフェイスへの拡張メソッド。 |
SCNShaderModifiers |
DictionaryContainerシェーダーのオプションを含む 。 |
SCNShape |
SCNGeometry 2D パスから作成され、必要に応じて 3 つのディメンションに押し出されます。 |
SCNSkinner |
スケルトン アニメーションをサポートしてシーン グラフにアクセスします。 |
SCNSliderConstraint |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNSphere |
SCNGeometry球である 。 |
SCNTechnique |
シェーダーを適用する追加の描画パスを提供します。 |
SCNTechniqueSupport |
ISCNTechniqueSupportの実装では、 へのSCNTechnique参照を保持するだけです。 |
SCNText |
文字列に基づく 。 SCNGeometry 必要に応じて 3 つの次元に押し出されます。 |
SCNTimingFunction |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNTorus |
SCNGeometryリング状のソリッドである 。 |
SCNTransaction |
一連の変更をアトミックに適用できるようにします。 |
SCNTransformConstraint |
SCNConstraintノードまたはノードへの変換 (位置、回転、スケール) の変更を指定する関数を実行する 。 |
SCNTube |
SCNGeometry中心軸に沿って穴がある円柱である 。 |
SCNView | |
SCNView.SCNViewAppearance |
型 SCNViewのオブジェクトの外観クラス。 |
構造体
SCNMatrix4 |
4 x 4 行列。 |
SCNQuaternion |
四元数を表し、それらを操作するメソッドを含みます。 |
SCNVector3 |
3 成分ベクトル。 |
SCNVector4 |
4 成分ベクトル。 |
インターフェイス
ISCNActionable |
プロトコル SCNActionableの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNAnimatable |
プロトコル SCNAnimatableの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNAnimationProtocol |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
ISCNAvoidOccluderConstraintDelegate |
プロトコル SCNAvoidOccluderConstraintDelegateの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNBoundingVolume |
プロトコル SCNBoundingVolumeの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNBufferStream |
カスタム シェーダーのメタル バッファーを管理するためのインターフェイス。 |
ISCNCameraControlConfiguration |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
ISCNCameraControllerDelegate |
プロトコル SCNCameraControllerDelegateの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNNodeRendererDelegate |
プロトコル SCNNodeRendererDelegateの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNPhysicsContactDelegate |
プロトコル SCNPhysicsContactDelegateの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNProgramDelegate |
プロトコル SCNProgramDelegateの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNSceneExportDelegate |
プロトコル SCNSceneExportDelegateの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNSceneRenderer |
プロトコル SCNSceneRendererの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNSceneRendererDelegate |
プロトコル SCNSceneRendererDelegateの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNShadable |
プロトコル SCNShadableの必要なメソッド (存在する場合) を表すインターフェイス。 |
ISCNTechniqueSupport |
プロトコル SCNTechniqueSupportの必要なメソッド (存在する場合) を表すインターフェイス。 |
列挙型
SCNActionTimingMode |
オブジェクトで使用するレート曲線を SCNAction 列挙します。 |
SCNAnimationImportPolicy |
アニメーション インポート ポリシーを列挙します。 |
SCNAntialiasingMode |
アンチエイリアシング動作を制御する値を列挙します。 |
SCNBillboardAxis |
によって SCNBillboardConstraint制約されたノードで使用できる軸のロックの列挙。 |
SCNBlendMode |
SceneKit がレンダー ターゲットに既に存在する色を持つマテリアルの色をブレンドする方法の列挙。 |
SCNBufferFrequency |
フレームごと、フレームごとのノードごと、またはシェーディングされたレンダリング可能なフレームごとのノードごとにハンドラーを呼び出すかどうかを制御する値を列挙します。 |
SCNCameraProjectionDirection |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNChamferMode |
を面取りする方法 SCNShape (前面、背面、または両側) を列挙します。 |
SCNColorMask |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNCullMode |
サーフェス SCNMaterial のどの面をレンダリングするかを決定する列挙。 |
SCNDebugOptions |
デバッグ オーバーレイ オプションを列挙します。 |
SCNErrorCode |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNFillMode |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNFilterMode |
テクスチャ フィルタリング モードの列挙。 |
SCNGeometryPrimitiveType |
2D ジオメトリ プリミティブの列挙。 |
SCNGeometrySourceSemantics |
ジオメトリ データのセマンティクスを列挙します。 |
SCNHitTestSearchMode |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNInteractionMode |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNMorpherCalculationMode |
の有効な補間式の CalculationMode列挙。 |
SCNMovabilityHint |
ノードが時間の経過と同時に移動することが予想されるかどうかを SceneKit に通知する値を列挙します。 |
SCNNodeFocusBehavior |
のフォーカス可能な状態を SCNNode列挙します。 |
SCNParticleBirthDirection |
によって放出されるパーティクルの初期方向を SCNParticleSystem列挙します。 |
SCNParticleBirthLocation |
によって放出されるパーティクルの初期位置の SCNParticleSystem列挙。 |
SCNParticleBlendMode |
によって出力される重なり合うパーティクルをレンダリングする方法の SCNParticleSystem 列挙。 |
SCNParticleEvent |
によって出力されるパーティクルのライフサイクル イベントの SCNParticleSystem列挙。 HandleEvent(SCNParticleEvent, NSString[], SCNParticleEventHandler) で使用されます。 |
SCNParticleImageSequenceAnimationMode |
パーティクルがイメージのシーケンスとしてレンダリングされる の再生モード SCNParticleSystemの列挙。 |
SCNParticleInputMode |
パーティクル プロパティのアニメーション化方法を列挙します (パーティクルの有効期間中、パーティクルが遠くを移動するとき、または別のプロパティに基づく場合)。 InputMode で使用されます。 |
SCNParticleModifierStage |
で AddModifier(NSString[], SCNParticleModifierStage, SCNParticleModifierHandler) 指定された修飾子を適用する必要がある瞬間を列挙します。 |
SCNParticleOrientationMode |
によって出力されるパーティクルの配置を SCNParticleSystem列挙します。 OrientationMode で使用されます。 |
SCNParticleSortingMode | |
SCNPhysicsBodyType |
が動的、キネマティクス、静的のいずれであるかを SCNPhysicsBody 指定する列挙体。 CreateBody(SCNPhysicsBodyType, SCNPhysicsShape) で使用されます。 |
SCNPhysicsCollisionCategory |
の衝突プロパティの SCNPhysicsBody既定値です。 |
SCNPhysicsFieldScope |
が境界線の内側または外側のオブジェクトに SCNPhysicsField 影響を与えるかどうかを指定する値を列挙します。 |
SCNPhysicsSearchMode |
返される物理検索結果を制御する値を列挙します。 |
SCNPhysicsShapeType |
のカテゴリの SCNPhysicsShape列挙。 |
SCNReferenceLoadingPolicy |
オブジェクトに対して可能な読み込みポリシーを SCNReferenceNode 列挙します。 |
SCNRenderingApi |
Metal または OpenGLES2 API を示す値を列挙します。 |
SCNSceneSourceStatus |
SCNSceneSource の状態を列挙します。 |
SCNShadowMode |
シャドウの計算時に制御する列挙。 |
SCNTessellationSmoothingMode |
SceneKit 名前空間は、高レベルのシーン グラフ ベースの 3D グラフィックスを提供します。 |
SCNTransparencyMode |
透過性を計算するための手法を列挙します。 |
SCNWrapMode |
テクスチャ ラッピング手法を列挙します。 |
代理人
注釈
Scene Kit は、階層的なシーン グラフに基づく 3D グラフィックス用のフレームワークです。
Scene Kit の基本的なクラスは、 SCNSceneすべてのコンテンツを保持する です。 T:CoreGraphics.SceneKit.SCNView は、 UIView を SCNSceneレンダリングする です。
には SCNScene 、 RootNode 型の プロパティがあります SCNNode。 SCNNodeの P:SceneKit.SCNNode.ChildNodes を持ち、 を実装 System.Collections.Generic.IEnumerable`1<class MonoTouch.SceneKit.SCNNode>
します。 のSCNNodeプロパティには、 型、 型、 型GeometrySCNCameraの 、 型LightSCNGeometryの 、 型の が含まれますCameraSCNLight。
さらに、すべての SCNNode プロパティにはPosition、 と と P:SceneKit.SCNNode.MaterialsP:SceneKit.SCNNode.Materials P:SceneKit.SCNNode.Materials に対する相対的SCNNodeParentNodeな空間内の位置を定義する プロパティがあります。SCNNode
次の例は、最小限のシーン キット ビューを示しています。
public MySceneView (RectangleF frame) : base(frame)
{
BackgroundColor = UIColor.Blue;
this.Scene = new SCNScene ();
var material = new SCNMaterial ();
material.Diffuse.Contents = UIImage.FromFile("textureX.png");
material.Specular.Contents = UIColor.Gray;
material.LocksAmbientWithDiffuse = true;
Scene.RootNode.Geometry = new SCNBox {
Width = 1,
Height = 1,
Length = 1,
ChamferRadius = 0.2f,
FirstMaterial = material
};
Scene.RootNode.Light = new SCNLight {
LightType = SCNLightType.Ambient,
Color = UIColor.Gray,
};
var camera = new SCNCamera ();
var cameraNode = new SCNNode () {
Camera = camera,
Position = new SCNVector3 (3, 3, 3),
Constraints = new SCNConstraint[] { SCNLookAtConstraint.Create(Scene.RootNode) }
};
Scene.RootNode.AddChildNode (cameraNode);
}
ジオメトリ
SceneKit のすべてのジオメトリは、 の SCNGeometryサブクラスによって記述されます。
SCNCapsule | 調節可能なエンド キャップが付いている丸薬形カプセル | |
SCNCone | 上部を切り捨てることができる円錐 | |
SCNBox | 四角形のボックス。 | |
SCNCylinder | 円柱。 | |
SCNFloor | その上のジオメトリを反映する機能を持つ無限平面。 | |
SCNPlane | 片側の四角形。 | |
SCNPyramid | 四面体。 | |
SCNShape | 3 番目の次元に押し出された 2D 図形。 | |
SCNSphere | ボール。 | |
SCNText | 押し出しテキスト。 | |
SCNTorus | ドーナツ図形。 | |
SCNTube | 適用されていない円柱。 |
さらに、SceneKit は からシーン全体を読み込むことができます。メソッドを使用した FromFile DAE ファイル。
最後に、開発者は M:SceneKit.SCNGeometry.Create(SceneKit.SCNGeometrySource[], SceneKit.SCNGeometryElement[]* メソッドを使用して、適切な SCNGeometrySource オブジェクトと SCNGeometryElement オブジェクトの配列を使用してカスタム ジオメトリを作成できます。 カスタム ピラミッドの作成を次に示します。
//Lower-left
var a = new SCNVector3(-1, -1, 0);
//Upper-right
var b = new SCNVector3(1, 1, 0);
var halfX = (c.X + a.X) / 2;
var halfY = (c.Y + a.Y) / 2;
var halfZ = (c.Z + a.Z) / 2;
var b = new SCNVector3(a.X, c.Y, halfZ);
var d = new SCNVector3(c.X, a.Y, halfZ);
//Elevate the midpoint so that it's clearly a pyramid
var midPoint = new SCNVector3(halfX, halfY, halfZ + 1.0);
//The vertices of the geometry
var locs = new [] {
a, b, c, d, midPoint
};
var locSource = SCNGeometrySource.FromVertices(locs);
//Note that this relies on the ordering of locs above
//and it defines triangles (could be triangle strips, etc.)
var indices = new [] {
//Triangles are defined counter-clockwise!
4, 1, 0,
1, 4, 2,
2, 4, 3,
3, 4, 0
};
var idxArray = new byte[indices.Length][];
for(int i = 0; i < idxArray.Length; i++)
{
idxArray[i] = BitConverter.GetBytes(indices[i]);
}
var idxData = NSData.FromArray(idxArray.SelectMany(id => id).ToArray());
//Note that this relies on indices defining triangles
var element = SCNGeometryElement.FromData(idxData, SCNGeometryPrimitiveType.Triangles, indices.Length / 3, sizeof(int));
//Normals are relative to geometry
var normals = new [] {
new SCNVector3(0, 0, 1),
new SCNVector3(0, 0, 1),
new SCNVector3(0, 0, 1),
new SCNVector3(0, 0, 1),
new SCNVector3(0, 0, 1),
};;
var normSource = SCNGeometrySource.FromNormals(normals);
//These texture coords will cause the texture to wrap
var txCoords = new [] {
new CGPoint(-1, -1),
new CGPoint(-1, 1),
new CGPoint(1, 1),
new CGPoint(1, -1)
};
var txCoordsSource = SCNGeometrySource.FromTextureCoordinates(txCoords);
var geometry = SCNGeometry.Create(new [] { locSource, normSource, txCoordsSource }, new [] { element });