問題タブ [sceneview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1275 参照

ios - SceneKit: unprojectPoint は、画面のどこに触れても同じ/類似したポイントを返します

以下のコードは、タッチ座標を SceneKit シーンのワールド座標に変換する必要があります。

ただし、以下の出力に示されているように、 によってunprojectPoint返されるポイントは、画面のどこをタッチしても事実上同じポイントを返します (iPhone 5s)。

のクラス ドキュメントでunprojectPointは、0 から 1 の間の Z 値を使用することを提案していますが、0.5 などの異なる値を使用しても の出力は変化しませんでしたunprojectPoint

This SO postでは、 の深さの値を設定する方法について説明してunprojectPointいますが、Z 値を 1 より大きい値 (15、20 など) に設定しても、出力は変わりませんでした。

どちらの場合も、から返される X 値と Y 値はunprojectPoint事実上同じままでした。

1) 正しい使い方はunprojectPoint?

unprojectPoint2)カメラの回転はどのように考慮されますか? たとえば、カメラを (0, 20, 0) に移動し、カメラを 90 度下に回転させて地面に向けた場合、回転が確実に考慮されるようにするにはどうすればよいでしょうか? 深さを 20 に設定して原点をタップした場合、目的の戻り値はunprojectPoint(0, 0, 0) になります。

3) カメラの前で値を返すにはどうすればよいですかunprojectPoint(たとえば、Z 値はカメラの Z 値よりも低い)。

コード:

出力:

2D ポイント: (154.5, 169.5)。3D ポイント: SCNVector3(x: -0.00111810782、y: 0.0232769605、z: 7.9000001)

2D ポイント: (280.5, 252.0)。3D ポイント: SCNVector3(x: 0.0244967155、y: 0.00650534919、z: 7.9000001)

2D ポイント: (32.0, 181.0)。3D ポイント: SCNVector3(x: -0.0260214079、y: 0.0209390987、z: 7.9000001)

2D ポイント: (12.0, 505.0)。3D ポイント: SCNVector3(x: -0.0300872531、y: -0.0449275821、z: 7.9000001)

2D ポイント: (311.5, 12.5)。3D ポイント: SCNVector3(x: 0.0307987742、y: 0.0551938377、z: 7.9000001)

2D ポイント: (22.5、88.0)。3D ポイント: SCNVector3(x: -0.0279526841、y: 0.0398452766、z: 7.9000001)

2D ポイント: (313.5, 358.0)。3D ポイント: SCNVector3(x: 0.0312053617、y: -0.0150436237、z: 7.9000001)

2D ポイント: (314.0, 507.0)。3D ポイント: SCNVector3(x: 0.0313070044、y: -0.0453341678、z: 7.9000001)

2D ポイント: (155.0, 360.5)。3D ポイント: SCNVector3(x: -0.00101646129、y: -0.0155518558、z: 7.9000001)

0 投票する
0 に答える
1073 参照

ios - SceneKit: SceneView の hitTest 関数のパフォーマンスを改善しますか?

私たちのシーンには約 20 個のノードしかありません。以下のコードにより、ユーザーはパンを実行し、各パンでヒット テストを実行できます。目標は、ユーザーが画面をパンするときにブロックを強調表示することです。

ただし、iPhone 5S では著しく遅くなります。それは決定論的ではありませんが、イライラするほど頻繁に発生します(5〜10回のパンごと)。

テストの範囲を厳密に制限できるため、使用を検討しhitTestWithSegmentましたが、関数に必要な 2 つのポイントを最初に計算する必要があるため、遅くなるはずです。

さらに、 のSCNHitTestClipToZRangeKeyオプションはhitTest、2 つの追加ポイントの計算を必要とせずにヒット範囲を狭めることによって、同等のパフォーマンスの向上を提供する必要があります。

のパフォーマンスを高速化するための提案はありhitTestますか?

0 投票する
0 に答える
57 参照

swift - SKVideoNode が Iphone 5 の 360 度ビデオで機能しない

私は360度ビデオプレーヤーに取り組んでいます。私はこのスローSKVideoNodeを行いました。他のすべてのデバイスでは正常に動作しますが、iPhone 5 では動作しません。また、ビデオの再生中に黒い画面が表示されますが、音声は聞こえます。この問題を解決する方法を教えてください。

前もって感謝します。

0 投票する
1 に答える
881 参照

ios - SCNView でユーザー インタラクションを有効にした後、水平方向にのみ回転させるにはどうすればよいですか?

私は SceneKit を初めて使用します。私がしようとしているのは、dae ファイルを SCNScene にロードし、この SCNScene を SCNView に設定し、ユーザー操作を有効にしてから、ジェスチャーで 3D モデルを回転させることです。これまでのところ、スワイプまたはズームイン/ズームアウトすると、3D モデルは正常に機能します。しかし、私が本当に必要としているのは、ジェスチャ (右または左へのスワイプ) が行われると、3D モデルが水平方向にのみ回転し、ズームイン/ズームアウトしないことです。それを実現するにはどうすればよいでしょうか? これが私のコードです:

助けてくれてありがとう!