目次/第07章
07PBR
「濡れている」「粉をふいている」を数値で言う
physically based rendering — 物理ベースの質感
この章の3行まとめ
- 形と模様が合っていても、光り方を外すとプラスチックの飾りになります。
- いまの3Dは、材質を現実の光の振る舞いに沿った少数の数値で表します(PBR)。
- いちばん効くのは roughness(粗さ)。0で鏡、1で紙です。
形と模様が合っていても、光り方を外すとプラスチックの飾りになります。 コードのコメントに何度も出てくる警告です。 いまの3Dは、材質を「現実の光の振る舞い」に沿った少数の数値で表します。これがPBRです。
- roughness(粗さ) — 0で鏡、1で紙。ハイライトの広がりが変わります。いちばん効く数値。
- metallic(金属っぽさ) — 野菜はぜんぶ0。
- clearCoat(透明な上塗り) — 車のワックスのような層。なす・きゅうり・りんごの照りはこれ。
- sheen(布のような照り) — 産毛のある表面が縁で柔らかく光る。オクラで使用。
- subSurface(内部散乱) — 光が中に入って散って出てくる。トウモロコシの粒や玉ねぎの薄皮。
- anisotropy(異方性) — 繊維の方向にハイライトが伸びる。玉ねぎの外皮。
野菜ごとにどれを使うかが、そのまま「その野菜らしさ」になります。 なすとオクラは、どちらも同じような緑〜紫の細長い実なのに、 片方はクリアコート主体、片方はシーン主体。ここを取り違えると別物になります。
実験 — 同じ形を、別の野菜に見せる
粗さを0.05まで下げると、途端に「野菜」から「置物」になります。
つまずきポイント
クリアコートの強さと粗さは、テクスチャの値と掛け算されます。
リンゴ.js の修正履歴に、roughness 0.26 × ORMのG(0.2〜0.6) で
実効0.05まで下がってしまい、周りの建物が映り込んで
「ガラスのリンゴ」になっていた、という記録が残っています。
数値を単体で見ず、掛かった後の値を見ること。
やってみよう
- 粗さを0.05まで下げて、野菜が「置物」になる瞬間を見る。
- ナスのプリセットから、クリアコートだけを0にする。何に見えるか。
- オクラのプリセットで sheen を0にして、産毛の有無を比べる。