問題タブ [scenekit]
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.
ios8 - SceneKit - オクルージョン カリング
iOS 8 で SceneKit をかなり長い間使用してきましたが、最近、ノードがビューポートに表示されないかどうかを検出する必要がある状況に遭遇しました。オクルージョンカリングは可能な解決策かもしれません。したがって、SceneKit から利用できるオクルージョン カリング オプションはありますか? そうでない場合、試してみたい他の提案は何ですか? ありがとう!
ios - SceneKit: 衝突せずに接触を検出する方法
SceneKit 物理世界で衝突しない (互いに跳ね返らない) 2 つのオブジェクト間の接触を検出するための (パフォーマンスに関して) 最良の方法を探しています。
SpriteKit には物理ボディ用の acontactTestBitMask
と aがあり、 collisionBitMask
SceneKit には後者しかないことがわかりました。そのため、SceneKit でオブジェクトが接触したときに通知を受け取る別の好ましい方法が必要です。contactTestBetweenBody:andBody:options:
オブジェクトごとに各フレームを呼び出す のは、最善の方法ではないと思いますか?
更新
iOS 9.0 で、ApplecontactTestBitMask
はSCNPhysicsBody
. したがって、この質問はすぐに時代遅れになります。
ios - ピボットが別のノードのジオメトリ内にある場合のノードの移動
私のシーンには以下が含まれます。
シーンのルートにある静止体
ピボット プロパティが (0,-1200,0) にあるダイナミック ボディ
両方のノードが rootNode の子であるため、ピボットは静的ノードの中心にあります。アイデアは、X 軸を中心に _firstNode を中心に _secondNode を回転させる SCNAction を実行し、必要に応じて Y 軸を中心に回転するために applyTorque を実行することです。
そのコードは今のところ問題ありません。問題は、_firstNode は静的なままですが、_secondNode.pivot を _firstNode のジオメトリの表面にプッシュしていることです。ただし、単に _firstNode の physicalsBody を取り除いても、問題は解決しません。
ios - iOS (Swift) SceneKit SCNSceneRenderer unprojectPoint の正しい使い方
iOS で SceneKit を使用していくつかのコードを開発しています。私のコードでは、z が 0.0 で x と y がタップ ジェスチャから決定されるグローバル z 平面上の x と y 座標を決定したいと考えています。私のセットアップは次のとおりです。
ご覧のように。高さ 4 単位、幅 4 単位の三角形があり、x、y (0.0, 0.0) を中心とする z 平面 (z = 0) に設定されています。カメラはデフォルトの SCNCamera で、負の z 方向を向いており、(0, 0, 15) に配置しました。zNear と zFar のデフォルト値は、それぞれ 1.0 と 100.0 です。私の handleTap メソッドでは、タップの x と y の画面座標を取得し、z = 0.0 の x と y のグローバル シーン座標を見つけようとします。unprojectPoint への呼び出しを使用しています。
unprojectPoint のドキュメントは、
Z 座標が 0.0 の点を非投影にすると、ニア クリッピング プレーン上の点が返されます。z 座標が 1.0 の点を投影解除すると、ファー クリッピング プレーン上の点が返されます。
間にある点については、近距離平面と遠距離平面の間に直線的な関係があるとは特に言いませんが、私はその仮定を立てて、screenZ の値を、近距離平面と遠距離平面の間のパーセント距離として計算しました。 0 面が配置されています。答えを確認するには、三角形の角の近くをクリックします。これは、それらがグローバル座標のどこにあるかを知っているからです。
私の問題は、カメラの zNear および zFar クリッピング プレーンを変更し始めると、正しい値が得られず、一貫した値が得られないことです。だから私の質問は、どうすればこれを行うことができますか? 最後に、新しいジオメトリを作成し、ユーザーがクリックした場所に対応する z 平面に配置します。
よろしくお願いします。