2012-04-20 43 views
0

three.jsで私を助けることができますか?three.jsとの背景

私はTHREE.Spriteのような背景を描く必要がありますが、後で描画する3Dオブジェクトの下にあるようにします。私はカメラを持っていますが、それはZ軸だけで動くことができます。

は、私が使用することをしようと試み:

  • キューブマッピングシェーダ - 問題: - PROBLEMシャドウ面とのアーティファクトを、それはカメラの移動をdublicate

  • THREE.Sprite描く不安定です:シャドウ面を持つアーティファクトを - エッジを強調表示したり、オブジェクトのない他のスパイだけを描画したりします。

  • HTML DOM背景 - 問題:モデルで大きくて醜いエイリアシング。

さらにお試しください。ありがとう!

答えて

1

複数のパスで描画を試みることができます。つまり、バックグラウンドシーンの最初のレンダリングをバッファに、次に2番目のレンダリングを最初の「バッファ」に渡すことができます。バッファをバックグラウンドとして使用しているかもしれません(正射投影で2Dでペイントし、そのパスでデプスバッファ書き込みを無効にする)。

私はthree.jsでそれを試していませんが、それは私が "伝統的な" OpenGLを使って行う方法です。

+0

私は2つのカメラを試しました。まず、正射影の背景(およびその上にスプライトを描いたもの)、2番目のものをメインシーンに使いました。しかし、レンダラーはレンダー機能で2番目のカメラビューのみをレンダリングします。 –

+0

2回目のパスを実行する前に、レンダラーでオートクリアを無効にする必要があると思います。それ以外の場合は、既存のキャンバスのコンテンツ(すべてのものが最初のパスのもの)をレンダリングします。 – sole

+0

スプライトの 'renderDepth'プロパティを非常に小さな値(例えば-1e10)に設定します。オブジェクトは通常ソートされます(レンダラーの' sortObjects'プロパティ、デフォルトでは 'true')、最も低いrenderDepthが最初にレンダリングされます。 – Popov

0

「3d」の背景、つまりカメラの回転に追従するが動きに反応しない(無限遠になる)ものが必要な場合は、キューマップを使用するしかありません。

他の解決策は、環境ドームであり、完全な3Dオブジェクトです。

スタティックバックグラウンドが必要な場合は、htmlバックグラウンドのみを実行できるはずです。なぜこれが失敗するのか、あなたが話している「エイリアシング」の理由はわかりません。