バラのシェーディング

このチュートリアルでは、standard_surface シェーダを使用してリアルな見た目のバラのマテリアルをシェーディングする方法を説明します。バラのシェーダを構成する、いくつかの微細な(しかし、重要な)シェーディング アトリビュートを確認します(translucency や sub-surface scattering など)。また、片面ジオメトリのレンダリング時に念頭に置くモデリング上の考慮事項もいくつか確認します。

シェーディング

バラの standard_surface シェーダには、base_rolor、 specular、 および SSS の各マップが接続されています。わずかに変更が加えられた複製カラー マップも、サブサーフェスの color アトリビュートに接続されています。バックライト効果は Thin-Walled を有効にすると得られます。

下の GIF アニメーションは、diffuse (base_color)、 specular (specular_roughness を高く設定)、subsurface (SSS) がバラの見た目に与える効果を示しています。シーンはカメラの方に向いたディレクショナル ライトでライティングされているため、半透明のバックライト効果が生み出されています。また、skydome_light の color アトリビュートに sky HDR マップが接続された状態になっています。

トランスルーセント

SSSthin_walled を組み合わせると、背後から照らされている半透明のオブジェクトのような効果を再現できます。下のイメージは、厚さの値を大きくすることによる花びらのレンダリングの違いを示しています。ハエのモデルが花びらの背後に配置され、最適な効果を得るためにディレクショナル ライトがカメラに向いています。

一般に、thin_walled は薄いオブジェクト(片面ジオメトリ)にのみ使用することをお勧めします。厚みのあるオブジェクトでは正しくレンダリングされない場合があります。しかしこの状況では、厚みがあってもうまく機能します(拡散反射光レイ深度のレベルを 1 より大きくします)。

メッシュの幅スケール: 1 単位 メッシュの幅スケール: 10 単位

ライティング

HDRI は、Skydome ライトの Color アトリビュートに接続されています。この例で使用している HDRI は、www.hdrlabs.com からダウンロードしています。また、シーンに適用する太陽光を増やすためにディレクショナル ライトを使用しています。

ディレクショナル ライト、および HDR マップを使用する Sky シェーダでライティングされたシーン

シャドウ ターミネータ

シーンを背後から強力なディレクショナル ライトでライティングしているため、シャドウ ターミネータにアーティファクトが生じています。shadow_terminator_fix によって有効になっている現在のアルゴリズムは、球のような凸型サーフェスに対してはうまく機能しますが、凹型領域で発生するセルフ シャドウは修正できません。この制限を回避する方法は、以下のとおりです。

シャドウの角度

ライトの半径(ディレクショナル ライトが太陽に使用されているため、ここでは Angle)を大きくすると、(シャドウをソフトにすることで)シャドウ ターミネータの効果を抑えることができます。ただし、Angle の値を大きくしても、シャドウ ターミネータははっきりと分かります。

シャドウの角度 0 シャドウの角度 4

サブディビジョンの反復

別の解決策は、花びらのジオメトリの subdivision_iterations の数を増やすことです。これでアーティファクトが小さくなります。

サブディビジョンなし サブディビジョンの反復 2

押し出しの厚さ

より適切で「物理的に正確な」方法は、花びらを押し出すことにより、ジオメトリに厚さを少し追加することです。左のイメージは片面だけの花びらを示しています。レンダリングすると、花びらは紙のように薄く表示されます(花びらの後面散乱領域周辺でより顕著)。右のイメージは、花びらに押し出しの厚みを持たせた場合の結果を示しています。これで、レンダリング時にはある程度の厚さを持つ花びらになります。

片面(メッシュに厚さがない)

メッシュに押し出しの厚さが付く

レンダリング

間接拡散反射光レイ深度

diffuse_ray_depth の値を増やすと、シーン内の反射光が増えます。レイ深度を 3 に増やすと、バラはより明るく表示されます。diffuse_ray_depth の値を大きくする場合は注意してください。SSS は、この値の影響を受けます。バラのように重なり合ったり囲まれたりするサーフェスが多数ある場合、diffuse_ray_depth のバウンスを 2 以上にすると効果をはっきりと確認できます。

sub-surface scattering の値を小さくすると、増加した明るさを補正するのに役立ちます。

拡散反射光レイ深度 1 拡散反射光レイ深度 3

これで、バラをシェーディングする方法に関するチュートリアルは終わりです。ここで説明したテクニックは、他の半透明のマテリアル(スキン、紙、ワックスなど)にも適用することができます。