mail4 google-plus3 facebook3 twitter3 vimeo3 github menu list next prev

ofxIBL

ibltest
ofxIBL_thumbnail

https://github.com/yasuhirohoshino/ofxIBL

openFrameworksでIBL(Image Based Lighting)を行うアドオンです。
環境の画像を光源として扱うため、デフォルトのofLightなどを使ったライティングよりも、自然でリアルなライティングを行うことができます。

アドオンは以下の3つのクラスにより構成されます。

・ofxFilteredCubeMap : 1枚のパノラマ画像からキューブマップを作成し、管理するクラス
・ofxIBLMaterial : レンダリングするオブジェクトの色やテクスチャー、ラフネス、メタリックなど、質感を管理するクラス
・ofxIBL : キューブマップとマテリアルの情報からIBLを実行するクラス

ofxFilteredCubeMap
Equarectangularの画像を読み込み、キューブマップを作成します。
キューブマップ作成時に、複数のブラーがかかったテクスチャーを作成し、一つのキューブマップのMipMapに登録します。
毎回テクスチャーを作成するのは時間がかかるため、キャッシュを取ることもできます。
また、.hdrや.exr形式の画像を読み込むことも可能であり、HDR画像を読み込んだ場合、その後のレンダリング時に自動的にHDRレンダリングが実行されます。

ofxIBLMaterial
以下の8つのパラメーターを用い、レンダリングするオブジェクトの質感を設定します。
BaseColor : オブジェクトの基本色(Albedoとも呼ばれます)
Roughness : オブジェクトの表面の荒さ
Metallic : オブジェクトの表面の反射率
Normal Map : 法線マップ
Occlusion Map : オブジェクトの際の部分や凹みの部分など、光が届かず陰になっている部分を描画したテクスチャー
Emission Map : 発光するためにライティングの影響を受けない部分を描画したテクスチャー
Detail BaseColor Map : 細かい質感表現のために、ベースカラーに加えて適用するテクスチャー
Detail Normal Map : 細かい質感表現のために、元の法線マップに加えて適用する法線マップ

BaseColor

Roughness

Metallic

Normal Map

Occlusion Map

Emission Map

Texture Repeat

Detail Maps

ofxIBL
以下のようにしてofxIBLにカメラとキューブマップのポインタを渡し、マテリアルにはofxIBL::getShaderPtr()を渡します。

Pocket

6 / 10