2009-04-10 21 views
1

これは私の問題です。複数のフェーズを通過できるシーンを処理するための最善のデザインパターンは何ですか

私は小さなシンプルなゲームエンジンを書くことを試みています(私は自分のスキルを向上させるためにそれをやっています)。私はそれをレンダリングするためにレンダリングAPIが必要とするすべてを保持するSceneオブジェクトを持っています。

当然のことながら、私は自分のシーンが将来の変化に影響されないようにしたいと考えています。将来の変更はインターフェイスを壊す必要がないことを意味します。たとえば、私のシーンに、オンとオフを切り替えることができるフォグ機能を追加したい場合は、シーンインターフェースを壊すことなく追加することができます。

一つ重要なことは、誰もがより適切かもしれない何かを提案することができ、デコレーター 『パターン「

私の考えを向けて行っている(IScene明らかに名付けた)』レンダリングAPIは、インタフェースを通じてシーンと通信していることです?

答えて

2

これは簡単な問題ではないことを間もなく理解するでしょう。 1つ以上の半透明の灰色のオブジェクトとしてレンダリングする方が現実的かもしれませんが、現在のハードウェアで実装することは不可能かもしれません。

[編集]私が言っていること:単純なデコレータパターンは、おそらく複雑な効果を達成するには不十分です。私は多くのエンジンを見ていませんが、大部分は、いくつかのグローバル(環境光、カメラ位置、表示サイズ)と表示するオブジェクトのリストを保存するだけの非常に単純なシーンオブジェクトになります。オブジェクトには、追加情報が含まれています。

これらはかなり馬鹿です。レンダラは、これらのオブジェクトに格納されている情報を取得し、ディスプレイハードウェアが使用できるものに変換します。

私のアドバイスは、既にすべての間違いを犯しているため、既存のAPIからいくつかのアイデアを得ることです。

+0

私はあなたが霧について何を言っているのか理解していますが、私はそれを一例として与えました。私の質問は、霧に関するものではなく、将来のISceneインターフェイスの変更を避けるために適用するパターンです。 – user88637

+0

コメントを編集しました。あなたの回答に感謝します。 – user88637

関連する問題