私は、WPFでも実行できる多くのことを可能にする複雑なUIシステムを持っていますが、複数のプラットフォーム(iOS、Android、Windowsなど)をサポートしています。まだ完了していませんが、現在、次の問題に直面しています。
私の設計者はオブジェクトを回転させたい! オブジェクトの回転は、単純な軸に沿ったオブジェクトよりもはるかに複雑です。これが、glScissorを使用できない理由です。問題を理解するのに役立つかもしれない小さなグラフィック:
オブジェクト「サブコンテナ」を「親コンテナ」の境界でクリップする必要があることがわかります。私の知る限り、いくつかのオプションがあります:
- ステンシル バッファを使用します。この場合、表示されないオブジェクトがあり、子オブジェクトをマスクする可能性があるため、ステンシル バッファにも影響を与える必要があるため、問題が発生しました。また、階層に戻るときにステンシル バッファーを減らす必要があるため、各オブジェクトを 2 回描画する必要があります。
- UIオブジェクトを描画するために使用される平面(三角形化;またはその他のUIモデル)をカットします。これは、さまざまなポイントでクリップされる可能性があるため、余裕があるようです(回転したコンテナー内の回転したコンテナー内のコンテナーを想像してください. .. ) また、それらを正しくクリップするのは非常に難しく、パフォーマンスの問題の原因になる可能性があります
ただし、どちらもさまざまな問題を引き起こすようであり、パフォーマンス リークの原因となる可能性があります。私が欲しいものをアーカイブする他の方法はありますか、または上記の両方のアプローチを改善する方法はありますか?