開発
条件は iPhone の一部機種のみだが、Xcode 12.2 の SceneKit の Game テンプレートを新規作成し、ビルドすると上下に黒い枠が出る。 (ランドスケープは左右にでる) UIWindowScene のデフォルトサイズなので、なんかなと思っていたら、LaunchScreen.storybo…
obj、glTF、USD ファイルをドラッグ&ドロップで USDZ へ変換できる Reality Converter の Beta 版がリリースされた。 開発者アカウントが必要になるが以下の URL からダウンロード可能。 https://developer.apple.com/news/?id=01132020adeveloper.apple.com…
忘れていたのでまとめてみる。 Swift でビルトイン実装されている SMID の機能と Swift Standard Library で SMID を引数として持つ関数が追加された。 SIMD Vector Types Swift Standard Library Functions Swift-Evolution - SIMD Additions (元ネタ) 追加…
今までの iOS では自前のフォント(カスタムフォント)の使用はアプリ内に制限されていたが、iOS 13 からは OS 機能として、自前のフォントのインストールと使用ができるようになり、 他のアプリでも自前のフォントが使用できるようになった。 フォントのイ…
Xcode 11 での SceneKit でマテリアルのライティングモデル (Lighting Model/Shading) では新しくShadow Only が追加された。 使用用途としては AR の際に影だけ描画したい場合など。 現状では AR の現実空間の表示は画像に過ぎないので、影を落とすことがで…
マテリアルにクリアコートが追加された。 車のボディ、プラモデルの塗装やネイルなどで使用される通常の塗装の上に透明な塗料を塗ることで塗装の光沢が変わる見た目を表す。 光沢を足すため暗いマテリアルのカラーだったり、クリアコートの Intensity の数値…
カメラで3つの機能が追加された。 Scene Editor で3つ目の機能を使用し操作すると現状では Xcode が 100% クラッシュするので注意。 プロパティやメソッドは過去記事参照。 Bloom の追加機能 Scene Editor 上でカメラの Bloom に Iteration と Spread のパラ…
スクリーンスペースリフレクション (Screen-Space Reflection) とは 前回のリフレクションプローブと異なりカメラから反射を推定する。 そのため正確な反射にならない場合が多いが、それっぽい感じの表現をすることができる。 リフレクションプローブはライ…
リフレクションプローブ(Reflection Probe)とは? ライトプローブ同様に周囲の光(色)をキューブマップとして焼き込み、周りの反射するマテリアルに適応する。設定方法はライトプローブと変わらない。 ARKit の environmentTexturing プロパティ、AREnvir…
エリアライト (Area Light) が追加された。 ライトタイプを area に変更するだけ。 let light = SCNLight() light.type = .area プロパティやメソッドなどは過去記事参照。 エリアライト いわゆる面光源。 diffuse に柔らかに光を当て、面光源の形状のハイラ…
リリース版が出たので詳細を書いていこうと思う。 コードのプロパティやメソッドは過去記事参照。 Scene Editor の変更 エリアライトの追加 リフレクションプローブの追加 シーン全体のスクリーンスペースリフレクションの追加 カメラの Bloom のプロパティ…
Beta 版から記事を起こしているため今後変更される可能性あり。 WWDC 19 のセッションで行なっていたように、Xcode 11 の SceneKit のシーンファイル (.scn) などを閲覧、編集を行う Scene Editor から USDZ ファイルを書き出すことができるようになった。 …
変更は大まかに 4 つだが、 ARView は RealityKit の機能なので割愛して 3 つ。 ARCamera ARCamera.TrackingState.Reason 以下のプロパティ、メソッド、演算子が追加。 var hashValue: Int func hash(into: inout Hasher) static func == (ARCamera.Tracking…
追記: SwiftUI での UISplitViewController の様な表示方法Multiple Windows 対応アプリでの閉じたウインドウ(アプリ)の復元 iOS 13 からシステムがかなり変更されるため、UI / UX について考えてみる。 大まかな変更が行われるのは以下のものだが、 現状、2…
ARSession stopTrackedRaycasts ドキュメント説明がないため詳細不明。 レイキャストを止めたか調べるものだと思われる。 static var stopTrackedRaycasts: ARSession.RunOptions { get } ARSession.CollaborationData ドキュメント説明がないため詳細不明。…
変更されたものは2つ。 simd framework から Swift Standard Liblary の SIMD Vector Types に変更された。 SCNVector3 init が float3 から SIMD3 double3 から SIMD3 に変更された。 init(SIMD3<Float>) init(SIMD3<Double>) SCNVector4 init が float4 から SIMD4 double</double></float>…
変更されたクラスは2つ。 simd framework から Swift Standard Liblary の SIMD Vector Types に変更された。 GKPolygonObstacle float2 から SIMD2 に変更された。 convenience init(points: [SIMD2<Float>]) convenience init(points: [float2]) GKPath init(poin</float>…
Beta 2 では AR の機能変更はない。 変更 / 追加 RealityKit の ARView なので厳密には ARKit ではないのだが、 ARView の Scene で Combine の Publisher 関連の関数が増えた。 Combine の Publisher で追加されたものがこちらでも適応されている。 publish…
追加 SCNMaterial、LightingModel で shadowOnly が追加された。 多分、AR などで影だけ表示するためのジオメトリのマテリアル用に追加されたのだろうと思う。 developer.apple.com 変更 修飾子 が unowned(unsafe) から weak に変更されたもの。 SCNParticl…
iOS 13 から ARKit に ARCoachingOverlayView が実装された。 ARCoachingOverlayView は AR でのセッション初期化中やリミテッドトラッキング状況で、ユーザーに視覚的な指示を表示する UI を提供する。 これまでは自力で実装していたものだが、iOS 13 では…
WWDC 2019 で ARKit 3 が発表された。 ARKit 3 に関する他の記事は Keynote と SwiftStrike を体験した範囲で書かれているものが多いため、アプリ開発側からどのような機能が増えたか公式ドキュメントとセッション動画から調べて書いてみた。 ARKit 3 で端末…
ARKit 3 の API の更新内容を調べてみた。 API の翻訳であるため新機能の詳しい説明はない。 新機能の概要に関しては別記事を参照。 ARView について 今回は書く量が多いので、ARView に関しては RealityKit の API を調べる際に書くかもしれないので割愛。 …
今回も SceneKit のセッションがなく、ドキュメントの説明もないのでメソッドやプロパティ名から予想。 間違っていたらすみません。 ちなみに、Scene Editor の変更がそれなりにありそうなのだが NDA 的に紹介できないのでそのうち。 長いので最初にまとめ …
3DCG レンダリングと AR 補助機能を持った RealityKit が発表された。 RealityKit の説明をしつつ、最後に SceneKit との違いを考えてみる。 今回はコードでの説明はないので注意。 現状 Beta 版であるため公開されている情報からのまとめ。 以下の情報に関…
SCNView の snapshot() メソッドでシーン自体のスクリーンショットを取得できる。 スレッドセーフでいつでも呼べるとはドキュメントには書いてあるが処理時間がかかるので連続で呼ぶとフレームが落ちる。 そのため、別の方法を使い Metal の命令から SceneKi…
今までに自分が作成してきたサンプルはジオメトリの影をテクスチャで表現してきたが、ライトを置きジオメトリの影を描画したい時があるかもしれない。 ARKit の場合、現実空間と仮想のジオメトリを合成するため、平面認識後アンカーノードとしてジオメトリを…
単体の simd や Accelerate フレームワークの simd ライブラリなどの一部が Swift 5 で使用できる様になった。 ちなみにクォータニオンはなく、関数も一部しかないので、 あくまでもデータを保存する型の様なものだと思ってもらえれば良い。 SIMD とは 以前…
SCNCamera にフリンジの設定があるので、 colorFringeStrength と colorFringeIntensity を調整するだけ。 let mainCamera = sceneView.pointOfView?.camera mainCamera?.colorFringeStrength = 5 mainCamera?.colorFringeIntensity = 0.5 Strength はフリン…
上の画像の様な感じ。 カメラから対象物となるジオメトリがフォーカスから外れるとジオメトリがある方向に、端末を回転する様に促す矢印の UI が出る。 今回はサクッとつくったため、あまり精度はないのでご了承いただきたい。 流れ overlayScene に左右矢印…
画像の色情報とともにジオメトリを配置 上の画像の様な感じでピクセル分だけジオメトリを複製してマテリアルに色を付ける。 各ジオメトリのマテリアルの色が変わる可能性があり、GPU による Geometry Instancing が働かず、 ドローコールが画像のピクセル分…