2016-09-09 1 views
0

私は透明なオブジェクトしか持っていないので、深さテストを有効にすると、オブジェクトが互いに隠れてしまいます。深度テストでは透明度が考慮されていないことが分かっています。深度バッファに書き込むと、値はzです。次に、2つの透明なオブジェクトを正しくレンダリングする方法は?透過オブジェクトの深度テストを無効にする方法はありますか?

私はこのrenderer.context.disable(renderer.context.DEPTH_TEST);をしましたが、何も私の具体的な問題の

イラスト変わらなかっ:キューブはMeshLambertMaterial({color: ..., transparent: true, opacity: 0.6})

で、平面がMeshLambertMaterial({color: ..., transparent: true, opacity: 0.4})

立方体を平面後にレンダリングされている、 enter image description here

をキューブが不透明であれば、キューブ全体が破棄されずに正しくレンダリングされます(また点tやはり不透明なので見える)。

どのように透明性を考え、レンダリングの順番も気にしないので、2つの透明なオブジェクトはお互いに隠れませんか? three.jsで

答えて

2

、あなたは

material.depthTest = false; 

を設定することにより、デプステストをオフにすることができますが、カメラの位置が変更されたアーティファクトを持っている場合も驚かないでください。

this answerもお読みください。

three.js R.80

+0

が、唯一のクロムで、シーン内のすべての照明とカメラを回転させたときにええおお、私はまた、いくつかの成果物を持っていました。 – ampawd

関連する問題