2017-01-11 7 views
0

現在、ThreeJsを使用しているプロジェクトに取り組んでいます。ThreeJSの非ポリゴンベースの3Dモデル(HelloRacer.comのような)

今は私の3Dモデルを表現するのにwavefront-objを使っていますが、-IGESや-STEPのようなものを使いたいと思います。これらのフォーマットはThreeJSでサポートされていませんが、私はhttp://helloracer.com/webgl/を見てきました。短いローディング時間のために、滑らかな表面で見ることができるように、このモデルはポリゴンに基づいていないようです。モデルは.jsなのでThreeJS-JSON形式ですか?

このようなモデルは、IGES/STEPをClara.ioなどに読み込んで3js-JSONにエクスポートすることで作成されますか?今はIGES/STEPモデルを持っていないので自分自身でテストする機会はありませんが、誰かが作成するようにします。

波面では、このような滑らかなサーフェスを作成することはできません。ローディングに時間がかかり、描画が遅くなりません。

picture of not smooth surface

あなたが見ることができるように、表面と雷が転記例のほどスムーズではありません。

+0

レンダリングされた画像のスクリーンショットを投稿できますか? –

+0

モデルを使用しているポリゴンを見ることができます。オブジェクトをスムーズにすることができますが、ポリゴン数は急激に増加し、すべてが非常に遅くなります。私はいくつかのlaquer素材を表示したいので、私は非常に滑らかなオブジェクトが必要です。 (材料にも透明性があります) – Dubbox

答えて

1

あなたがリンクしたデモのサーフェスは滑らかではなく、まだ多角形です。

Case'n'point

私はスムーズシェーディングは、あなたが探しているものだと思います。問題は、通常、モデルはその法線に基づいて陰影付けされています。したがって、モデルの頂点にどのような法線を設定するかは、画面上に表示されるものにとって非常に重要です。あなたの説明に基づいて、あなたのモデルはその中のすべての三角形に対して別々の法線を持ちます。この図のように、各三角形の各頂点は三角形自体と同じ法線を持ちます。したがって、この法線を三角形にまたがって補間すると、三角形の各点に同じ値が得られます。シェーディング計算によって均一な照明が得られ、レンダリングされた画像上で三角形が平坦に見える。

Face normals

滑らかな表面の効果を達成するために、我々は、この画像上のもののように、頂点法線のための他の値が必要になります。

Vertex normals

我々はそれらの法線との任意の形式にこの球を保存する場合それをレンダリングしようとすると、補間された法線は、球を構成する三角形の表面を滑らかに変化します。したがって、シェーディング計算でスムーズに変化する照明が得られ、サーフェスは滑らかに見えます。

したがって、レンダリングしようとするモデルでは、「スムーズ」な頂点法線を画面上で滑らかに見えるようにする必要があります。

UPD。あなたのスクリーンショットで判断すると、あなたのモデルは屈折材料を使用します。屈折率の計算にも同じ考えが適用されます。なぜなら、屈折率の計算は通常の値にも基づいているからです。

+0

どうもありがとうございます。しかし、どのようにして私の法線をそれらの補間された法線に変更するのですか? – Dubbox

+0

ああ私はそれを幸運でそれを理解しました!:D今すぐテストしよう – Dubbox

+0

OK頂点法線を表示する方法を変更しましたが、ThreeJSでそれらを使用するにはどうすればいいですか?または、エクスポート時に法線を頂点法線に設定するにはどうすればよいですか? – Dubbox

関連する問題