2017-02-24 17 views
1

私はGoogle Daydream用のゲームを開発しています。使用されているカメラは本当に混乱します。シーンの開始時にすべてのパラメータが同じ値に設定されています。最初は、オブジェクトメッシュ同士が互いにクリッピングする問題がありました。私はこれに解決策がより高い値にnearClippingPlaneを設定することであることを知った。これは、私の船の操縦席が完全にレンダリングされていない次の問題を引き起こしました。これは、このnearClippingPlaneがあまりにも遠すぎるためです。私はコックピットだけをレンダリングする別のカメラを作成しようとしましたが、これまでに述べたように動作しません(カメラは変わってしまいます)。オブジェクト/レイヤーをクリッピングプレーン付近で無視する方法はありますか?

そのため、カメラではなくオブジェクトのプロパティを変更する必要があります。私はthisを見つけましたが、それはfarClippingPlane(それ以外の場合は完璧です)でのみ動作します。 2番目のカメラを追加せずに1つのオブジェクト/レイヤーに対してnearClippingPlaneを無視するにはどうすればよいですか?デフォルトでは、ユニティに空想は、16ビット深度バッファを使用することhttps://en.wikipedia.org/wiki/Z-fighting

注:

+0

私はあなたができることは可能だとは思わない。 Camera.layerCullDistancesは、オブジェクトが近すぎる/遠すぎると切り取るのではなく、完全に消えるようにします。あなたが探しているのはカメラカリングマスクだと思います。こうすることで、特定のカメラの特定のレイヤーにあるオブジェクトだけをレンダリングできます。 – Jespertheend

+0

@Jespertheend 'Camera.layerCullDistances'は特定のlaerに 'farClipPlane'を設定することができます。' nearClipPlane'で同じことができれば完璧です。私はまた、2つのカメラが動作する必要があり、以前に書いたもののために動作しませんので、マスクをかけることでそれを行うことはできません。 –

+0

ユニティが近くのオブジェクトを間抜けするオプションを持っていても動作するとは思わない。私が知る限り、 'Camera.layerCullDistances'はオブジェクト全体を消してしまい、その後はクリッピングペインを適用します。たとえあなたのコックピットの近くの淘汰距離を設定することができたとしても、まだそれをレンダリングしません。私は、あなたの最善の策は、近所と遠いクリッピングペインを最適なものに微調整すること、あるいは複数のカメラを使ってセットアップすることです。 – Jespertheend

答えて

2

に関する更なる目的は、これはおそらく起因Z-戦いに起こっている、クリッピングメッシュ。これはプレーヤーの設定 - >他の設定 - >バーチャルリアリティSDK - >デイドリームでアクセスできます。

32ビットのデプスバッファに切り替えるコックピットのオブジェクトと離れたオブジェクトの両方を小さなnearClippingPlaneの値でレンダリングすることができます。しかし、これは主に緩和策であり、クリッピング問題に遭遇する可能性があります。さらに、デプスバッファで使用されるメモリと帯域幅が倍増しているため、これを行うことでパフォーマンスに影響があります。

あなたが試したように複数のカメラを使用することができるはずです。コックピットカメラをカメラのDepthプロパティで2番目にレンダリングして、「コックピット」と「環境」カメラを作成します。これにより環境が最初にレンダリングされ、コックピット内のすべてのオブジェクトを無視できます。これはあなたが近くの飛行機をかなり遠くに押し出すことができるという利点があります。

次に、コックピットカメラをクリアな深度に設定します。コックピットカメラを設定して、コックピットにある可能性のあるオブジェクトのみを囲みます。レンダラーは環境を保存しますが、2つの異なる深度範囲を使用することができます。これは、複数のレンダーパスで余分なメモリ転送が発生するため、レンダリングの途中でデプスバッファをクリアする必要があるため、モバイルデバイスにもパフォーマンス上の影響があります。

オブジェクトに別々のレイヤーを作成することを検討してください。 「コックピット」と「環境」を使用して、物が2回レンダリングされないようにします。

Sample scene with two cameras, note the difference in near/far values