
サブサーフェススキャタリングとは?表面の内部を進む光が3Dレンダリングを形づくる仕組み
概要
はじめに
サブサーフェススキャタリング(subsurface scattering、SSS)とは、光が表面で単に跳ね返るのではなく、素材の内部に入り込み、中をさまよってから別の位置から出てくる現象です。肌、ワックス、大理石、牛乳が私たちの目に見えているような質感になるのはこの現象のおかげであり、SSSを無視したレンダラーでは、プラスチックや金属のような質感の素材になりがちです。
このガイドでは、物理の仕組みを平易な言葉で説明し、多くのシェーダーが使うBRDFとBSSRDFの違い、そしてレンダラーがSSSを近似するための2つの手法の系統を紹介します。そのうえで、Cycles、Arnold、V-Ray、Redshift、Coronaで設定項目がどこにあるのか、SSSがレンダリング時間とノイズを増やす理由、長いアニメーションでコストを抑えられる設定についても解説します。レンダラーが光をどのように追跡するのかについてはレイトレーシングとパストレーシングの違いで、レンダリング自体が初めての方はレンダリングとはからお読みください。
並べて比較した断面図。BRDFでは光が入った点と同じ点から出ていくのに対し、BSSRDFでは光が一点から入り、素材の内部で散乱して別の点から出ていきます
サブサーフェススキャタリングの物理的な仕組み
基本的なシェーダーは、表面を境界として扱います。光はある点に届いて反射するか、吸収されるか、透明なガラスであればそのまま通り抜けます。しかし、実際の素材の多くは異なる振る舞いをします。光の一部は境界を越えて内部に入り、中の粒子に当たって散乱し、エネルギーの一部を吸収で失い、残りが表面から出てきます。出てくる位置は、多くの場合、入った位置から少し離れた場所です。
Chaosはサブサーフェススキャタリングの解説記事(2026年11月10日閲覧)で、SSSを、光が半透明の表面に入り、内部で散乱して別の点から再び出てくる現象として説明しています。この現象は、ガラスのような透明な素材を指す屈折や、ランプシェードや葉のような薄い素材を指す透過(トランスルーセンシー)とは区別されています。SSSが扱うのは、肌、ワックス、大理石、牛乳のような厚みがあり密度の高い素材です。
SSSの効果は、次の4か所で確認できます。
- 影の縁が柔らかくなります。 光が当たる側から入った光が影の側へ漏れ出すため、光と影の境目がプラスチックよりも柔らかく見えます。
- 色がにじみます。 出てくる光は素材内部の色を帯びているため、影になった肌は無彩色のグレーにならず、暖かい色味を帯びます。
- 薄い部分が透けて光ります。 強い光が後ろにあると、耳や指、キャンドルのワックスが明るく光ります。
- 細かなディテールが失われます。 散乱によってライティングがぼけるため、小さな凹凸が不透明な表面よりも穏やかに見えます。
このリアリズムの代償は、計算の手間です。レンダラーは、シェーディングしている点にはもう存在しない光も扱わなければなりません。
BRDFとBSSRDFの違いをわかりやすく
ほとんどのシェーダーは、BRDF(bidirectional reflectance distribution function、双方向反射率分布関数)で表面を記述します。BRDFは1つの点について、限られた問いに答えます。ある方向から光が届いたとき、どれだけの光がその方向へ出ていくのか、という問いです。前提として、光は同じ点で入り、同じ点から出ていくものとされています。
BSSRDF(bidirectional scattering-surface reflectance distribution function、双方向散乱面反射率分布関数)は、この前提を外し、ある点に届く光と別の点から出ていく光を関連づけます。教科書『Physically Based Rendering』(第3版、11.4節、2026年11月10日閲覧)では、2つの点それぞれに表面上の2次元と角度の2次元があるため、8次元の関数であると説明されています。これをすべてのシェーディング点で積分するのは負荷が高すぎるため、レンダラーは3つの要素からなる分離可能な形を使います。表面から出る光の項、入る光の項、そして2点間で光がどれだけ進むかを表す空間プロファイルです。
この空間プロファイルが「光がどこまで広がるか」を表す曲線であり、素材のradius(半径)設定が対応する部分です。教科書では、最も単純なバージョンは局所的に平坦な表面と、ほぼ均一な素材を前提としており、曲率の強いジオメトリでは精度が落ちると述べられています。これが、次に紹介する第2の手法の系統が存在する理由です。
平均自由行程とradius:見た目を決める数値
SSSシェーダーはどれも、1つの中核的な問いに答えます。光は、散乱するか外に出るまでに、素材の内部をどれだけ進むのか、という問いです。物理用語では平均自由行程と呼ばれ、散乱が起きる間隔の平均距離を指します。シェーダーでは**radius(半径)として公開されており、通常はscale(スケール)**の乗数と色が付いています。
- AutodeskのArnoldのサブサーフェスパラメータに関するドキュメント(2026年11月10日閲覧)では、radiusを、光が表面の下で散乱できるおおよその距離で、平均自由行程とも呼ばれるものとして説明し、SSSはスケールへの依存性が非常に高いと述べています。
- Blenderマニュアルの「Subsurface Scattering」ノードのページ(2026年11月10日閲覧)では、radiusを、光が表面下で散乱する平均距離として、赤・緑・青それぞれに別の値を持つものと説明し、scaleはその全体にかかる係数としています。
- MaxonのRedshift Standard Materialのドキュメント(2026年11月10日閲覧)では、radiusをセンチメートル単位で設定し、Scaleを掛けて合計の散乱距離を求めます。
ここから、2つの結論が導かれます。1つ目は、色チャンネルごとに別々のradiusを持たせられるため、一部の波長を他よりも遠くまで散乱させることができ、アーティストはこれで肌の暖かい色のにじみを表現していることです。2つ目は、radiusが実際の距離であるため、シーンのスケールが見た目を左右することです。センチメートルで作ったモデルでは柔らかいワックスに見える値が、メートルで作ったモデルでは光るかたまりになってしまいます。Chaosも、V-Rayについて同じ点を指摘しており(散乱半径は実世界の単位を使うため、シーンスケールを確認するよう勧めています)、肌のradiusとしておよそ5〜20 mmを提案しています。
ディフュージョンとランダムウォーク
レンダラーがBSSRDFを近似する方法は大きく2つあり、ほとんどのエンジンが両方を備えています。
ディフュージョン(拡散)法とプロファイル法は、内部を数学的なプロファイルで置き換えます。古典的な例は、2001年のSIGGRAPH論文「A Practical Model for Subsurface Light Transport」(Jensen、Marschner、Levoy、Hanrahan、2026年11月10日閲覧)のダイポール拡散モデルで、牛乳、大理石、肌で検証されています。後発の例には、Per ChristensenとBrent BurleyによるPixar Technical Memo 15-04(2015年7月)があり、アルベドと平均自由行程によって決まる経験的な曲線からプロファイルを作ります。Blenderはこの手法をChristensen-Burleyという名前で採用しています。これらの手法は軽くてなめらかですが、表面が局所的に平坦であることを前提としているため、薄い部分、曲率の強い部分、小さなフィーチャーでは不自然に見えることがあります。
ランダムウォーク法はプロファイルを使いません。メッシュの内部で光の経路を追跡し、ランダムな距離と方向で散乱させながら、経路が外に出るまで続けます。Arnoldのドキュメントによると、ランダムウォークは、拡散理論に基づく経験的な手法とは違って、実際に表面の下を追跡するため、凹んだ形状や薄い形状をより適切に扱えます。その代わり、閉じていないメッシュには敏感です。穴、「マウスバッグ」(口腔内の袋状ジオメトリ)、余分な内部ジオメトリがあると、意図しない影が落ちることがあります。Blender 2.80のリリースノートでは、薄い物体や曲がった物体でより正確な結果が得られるものとしてRandom Walkが導入され、2.93のリリースノートでは、ノイズを減らすためにDwivedi guidingを使うようになったと追記されました。ノイズが以前から弱点として知られていたことがうかがえます。
2つのパネル。ディフュージョンでは入射点の周囲の内部がなめらかなプロファイルに置き換えられ、ランダムウォークではメッシュの内部をギザギザの散乱経路が出口まで追跡されます
これはレンダリングのあらゆる場面で見られるトレードオフです。プロファイルは速く、なめらかで、近似的です。ランダムウォークは遅く、ノイズが多い代わりに、ジオメトリが実際に起こす挙動に近くなります。どのショットにも最適な方法というものはありません。
Cycles、Arnold、V-Ray、Redshift、CoronaにおけるSSSの設定場所
名前は違っても、設定項目は互いに対応しています。表の各行は、この記事にリンクしたベンダーのドキュメントに基づいており、2026年11月10日に確認しました。
| レンダラー | 設定項目の場所 | 選べるもの |
|---|---|---|
| Cycles (Blender) | Principled BSDFのサブサーフェス入力、またはSubsurface Scatteringノード | 手法:Christensen-Burley、Random Walk、Random Walk (Skin)。radius、scale、IOR、anisotropy |
| Arnold | standard_surfaceのsubsurfaceグループ | Weight、color、radius、scale、anisotropy。type:diffusion、randomwalk、randomwalk_v2 |
| V-Ray | VRayMtlのvolumetric translucency、VRayFastSSS2、VRayAlSurface | Scatter radius、subsurface colorとscatter color、phase function |
| Redshift | Standard Material、Subsurfaceグループ | モード:Point-Based Diffusion、Ray-Traced Diffusion、Random Walk。radius、scale、samples |
| Corona | Physical Material、Subsurface ScatteringグループとVolumetric Scatteringグループ | Fraction、radius、scatter color。volumetric scatteringのdirectionality |
Cycles。 Blenderのマニュアルでは、Christensen-BurleyはRandom Walkより精度が低いものの、状況によってはノイズを早く解消できると説明されています。Random Walkは薄い物体や曲がった物体に向いており、閉じたメッシュで最も効果を発揮します。Random Walk (Skin)は、カラーテクスチャに基づいてradiusを調整します。
Arnold。 デフォルトのtypeはrandomwalkです。diffusionは、完全なrandomwalkよりも評価がはるかに軽い近似として説明されています。一方、randomwalkは、平均自由行程が大きい場合にはかなり高速になることがあり、平均自由行程が小さい高密度の媒質では遅くなります。randomwalk_v2は、元の手法よりレンダリングの負荷が高くノイズも多くなり、anisotropyの設定はrandomwalkでのみ機能します。
V-Ray。 Chaosは、refractionを有効にしてtranslucencyをvolumetricに設定したVRayMtl、scatter radiusとphase functionを持つVRayFastSSS2、肌向けに作られたVRayAlSurfaceを挙げています。背景のオブジェクトにはVRayFastSSS2を勧め、volumetric SSSはクローズアップのヒーロー素材のために取っておくよう提案しています。
Redshift。 Standard Materialのドキュメントでは、Point-Based Diffusionは最も速くきれいに仕上がるものの精度は最も低いモードで、プログレッシブレンダリングでは動作しないと説明されています。Ray-Traced Diffusionは精度が高い一方で、遅くノイズも多くなります。Random Walkはデフォルトで最も精度が高く、他のモードより遅くなることがあります。SamplesはRay-Traced DiffusionとRandom Walkにのみ適用されます。
Corona。 Cinema 4D向けCorona Physical Materialのドキュメント(2026年11月10日閲覧)には、Subsurface Scatteringのfraction、radius、scatter colorが挙げられており、これとは別に、absorption color、scattering color、directionality、distanceを持つvolumetricグループがあります。directionalityの値が1または-1に近いと、画像のノイズが増えると警告されています。
SSSでレンダリング時間とノイズが増える理由
Chaosは、SSSによってレンダリング時間が増えると述べており、VRayMtlのvolumetric SSSは計算コストが高いとしています。ただし、SSSを限定的に使えば増加は大きくないとも付け加えています。コストの背景には2つの仕組みがあり、それぞれの影響の大きさは手法によって変わります。そのため、経験則よりもテストフレームを1枚レンダリングするほうが確実です。
ピクセルあたりの経路が増えます。 ランダムウォークは、オブジェクトの内部でトレースされる経路です。SSS表面に当たったカメラレイ1本ごとに、外に出るまで何度も散乱するウォークが生まれることがあり、1サンプルの作業量が増え、サンプルごとのばらつきも大きくなります。分散が大きくなるとノイズ(粒状感)として現れ、きれいにするにはより多くのサンプルが必要です。このトレードオフの一般論は、レイトレーシングとパストレーシングの違いで解説しています。
radiusが大きいほど、必要なサンプルが増えます。 Maxonのドキュメントでは、Ray-Traced Diffusionでは散乱半径が大きいほど、きれいな結果を得るために必要なサンプルが増え、SSS Samplesの設定を上げると、レンダリング時間と引き換えに粒状ノイズが減ると述べられています。
SSSはグローバルイルミネーションにも依存します。Chaosは、GIがないと素材がプラスチックのように見えることがあるため、GIを有効にするよう勧めており、散乱が見えるのは逆光のときだと述べています。アンビエントオクルージョンを使ってシーンを調整してきた方は、この2つが無関係であることに注意してください。オクルージョンは、ある点がどれだけ環境光を受けられるかを近似するものであり、SSSは光が素材に入った後にどこへ行くかを扱うものです。
これらのコストはすべて、全フレームで繰り返されます。24フレーム/秒の10秒のショットは240フレームになるため、1フレームあたり数分の追加でも、積み重なると多くのマシン時間になります。
長いアニメーションでSSSのコストを抑える
次の変更は、見た目を変えずにコストを下げられることが最も多い方法です。いずれも、視聴者に何が見えるかについての判断であるため、自分のフレームで確認してください。
- まずスケールを正しく設定します。 ノイズを判断したりサンプルを調整したりする前に、実世界の単位で作業するか、スケール設定を意図的に調整してください。
- メッシュを修正します。 Blenderは、Random Walkが閉じたメッシュで最も効果的だと述べており、Arnoldは、randomwalkが閉じていないメッシュや内部ジオメトリに敏感だと警告しています。Redshiftは、ジオメトリが重なっているとアーティファクトが出ると記しています。
- 手法をショットに合わせます。 カメラが近い場所では高コストな手法を使い、遠い場所では軽い手法を使います。中距離や背景のキャラクターにはVRayFastSSS2やArnoldのdiffusion、プログレッシブレンダリングが不要な場合はRedshiftのPoint-Based Diffusion、薄い部分があるヒーローのクローズアップにはRandom Walkという使い分けです。
- 見えない場所ではSSSをオフにします。 SSSは、radiusの距離にわたって光をぼかします。その距離が、レンダリング解像度で1ピクセルより小さい場合、誰にも見えない散乱のために計算コストを払うことになります。Arnoldのsubsurface weightはデフォルトが0で、diffuseとSSSをブレンドするため、マテリアルごとに設定するのは普通のことです。
- anisotropyは0付近に保ちます。 Coronaは、directionalityが1または-1に近いとノイズが増えると述べており、Arnoldのanisotropyはrandomwalkにのみ適用されます。
- ノイズが出ている場所にサンプルを使います。 フレーム全体のグローバルサンプリングを上げるのではなく、粒状感の出ているマテリアルのSSSサンプルを上げます。
- 最も重いフレームを2回測定します。 負荷の高いクローズアップを1枚選び、SSS weightを0にしたものと、最終設定のものとでレンダリングしてください。その差が1フレームあたりのSSSコストであり、フレーム数を掛けたものが、必要な数字になります。
SSSのコストを見積もる流れ。ヒーローフレームを1枚、SSSオフとオンでレンダリングし、時間の差を求め、その差にフレーム数を掛けます
シーン全体でレンダリング時間を短縮するための幅広い内容は、サンプリング、デノイズ、ジオメトリ、ライティングを扱ったレンダリング時間の最適化ガイドをご覧ください。
Super Renders FarmでのSSSシーンのレンダリング
SSSは独立した機能ではなくマテリアルの設定であるため、SSSを使ったシーンも、他のシーンと同じようにレンダーファームでレンダリングできます。フレームはバッチジョブとして並列に処理されます。変わるのは1フレームあたりのコストであり、そのため、本番のシーケンスを回す前に数分かけてテストレンダリングする価値があります。
Super Renders Farmはフルマネージドのレンダーファームです。シーンをアップロードすると、ソフトウェア、プラグイン、レンダーライセンスはファームが対応します。BlenderのCyclesとEEVEE、3ds MaxのArnold、V-Ray、Corona、MayaとCinema 4DのRedshiftは、セットアップのリクエストなしですぐに使えます。それ以外のホストとエンジンの組み合わせ、たとえばV-Ray for BlenderやRedshift for 3ds Maxは、リクエストに応じて用意しますので、それらに依存するシーンをアップロードする前に、お問い合わせのうえご確認ください。
Corona、およびCPUモードのArnoldやV-Rayは、当社のCPUノードでレンダリングします。RedshiftはGPUノードでレンダリングします。GPUノードには1ノードあたりRTX 5090が2枚搭載されており、VRAMは1枚あたり32 GBです。メモリはカードごとの容量でプールされないため、Redshiftのシーンは32 GBに収まる必要があります。新規アカウントには$25分の無料レンダークレジットが付与されるため、シーケンスを本番で回す前に、最も重いSSSショットのテストフレームをレンダリングできます。現在の料金は料金ページに掲載しています。
まとめ:ショットごとのSSSアプローチの選び方
| ショットまたはマテリアル | 有力なアプローチ | 理由 |
|---|---|---|
| ヒーローのクローズアップ、薄い部分や曲がった部分がある場合(耳、指) | ランダムウォーク | 表面が平坦であることを前提にしません |
| 中距離または背景のキャラクター | ディフュージョン、または高速なSSSシェーダー | なめらかで軽く、違いが見分けにくいです |
| ワックス、大理石、牛乳 | まずディフュージョン。エッジが不自然ならランダムウォーク | 厚みのある素材はプロファイル法に向いています |
| テストフレームの後もSSSにノイズが残る場合 | スケール、メッシュ、anisotropyを確認し、その後にサンプルを調整 | コストの低い対処を先に行います |
FAQ
Q: サブサーフェススキャタリングとは、簡単に言うと何ですか? A: サブサーフェススキャタリングとは、光が半透明の素材に入り、内部で跳ね返りながら進み、別の位置から出てくる現象です。肌、ワックス、大理石、牛乳が、平坦でプラスチックのような質感ではなく、柔らかくわずかに光って見えるのはこのためです。サブサーフェスシェーダーは、この光の広がりをモデル化します。
Q: BRDFとBSSRDFの違いは何ですか? A: BRDFは、光が届いたのと同じ点から出ていく光を記述します。BSSRDFは、ある点から入り、素材の内部で散乱して別の点から出ていく光も扱います。2つの点を関連づけるため、レンダラーはディフュージョンプロファイルやランダムウォークなどの近似を使います。
Q: SSSにおける平均自由行程とは何ですか? A: 平均自由行程とは、素材の内部で光が散乱と散乱の間に進む平均距離です。レンダラーでは、SSSのradiusとして公開されており、通常はscaleの乗数が付いています。radiusが大きいほど、柔らかくワックスのような見た目になり、実際の距離であるためシーンのスケールに左右されます。
Q: サブサーフェススキャタリングはレンダリング時間を増やしますか? A: はい、増えます。ChaosはSSSによってレンダリング時間が増えると述べており、Maxonは散乱半径が大きいほど、きれいな結果のために多くのサンプルが必要になると記載しています。増加の原因は、素材内部の追加の光の経路と、それによって増えるノイズであり、手法、radius、素材がフレームに占める範囲によって変わります。
Q: SSSにはランダムウォークとディフュージョンのどちらを使うべきですか? A: 薄い形状や曲がった形状を含むクローズアップなど、精度が重要な場面ではランダムウォークを、背景のオブジェクトなど、速度が重要な場面ではディフュージョンを使います。Arnold、Blender、Redshiftはどちらも備えており、Arnoldはどちらが常に速いとは限らないと述べていますので、それぞれで1枚ずつテストフレームをレンダリングして比べてください。
Q: サブサーフェススキャタリングのレンダリングにノイズが出るのはなぜですか? A: ランダムウォーク法はメッシュの内部で経路を追跡するため、分散が増えます。よくある原因は、radiusが大きすぎること、メッシュが閉じていないこと、anisotropyが極端なこと、SSSサンプルが少なすぎることです。まずスケールとジオメトリを直し、次にanisotropyを下げ、その後で該当するマテリアルのサンプルを増やしてください。
Q: サブサーフェススキャタリングを使ったシーンはレンダーファームでレンダリングできますか? A: はい、できます。SSSはマテリアルの設定であるため、シーンは他のシーンと同じようにバッチのフレームとしてレンダリングされます。Super Renders Farmでは、BlenderのCyclesとEEVEE、3ds MaxのArnold、V-Ray、Corona、MayaとCinema 4DのRedshiftは、セットアップのリクエストなしですぐに使えます。それ以外のホストとエンジンの組み合わせはリクエストに応じて用意しますので、アップロードの前にお問い合わせのうえご確認ください。
About Thierry Marc
3D Rendering Expert with over 10 years of experience in the industry. Specialized in Maya, Arnold, and high-end technical workflows for film and advertising.



