1

3Dmaxでは次のような3Dモデルがあります。

ここに画像の説明を入力してください

3Dモデルを読み取って資料を適用するプログラム(C#XNA / OpenGL)を開発しているので、次のようになります。

ここに画像の説明を入力してください

ただし、モデルはfacegenによって作成され、hairはfacegenでは次のようになります。

ここに画像の説明を入力してください

ですから、私の質問は、Facegenのシェーダーのように見えるように、ヘアをレンダリングするためにどのようなシェーダーを使用する必要があるかということです。

コメント、キーワード、ヒット、サンプル、チュートリアル、またはコードは何でも大歓迎です。

私のプラットフォーム

Windows 7 64ビットC#またはC++XNAまたはDirectxまたはOPENGL

4

3 に答える 3

3

Nalu という名前の nVidia ヘア デモがあり、こちらの nVidia サンプルで見つけることができます: https://developer.nvidia.com/nvidia-graphics-sdk-11-direct3d。使用されるシェーダーは Marschner シェーダーと呼ばれ、それに関する詳細情報をグーグルで検索できます。もちろん、ヘア レンダリングには他にも多くのテクニックがあり、他の多くのシェーダーもあります。

また、ヘア レンダリング リソースに関するブログhttp://hairrendering.wordpress.com/もあり、適切な情報が提供されています。

于 2012-12-03T09:39:50.473 に答える
1

一見すると、facegen は、テクスチャに基づくアルファ ブレンディングと UNLIT を使用して髪のポリゴンを配置しているだけのように見えます。これにより、透明の並べ替えの問題が見つけにくくなっています。ヘア メソッドの選択は、レンダラーの種類 (フォワード/ディファード)、必要なパフォーマンス、ヘア ポリゴン (またはチャンク) をソートするかどうかなど、多くの考慮事項に依存します。

Marschner メソッドは優れていますが、複雑です。迅速かつ簡単にしたい場合は、説明したようにアルファブレンディングを試してください。

于 2012-12-04T22:19:50.503 に答える
1

非常に優れたテクニックの 1 つは、髪にパーティクルを使用することですが、点をレンダリングする代わりに、線をレンダリングします。

これを行う 1 つの方法は、特定の時点で特定のポイントをレンダリングするのではなく、パーティクルのライフタイム全体を一度にレンダリングすることです。ベジェ曲線などと一緒に使用すると、本当にリアルな髪を得ることができます。さらに進んで、頂点フィールドなどを使用してパーティクルのパスを操作するだけで、風が髪を吹くなどをシミュレートすることもできます

于 2012-12-03T16:32:40.893 に答える