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