「物理ベースレンダリング」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「'''物理ベースレンダリング'''(Physically Based Rendering、PBR)とは、「素材(マテリアル)」を考慮してライティングすることをい…」)
 
 
(同じ利用者による、間の5版が非表示)
1行目: 1行目:
'''物理ベースレンダリング'''(Physically Based Rendering、PBR)とは、「素材(マテリアル)」を考慮してライティングすることをいう。
+
'''物理ベースレンダリング'''(Physically Based Rendering、PBR)とは、[[3DCG]]において物体の「素材(マテリアル)」を考慮してライティングする手法をいう。
  
== 概要 ==
+
==概要==
[[シェーダー]]の教科書によくある[[Lambert]]や[[Phong]]では[[ディフューズ]]や[[スペキュラー]]を計算してその結果を単純に足し合わせることで色を決めている。
+
「物理」というと[[物理演算]]のようなものを思い浮かべるかもしれないが、それは「[[レイトレーシング]]」や「[[パストレーシング]]」の世界である。物理ベースレンダリングはそこまで壮大ではない。
 +
 
 +
大雑把にいえば従来は[[Lambert]]や[[Phong]]では「光沢感」を決めるパラメーターを「ライト」に持たせていたが、それを「モデル」に持たせるようにしたものである。
 +
 
 +
[[シェーダー]]の教科書によくある[[Lambert]]や[[Phong]]では[[ディフューズ]]や[[スペキュラー]]を計算してその結果を単純に足し合わせることで色を決めている。「光」ばかり計算してモデル側は色と[[法線]]くらいしか考慮していない。
  
 
   PixelColor = ambient + diffuse + specular;
 
   PixelColor = ambient + diffuse + specular;
  
一方、PBRではそこに「素材(マテリアル)」という概念を追加して、ディフューズやスペキュラーに「鏡面反射の度合い」や「透明度」などの係数をかけ合わせることで「質感」を表現しようというものである。
+
一方、PBRでは「モデルの素材(マテリアル)」という概念を追加し、「鏡面反射の度合い」や「透明度」などの係数を[[テクスチャ]]の一種として保持し、それらを利用することで「ピクセル単位の質感」を表現しようというものです。
 
 
「物理」というと[[物理演算]]のようなものを思い浮かべるかもしれないが、それは「[[レイトレーシング]]」や「[[パストレーシング]]」の世界である。物理ベースレンダリングはそこまで壮大ではない。
 
  
== マテリアル ==
+
==マテリアル==
PBRの「素材の要素」は実装により異なる。
+
PBRの「素材の要素」は実装により異なる。よくあるのは「メタリック」と「ラフネス」だ。この2つはほぼ確実に実装されている。さらに「透明度」や「屈折率」、「発光」といった要素を採用している実装もある。
よくあるのは「メタリック」と「ラフネス」だ。
 
「透明度」や「屈折率」、「発光」といった要素を採用している実装もある。
 
  
=== メタリック ===
+
===メタリック===
メタリックは金属感を表し、主にディフューズに作用する。
+
メタリックは金属感を表し、主に[[ディフューズ]]に作用する。
  
* 範囲:0.0 - 1.0
+
*範囲:0.0 - 1.0
* 「0.0」のときはベースカラーがそのまま使われ、
+
*「0.0」のときはベースカラーがそのまま使われ、
* 「1.0」のときは鏡面反射しまくりとして処理される。
+
*「1.0」のときは鏡面反射しまくりとして処理される。
  
=== ラフネス ===
+
===ラフネス===
ラフネスはザラザラ感を表し、主にスペキュラーに作用する。
+
ラフネスはザラザラ感を表し、主に[[スペキュラー]]に作用する。
  
* 範囲:0.0 - 1.0
+
*範囲:0.0 - 1.0
* 1.0に近づくほど「ザラザラである」とされスペキュラーが弱まる。
+
*1.0に近づくほど「ザラザラである」とされスペキュラーが弱まる。
  
== 関連項目 ==
+
==関連項目==
* [[ランバード反射モデル]]
+
*[[ランバート反射モデル]]
* [[フォン反射モデル]]
+
*[[フォン反射モデル]]
* [[ブリン・フォン反射モデル]]
+
*[[ブリン・フォン反射モデル]]
* [[物理ベースレンダリング]]
+
*[[物理ベースレンダリング]]
  
 
[[category: 3DCG]]
 
[[category: 3DCG]]

2023年3月13日 (月) 06:35時点における最新版

物理ベースレンダリング(Physically Based Rendering、PBR)とは、3DCGにおいて物体の「素材(マテリアル)」を考慮してライティングする手法をいう。

概要[編集 | ソースを編集]

「物理」というと物理演算のようなものを思い浮かべるかもしれないが、それは「レイトレーシング」や「パストレーシング」の世界である。物理ベースレンダリングはそこまで壮大ではない。

大雑把にいえば従来はLambertPhongでは「光沢感」を決めるパラメーターを「ライト」に持たせていたが、それを「モデル」に持たせるようにしたものである。

シェーダーの教科書によくあるLambertPhongではディフューズスペキュラーを計算してその結果を単純に足し合わせることで色を決めている。「光」ばかり計算してモデル側は色と法線くらいしか考慮していない。

 PixelColor = ambient + diffuse + specular;

一方、PBRでは「モデルの素材(マテリアル)」という概念を追加し、「鏡面反射の度合い」や「透明度」などの係数をテクスチャの一種として保持し、それらを利用することで「ピクセル単位の質感」を表現しようというものです。

マテリアル[編集 | ソースを編集]

PBRの「素材の要素」は実装により異なる。よくあるのは「メタリック」と「ラフネス」だ。この2つはほぼ確実に実装されている。さらに「透明度」や「屈折率」、「発光」といった要素を採用している実装もある。

メタリック[編集 | ソースを編集]

メタリックは金属感を表し、主にディフューズに作用する。

  • 範囲:0.0 - 1.0
  • 「0.0」のときはベースカラーがそのまま使われ、
  • 「1.0」のときは鏡面反射しまくりとして処理される。

ラフネス[編集 | ソースを編集]

ラフネスはザラザラ感を表し、主にスペキュラーに作用する。

  • 範囲:0.0 - 1.0
  • 1.0に近づくほど「ザラザラである」とされスペキュラーが弱まる。

関連項目[編集 | ソースを編集]