
深夜。太陽が最も沈んでいるとき。
白色の作業場所の床が青白く見えます。
あたりは真っ暗。

日の出10分前。
あたりは暗いですが、大気の色に変化が出始めます。
白色の床は、普通に白く見えています。

日の出5分前、あたりは明るく星が消えます。
やや赤みかがって見えてきます。

日の出。
そう、時間軸で見ると日の出なのに
太陽が沈んだ位置にあります。
Z軸だけで判断するとダメそうですね。
そして、そのときの空は下の画像のように青いです。
ただし太陽のある方向の大気は、かなり赤みを帯びています。

以前アバター用全自動Face Lightを作ったときに
太陽の位置から光源の照射量を調節するという観点で作成しました。
一般によくある光量変化があるFace Lightでは単純に昼と夜
つまり太陽が昇っているか、沈んでいるかに着目して光量を2パターンで変化させるという仕組みを多く見かけますが
私のFaceLightでは、それぞれ太陽が真上、真下の場合の調整値を最大値と捉えて
太陽の位置が整数、負数で切り替わる、つまりゼロまでのz軸~それぞれの最大値までを変化量として
現在の太陽の高さから算出した値で光源を照射させるという仕掛けでした。
本来ならX軸とY軸を見て、どの位置に太陽があるかを参照すべきですが
太陽の軌道が最大で+- 5度ほどズレが生じることと、
アバターの顔の向きが 一定ではないことからX軸とY軸を参照して太陽の東西方向の位置について加減することは無意味だと考えて
Z軸による高さでのみ光量調整の参照値としたものです。
しかしながら、このFaceLightはWindLightクライアント以前に作った物なので
現在のクライアントで運用するには役不足に感じています。
そう、WindLightのクライアントは大気シェーダーなどにより環境描写の演出が派手なのです。
多くの人は、これをFaceLightの光量が足りないと感じるかも知れませんが
私は、そうは思いません。環境に適合した照明を付けていないだけだと考えます。
それは色温度です。
光量を調節するだけでなく適切な色温度で照射する必要があると考えます。
色温度がどのように変わるか
windLightの設定を得る関数はRLV(RestrainedLifeViewer)にはそのコマンドがv1.15から搭載されていますが
FaceLight等の用途であればノーマルのクライアントを想定して作らなければならないので
それに代わる環境変化の値を見つけなければなりません。
とりあえずは時間軸で環境変化を捉えることが出来そうです。
早く新しいフェースライト
返信削除作ってほしいなぁ
あはは
殆どの人がFaceLightに求める効能が「顔の変な陰影を消す」ことだと思いますが、この記事で調整している部分は照射位置ではなく、照射する色のことです。以前に作ったThink FaceLightでは光量を調節することで変化を与えていましたが、照射する色については日中と夜中の2パターンしか持っていなかったので、日の出、日中、日の入り、夜中の4分パターン分基本色を与えられるようにしようと思っています。
返信削除顔の不自然な陰が出るのは、太陽が横から照射している場合に発生するので単純にアバターを太陽の方向に向けば陰は出にくくなりますが、それを環境光(FaceLight)で消そうとすると、一番簡単なのがカメラ位置全てを覆うような照明ってことになります。よくある10m級照明をFaceLightとして装着している状態ですね。まぁあれは光害でしょう :3
なんだかわかんないけど
返信削除すごいのができそうだね~~
楽しみ~~