私の Java3D アプリケーションでは、移動可能な表示プラットフォーム (たとえば、"OrbitBehavior" および "KeyNavigatorBehavior" ビヘイビアのおかげ) があるので、視点をシーンに変更できます。ここで、ビュー上に「静的」なオブジェクトを追加したいと思います。つまり、ビューを移動すると常に同じように表示されます (たとえば、FPS でのプレイヤーの銃のように)。これまでに、この問題に対して次の 2 つのアプローチを試みましたが、いずれも機能しませんでした。
1/オブジェクトを ViewingPlatform に直接アタッチします (専用の BranchGroup と TransformGroup を介して)。この場合、私のオブジェクトは単に表示されません (実際にそのような操作を実行することが許可されているかどうかはまったくわかりません...)。これは私のコードのこの部分です:
コード : ( view
ViewingPlatform を使用)
BranchGroup fixedBG = new BranchGroup();
TransformGroup fixedTG = new TransformGroup();
fixedTG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
fixedTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Transform3D transfo = new Transform3D();
transfo.setTranslation(new Vector3f(0.2f, 0.0f, -1.0f));
fixedTG.setTransform(transfo);
ColorCube fixedCube = new ColorCube(0.2);
fixedTG.addChild(fixedCube);
view.addChild(fixedBG);
2/オブジェクトに同じ変換を適用します(回転+変換; getViewPlatformTransform()のgetTransform()を介して取得-ここでは、これらの変換とビューPFとオブジェクトの初期位置の間の操作で、より複雑なことも試しました)プラットフォームの表示と同じ. 専用の動作 (ビューの場所を変更する動作と同じウェイクアップ条件) を使用して、これらすべてをリアルタイムで行います。ここで、ビューを移動するとオブジェクトが消え、KeyNavigator のズーム/ズーム解除アクションを使用すると (ただし非常に不安定な方法で) 再び表示されることがあります。
私がやろうとしていることは実行可能であり、おそらく非常に単純であると確信していますが、今は手がかりがありません...
よろしくお願いいたします。
(追伸: 英語は私の母国語ではないので、私の問題を説明するのは非常に厄介かもしれません: 理解できない部分をもう一度書くように頼むことを躊躇しないでください)