-1

2D シーン グラフ: ノードで回転などの変換を実行する場合、これらの操作を子ノードにどのように適用する必要がありますか? それぞれの子に操作を適用すると、かなりの時間がかかる可能性があります。アプリがシーンをレンダリングすると、各ノードの下のグローバル回転が現在のノードの回転に追加されると思いました。平行移動と縮尺も同様です。がグラフで上昇している場合、それらのグローバル プロパティが差し引かれます。より良い方法はありますか?

4

1 に答える 1

3

現在の変換行列をプッシュおよびポップするスタックを使用する必要があります。

def calculateTransformRecursive(self):

  pushGlobalTransform();
  self.calculateAndStoreGlobalTransform();
  for node in self.nodes:
    node.calculateTransformRecursive();
  popGlobalTransform();

このように、すべてのノードは描画時にグローバルな変換を持ち、ツリーを上るときに変換を「元に戻す」必要はありません。

于 2011-09-18T01:55:40.970 に答える