2017-01-26 35 views
0

私は現在、Viewer.impl.sceneAfterにカスタムメッシュを追加するシステムで作業しています。大きなメッシュ(すべてのモデルの可視範囲の結合よりも大きい)が大きなポイントの雲が追加されると、メッシュの一部が切り取られるクリッピングの問題があります。Forgeビューアで可視範囲を設定する

ソースコードから、私はカメラのFar値がワールドシーンの可視範囲に基づいて更新されていることに気付きました。また、visibleAreaを見るためにsceneAfterは考慮されていません(viewer.impl.scene、これは考慮される)。

透明を有効にしたいので、このカスタムメッシュをsceneAfterに配置する必要があります。

私はこのために2つのハック解決策を考え出した:このstackoverflowの答えに触発されViewer3D.js で提供getVisibleBounds関数プロトタイプ上書き、まず

Changing Camera Speedを、それがサード上書きするので満足しませんでした後で変更される可能性があります。

第2に、viewer.impl.sceneのカスタムメッシュの不可視クローン(ジオメトリの代わりにマテリアルの可視プロパティを使用)を使用して、ビューアの可視範囲を変更します。最初の解決策よりも好きですが、ジオメトリを削除/操作するために2つのメッシュインスタンスを追跡する必要があるので、まだ効率が悪いと思っています。

事前にこれらの

おかげでよりエレガントな解決策がある場合、私は思っていました!

答えて

1

私たちは、viewerAfterの将来のリリースでsceneAfterに追加されたメッシュを考慮に入れたいと希望しました。

一方で、提案された回避策は、2番目の命題と少し似ていますが、カスタムメッシュの境界ボックスの表現のような簡単なメッシュを使用しています。それが複雑な場合に備えて、メッシュのクローンよりもレンダリングが速くなります。

希望すること

+0

私は些細なメッシュを使用すると考えていません。助けてくれてありがとう! – MazaYong

関連する問題