タグ付けされた質問 「scenekit」

2
コードでSceneKit SCNSkinnerオブジェクトを作成する方法は?
iOS 8のSceneKitを使用するSwiftアプリがあります。スケルトンによって制御されるメッシュを含む.daeファイルからシーンをロードします。実行時に、テクスチャ座標を変更する必要があります。変換の使用はオプションではありません-メッシュ内の各頂点に対して異なる完全に新しいUVを計算する必要があります。 SceneKitではジオメトリが不変であることを知っています。推奨されるアプローチは手動でコピーを作成することです。私はそれをやろうとしていますがSCNSkinner、コードを再作成しようとするといつもクラッシュします。クラッシュはEXC_BAD_ACCESS内部C3DSourceAccessorGetMutableValuePtrAtIndexです。残念ながら、これのソースコードはないので、なぜそれがクラッシュするのか正確にはわかりません。SCNSkinnerメッシュノードに接続されているオブジェクトに絞り込みました。設定しないと、クラッシュせず、問題なく動作しているように見えます。 編集:これはクラッシュのより完全なコールスタックです: C3DSourceAccessorGetMutableValuePtrAtIndex C3DSkinPrepareMeshForGPUIfNeeded C3DSkinnerMakeCurrentMesh C3DSkinnerUpdateCurrentMesh __CFSetApplyFunction_block_invoke CFBasicHashApply CFSetApplyFunction C3DAppleEngineRenderScene ... SCNSkinnerオブジェクトを手動で作成する方法に関するドキュメントやサンプルコードは見つかりませんでした。私は以前に機能していたメッシュに基づいて作成しているだけなので、それほど難しくはないはずです。SCNSkinnerSwiftのドキュメントに従ってを作成し、正しいものすべてをinitに渡します。ただし、SCNSkinner設定方法がわからないスケルトンプロパティがあります。SCNSkinnerコピーしているメッシュの元のスケルトンに設定しましたが、これはうまくいくと思いますが、実際はそうではありません。スケルトンプロパティを設定すると、割り当てられていないように見えます。割り当ての直後にチェックすると、まだnilであることがわかります。テストとして、元のメッシュのスケルトンプロパティを別のプロパティに設定しようとしましたが、割り当て後も変更されませんでした。 誰かが何が起こっているのかについて何か光を当てることができますか?または、SCNSkinnerオブジェクトを手動で正しく作成および設定する方法は? これが手動でメッシュを複製して新しいものに置き換えるために使用しているコードです(ここではソースデータを変更していません-この時点でコピーを作成できることを確認しようとしています)。 : // This is at the start of the app, just so you can see how the scene is set up. // I add the .dae contents into its own node in the scene. …
89 swift  xcode  ios8  scenekit 

2
iOSはカメラの投影を元に戻します
宇宙のQRコードに関連するデバイスの位置を推定しようとしています。私はiOS11で導入されたARKitとVisionフレームワークを使用していますが、この質問への答えはおそらくそれらに依存していません。 Visionフレームワークを使用すると、カメラフレームのQRコードの境界となる長方形を取得できます。この長方形を、QRコードを標準位置から変換するために必要なデバイスの平行移動と回転に一致させたいと思います。 たとえば、フレームを観察すると、次のようになります。 * * B C A D * * 一方、QRコードから1m離れていて、その中心にあり、QRコードの辺が10cmであると仮定すると、次のようになります。 * * A0 B0 D0 C0 * * これらの2つのフレーム間のデバイス変換はどのようになっていますか?観測されたQRコードがわずかに非平面であり、完全に1つではないものでアフィン変換を推定しようとしているため、正確な結果が得られない可能性があることを理解しています。 後者は、この問題について私が興味を持っていないARKitから推測された変換をすでに考慮してsceneView.pointOfView?.camera?.projectionTransformいるsceneView.pointOfView?.camera?.projectionTransform?.camera.projectionMatrixので、よりも役立つと思います。 どのように記入しますか func get transform( qrCodeRectangle: VNBarcodeObservation, cameraTransform: SCNMatrix4) { // qrCodeRectangle.topLeft etc is the position in [0, 1] * [0, 1] of A0 // expected real world position …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.