1

基本的に、レイヤー階層をサポートする必要があるOpenGL | esを使用してレイヤーシステムを作成しようとしています(レイヤーにはサブレイヤーなどを含めることができます)。レイヤーに親がある場合、描画時に親レイヤーにクリッピングする必要があります。すべてのレイヤーが長方形の場合、それはかなり簡単で、交差を計算して範囲外のビットを切り取ることができます。ただし、各レイヤーには変換マトリックスを含めることもできます。レイヤーを別のレイヤー内で変換すると、長方形ではなくなり、交点を計算することができなくなります。

以下の図は、問題を示しています (親はピンクで、子は薄緑です)。

問題

上記の例ではglScissor、長方形のバウンディング ボックスを設定するには呼び出しで十分ですが、親レイヤーも変換できるため (長方形ではなくなります)、これは機能しません。また、親レイヤが変換される場合、子がレンダリングされる前に、子の変換行列が親の変換行列に乗算されるため、変換された場合でも、子が親の内部にあるような錯覚が生じます。

4

1 に答える 1

0

いくつかの提案:

  • サブレイヤーのジオメトリを自分でクリップします (高速ですが、計算を行う必要があります)。
  • 各レイヤーをテクスチャにレンダリングします (柔軟ですが、レイヤーが多いと遅くなります)。
  • ステンシル バッファーを使用します (多くのレイヤーではフィル レートが集中します)。
于 2012-08-30T23:22:25.657 に答える