RokDeBone2の色とライトについて

RokDeBone2では、
5種類の色の計算方法、3種類の色のオーバーフロー処理、5種類のライトのブレンド方法が使用できます。
さらに、マテリアルを頂点単位で、設定することが出来ます。



色の計算方法

色の計算方法と、オーバーフロー処理は、メインウインドウのツールバーのボタンで、切り替えます。



色旧から色Mまでのボタンで、計算方法を選択し、OFCからOFOまでのボタンで、オーバーフロー処理を選択します。

以下に、それぞれの説明を書きます。

色旧  :  ver1.0.7.9以前の色の計算方式
        自己照明はありません。
        スペキュラーは、形だけの実装です。powerの値が0のときの振る舞いに似ています。
        RokDeBone2の中では、一番、高速な表示が可能です。

色P  :  Phong計算式による色
       自己照明有り。
       メタセコイアのマテリアルのデフォルトと、かなり近いです。
       スペキュラーにPhongの計算式を使用。
       diffuseには、Lambertの計算式を使用。

色B  :  Blinn計算式による色
       自己照明有り。
       スペキュラーにBlinnの計算式を使用。
       diffuseには、Lambertの計算式を使用。

色S  :  Schlick計算式による色
       自己照明有り。
       スペキュラーにSchlickの計算式を使用。
       diffuseには、Lambertの計算式を使用。

色M  :  メタセコイアクラシック色
       メタセコイアのマテリアルで、Classicを選んだときの色
       自己照明有り。

色ト  :  ver2.0.0.2で追加
       テクスチャーを使用したトゥーン表示。
       これを選択した場合、オーバーフロー処理は、どれを設定しても同じになります。

      トゥーンモードの注意点
        陰の生成には、内部でテクスチャーを使っています。
        テクスチャーの色は、マテリアルの色を加工して決定しています。
        白いマテリアルには、陰が付きにくい仕様になっています。
        この点は、RokDeBone2で設定できるようにする予定です。
        陰用のテクスチャは、頂点のマテリアルを面単位に変換し、その色を加工して作成します。
        そのため、頂点ごとに、何十種類もマテリアルが設定してあると、
        テクスチャの量が膨大になります。
        このモードを使用する場合は、面単位のマテリアル設定だけにしておくことを、推奨します。


ver1.0.7.9以前のRokDeBone2で作ったsigファイルでは、そのままでは、自己照明が有効になりません。
RokDeBone2のページのTipsに、SigColorChangeというデータ変換ツールを置いてありますので、
これを使用して、新しい色が扱えるデータに変換してください。


色のオーバーフロー処理とは、色の計算時に、値が255を超えたときの処理のことです。

OFC  :  クランプによる処理
        255以上の色を、ただ、255にセットするだけです。
        一番高速ですが、自己照明や、アンビエントが大きな値の時に、モデルの色が破綻することが多いです。

OFS  :  スケールによる処理
        一番値の大きな色に合わせて、スケーリングします。
        色のバランスが保たれ、破綻することがなくなりますが、ハイライトがつきにくく、ちょっと、暗いイメージになります。

OFO  :  オリジナル処理
        クリップと呼ばれる処理に近いものです。
        明るさを保ったまま、255を超えないようにします。
        ハイライトが付きやすく、3つの中で、一番、明るいイメージになります。



Easy3Dでは、E3DSetShaderType という関数で、
リアルタイムで、モデルごとに、色の計算方法を設定することが出来ます。





ライトのブレンドモード

次にライトの説明をします。
メインウインドウの「平行光源設定」メニューをクリックすると、以下のようなダイアログが出ます。




3Dの球で表示されている部分を、マウスでドラッグすると、マウスの位置から球の中心に向かって光が当たるように設定されます。
マウスを緑の四角から外に出すと、ドラッグ処理が中止されるので、注意してください。

向きは、現在のカメラの向きに対するものなので、
カメラの向きを変えても、ユーザーさんからみて、常に同じ方向から光が当たるようになっています。
(メタセコイアの振る舞いを真似しています。)


ライトとオブジェクトの色のブレンド方式を、5種類の中から選べます。
1,通常
2,スクリーン
3,オーバーレイ
4,ハードライト
5,覆い焼き

これらは、PhotoShopのブレンド方式と、ほぼ、同じです。
ライティングの機能から、はずれるような式は、ちょっと、加工しています。

頂点のdiffuse色に対する処理なので、白い頂点にテクスチャを貼っているようなモデルでは、効果は、ほとんど出ません。
「色旧」ボタンを押しているときは、色のバランスが大きく崩れる場合があります。

モデルの頂点の色の具合によって、効果もかなり、変わってきます。


Easy3Dでは、E3DSetLightBlendMode という関数で、
リアルタイムで、ライトごとに、ブレンド方式を設定できます。





頂点単位のマテリアルの設定

メインウインドウの、ツールバーの、「マ」ボタンを押すと、頂点マテリアル設定モードになります。

頂点毎に、diffuse, specular, ambient, emissive, specular power を設定出来ます。
モデルデータに、リアルな陰影効果を与えたりするのに、有効です。

頂点マテリアルを設定した頂点の色は、ライトの影響を受けて、変化します。


まず、「diffuseの設定」、「specularの設定」、「ambientの設定」、「emissiveの設定」ボタンを押し、
カラーダイアログで、それぞれの色を指定します。
スペキュラーpowerスライダーで、powerの値を指定します。

現在、作成中のマテリアルの照光結果が、3Dの球で表示されます。

塗りたい色が出来たら、メインウインドウのモデルの頂点位置を、マウスでクリックします。
すると、作成した色が、モデルデータの頂点に設定されます。





頂点ペイントは、20回まで、アンドゥーできます。

作成したマテリアルは、16個のマテリアルパレットに保存しながら、作業することが出来ます。

マテリアルパレットは、mplという拡張子のファイル(テキスト形式)で、保存、読み込みが出来るので、
使い回すことが出来ます。




RokDeBone2のトップページに戻る

トップページに戻る