リアルなメタルシェーダー


13

優れた金属シェーダーをどのように作成しますか?

さまざまな金属の場合、多かれ少なかれ侵食/さびなどを言います。

通常の素材との違いの1つは、金属が鏡面反射光を「着色」することですが、たとえば金でそれを行うと、金属ではなく「黄色」に見えることを知っています。

どんな助けも感謝します!


1
あなたの質問は単純で具体的なもののように聞こえますが、実際そうではありません。シェーダーだけでメタリックな外観を複製することはできません。そのためには適切なテクスチャが必要なので、鏡面光沢テクスチャ、おそらく金属が不規則な場合はバンプマップなどが必要です。金属がある程度研磨されている場合は、環境(またはその似顔絵)を上手。これは単純な「ここに金属シェーダーコードはありません」という問題ではありません。
ニコルボーラス

異方性反射の問題も調べてください。これは通常、ブラシをかけた金属で見られる現象です。
デビッドゴー

@デビッド:それは本当にクールに見える、多分それは私にとって少しやり過ぎかもしれませんが、私は間違いなくそれをチェックアウトし、可能であればそれを使用します:
ヴァルモンド

コメントを@Nicolのおかげで、私はテクスチャを使用して、完全にOKだけど、私の「正常な」シェーダは3で構成されています拡散、グローと鏡面、スペック電力と反射(キューブマップから)を含むcontrolmapは
Valmond

クイック検索ターン、多くの異なる金属シェーダアップとストレート馬の口から:developer.download.nvidia.com/shaderlibrary/webpages/...
パトリック・ヒューズ

回答:


4

私は最近、進行中のゲーム用にクリーンメタルとブラッシュメタルの両方のシェーダーを作成しました。結果に非常に満足しています。

きれいな金属: 私の実験で最も重要な機能は、キューブマップを使用した環境反射です。リアルタイムのテクスチャへのレンダリング環境でそれらを実装しましたが、静的な画像はしばしば良い結果をもたらし、それらをぼかすのは簡単です。2番目に重要な機能はフレネル効果で、オブジェクトの影絵をより良くします。これにより、たとえばボールの外観が丸くなります。キューブマップはハイライトを直接提供できるため、鏡面照明は必ずしも必要ではありません。HDRレンダリングは、キューブマップの反射を美しく見せるためにも重要です。

ブラッシュドメタル: つや消しの金属についてあなたはブラシのテクスチャを使用することによって非常に簡単に良い結果を得る、のようなもの。この、異方性照明と一緒に。異方性照明については、Webからチュートリアルを見つけることができますが、blinn-phongをベースとして独自に実装しましたが、ハーフベクトルからは接線方向の80%を削除しました。これは、モデルの法線に加えて、接線または双接線が必要であることを意味します。環境の反射は、ブラシをかけられた金属には注意が必要です。接線/二方向の方向に基づいて、キューブマップから複数の方向からサンプリングできますが、良い結果を得るには多くのサンプルが必要になる場合があります。ただし、これは必ずしも必要ではありません。複数の光源を使用したテクスチャと異方性照明はすでにかなり見栄えが良いからです。私の場合の最終結果は次のようになります。

起毛金属素材


6

ニコルがコメントで述べたように、高品質のメタルシェーダーには多くのことがあります。最良の結果を得るには、レンダラーをガンマ補正する必要があります物理ベースのシェーディングモデルを使用するあります(特に、リンクのNaty Hoffmanによる2つの論文を参照)。

これらのことを考えると、金属材料を作成する一般的な方法は、非常に低いまたは存在しない拡散色と、50%から100%(線形色空間)の範囲の高い鏡面反射率を持つことです。既に述べたように、一部の金属では鏡面が着色されます。

金属の外観は完全に鏡面であり、拡散はほとんどまたはまったくないため、反射は非常に重要です。ポイントライトのみを鏡面反射する場合、残りの環境が欠落しているため、黒いマテリアルの外観になります(非常に粗い金属でさえ、周囲のぼやけた画像を反映します)。より多くの反射を得る典型的な方法は、キューブマップを使用することです。ただし、リアルタイムグラフィックスの現実的な反映は大きなトピックであり、さまざまなアプローチがあります。


ありがとう、これはまさに私が探していたものです!キューブマップで反射を行うとき、非常に高い鏡面反射照明として一種の環境照明を使用する必要がありますか?
ヴァルモンド

@Valmond「ある種の環境照明を非常に高い鏡面反射照明として使用する」という意味がわかりません。私が意味したのは、鏡面反射に光源と環境内のその他すべて(一緒に追加)が含まれ、「その他すべて」の部分をキューブマップとして実装できるということだけでした。典型的な方法は、ここに示すように、さまざまな粗さのいくつかのぼやけたキューブマップを生成することです
ネイサンリード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.