2012-02-05 8 views
1

基本的に、それはスカイボックスのようだが、完全に平坦とscreen.Myアイデアのインフロントである平面が大きなテクスチャを持つことであり、あなたがカメラを回転させる方法に応じて、それはあなたかのように平面上の質感の異なる部分をレンダリング平面上に描画された「空」を基準にして移動しています。エッジに達すると、それをもう一方の側からレンダリングします(シームレスなテクスチャを使用するので、縫い目は見えません)。私はそれをC++で行うべきかどうか、あるいはいくつかの.fxファイル内のシェーダでやってほしいと思っているのかどうか分かりません。 GPU?DirectPlayでSkyPlaneをレンダリングするにはどうすればいいですか?

答えて

0

あなたがする必要があるすべてはあなたのシーンの残りの部分の後ろにフルスクリーンクワッドを描画、または無限にそれをプッシュする深さの状態を使用しています。

あなたは、単純な平面をしたい場合は、シーンの残りの部分を描いて行く、その後、(深さへの書き込み無効)、必要な4つのVertsのを作成し、あなたのテクスチャをバインドし、描画します。これはC++での単純な描画呼び出しで行いますが、必要に応じて頂点バッファなどを使用できます。

あなたは層またはパララックスのような、より複雑なものを、必要な場合は、複数のプレーンを使用し、複合複数のテクスチャへ、またはシェーダをシフトする必要があります。

+0

ええ、私は大きなテクスチャの一部のうちの質感を作るために、ソースの座標を取る関数を見つけるように見えることはできません。 –

+0

あなたは、頂点のテクスチャ座標をテクスチャ全体の領域に設定するだけで、ハードウェアが適切にサンプリングを処理します。テクスチャが非常に大きい場合は、 'IDirect3DDevice9 :: StretchRect'、' IDirect3DDevice9 :: UpdateTexture'、 'IDirect3DTexture9 :: LockRect'、またはいくつかの組み合わせを使うことができますが、必要はありません。 – ssube

+0

@peachykeenどのようなtexture.what RGBの開始と終了の限界とどのコンポーネントR、G、Bを変更する必要がありますなしで白からskyblueに背景色を変更することによってそれを行うには? – control

関連する問題