2016-05-05 9 views
2

これは説明するのが非常に難しいですが、できるはずです。透明な素材にもかかわらず、オブジェクトを介した表示を停止しますか?

私が午前ところ基本的に、これは次のとおりです。地球の物質は、独自の材料は、地球の反対側に表示されていない、外法線を持っているので

enter image description here

。しかし、材料の透明性のために、私は地球の反対側に存在するマーカーを見ます。

どのように物事を通じて物事が表示されるのを止めることができますか?背景はスカイボックスであり、透明性を通して私が見せたいのは唯一のものです。

何か助けやアドバイスをいただければ幸いです。

+0

あなたは緑の高層ビルを正しく意味していますか?確かに、あなたは遠い側にあるものを見ることができるでしょう... – Fattie

+0

ここでグーグルを探している人のためのちょっとしたポインタ。このような場合には、今日の問題を解決するために 'TransparencySortMode.Orthographic'が必要な場合もあります。 – Fattie

答えて

2

それがこれを行うには少しトリッキーです:

唯一の方法がある:それは「裏」にあるときに、

は、それぞれ緑の超高層ビルをOFFにしてください。

z>0f場合、あなたは緑の超高層ビルが見えないようにしたい...のは、あなたの世界は、単にあなたが考えてみれば、それは、このシンプルで、その場合には000

を中心としたとしましょう。 z<0fの場合は正常に表示されます。

これはUnityなので、エージェントのようなやり方で作業する必要があります。実際にはこれは簡単です。スクリプトを作成する(疑似コード)

Class HideMeIfAwayFromCamera 
{ 
Update() 
{ 
if (z > 0f) renderer.enabled = true; 
else renderer.enabled = false; 
} 
} 

これはおそらく、ここでは最も簡単で最適な解決策です。いずれにせよ、私はそれを最初に試みるでしょう。それがあなたのためにどのように働くのか聞いてみましょう。

オン/オフポイントをハーフウェイプレーンの少し前または後ろにしたい場合は、試してみてください。

別のアプローチがあります。カットアウトシェーダーを使用する必要があります。高層ビルには別の層を使用してください。地平線の向こうに基地がある超高層ビルのためにさらに別の層を使用する。このようにして、地平線のすぐ後ろにあるが、基盤を隠す高層ビルの「上」を示すことができます。それはあまりにも複雑すぎるように見えます。上の図のように、最良の結果は後のものをオフにするだけだと思います。

(世界が透明である場合、それは「物理的」ではないことにも注意してください:。。。あなたが後ろに高層ビルを見ることができるはずですあなたが良い感じているものを見るためにいくつかのことをしようとする必要があると思いますので)

+0

私はこの方法について考えましたが、最初にここで尋ねることにしました。私の最大の関心事は、それらの数です。約1000件あります。このようなものは、Updateで実行するのに集中的でしょうか? –

+0

いいえいいえ。このソリューションを再確認していただきありがとうございます。私はちょうどそれを試み、それはうまくいった。しかし、私はシェイダーの他の方法について興味があります。あなたは私が代わりに見ることができる "カットアウトシェーダ"のための参照がありますか? –

+0

いずれかの方法で回答としてマークされています。 –

関連する問題