Hi, it’s been a week.
It’s been a week.

This week I’ve been rethinking character lights.

Conventional lights are


It looked like this

But the artist asked us to make it a little more like this.


I thought that the conventional light was a little bit more vivid or metallic.

I thought that the conventional image gave a slightly vivid or metallic impression, so I made various adjustments to the lighting to give it a more matte look.

I think the Hi-Def image is probably processed using a lot of global illumination and ambient occlusion, so I will use that image as a reference.
However, this area of processing is complex and heavy, so I challenged myself to see if I could simplify it if possible while trying it out.

First of all, I used physics-based rendering as a hint. It’s called PBR.
https://tech.cygames.co.jp/archives/2129/
I referred to Saige’s site.

As a result, I didn’t understand it well.

I also referred to the Unity standard shader, but it seemed to take a little more time to understand the structure of the internal implementation, so I thought about how I could do it with an approximate model of a Lambert light.

As an approximate necessary element, the shading of the lights is too dense, and I would like to have a way to deal with that. I feel that global illumination is more suitable for the application than ambient occlusion. The current lights are too dark.
I took a hint from this and made it so that the front light is illuminated from the camera side.

With just this, the dark areas were still too dark, so I also set a uniform ambient light.

As for the material


Like this

Apply this to the character

The number of vertices is not so many, so we couldn’t make it look exactly fluffy, but it is somewhat softer than before.

Let’s try to fit this into the current game screen for now.

At first, it seems to be effective.
However, since I will be working on the map shader as well, I will look at the balance again after the map shader is ready.

Next week, I’ll adjust the water surface again.
See you soon!

【Irisy Aqua】全力で照らせ!

どうも一週間ぶりです。
Otorakoboです。

今週はキャラクタライトを再考していました。

従来のライトは
{画像}
こんな感じでした

ですが、アーティストさんからもう少しこんな感じで
{画像}
と、ハイデフレンダの画像が送られてきました。

確かに、これを見ると従来のは少しビビッドというかメタリックな印象を与えてるなと思ったので、もう少しマットな感じの表現にライティングできないか色々調整しました。

ハイデフ画像ではおそらくグローバルイルミネーションやアンビエントオクルージョンをふんだんに使って処理されていると思うので、そっちのイメージを参考にします。
ただ、この辺の処理は複雑かつ重たいので、できれば簡略化できないかどうかを試しながらやれればと挑戦。

まず、ヒントにしたのは物理ベースレンダリング。いわゆるPBRってやつです。
https://tech.cygames.co.jp/archives/2129/
サイゲさんとこを参考にしました。

結果、良くわかりませんでした笑

Unity標準シェーダも参考にしてみたのですが、内部実装の構造を理解するのがもう少し時間がかかりそうだったので、ランバートライトの近似モデルでどうにかできないか考えました。

おおよそ必要な要素としては、ライトの陰影が濃すぎるので、その対応が欲しい。アンビエントオクルージョンよりもどちらかとうとグローバルイルミネーションの方が用途に合っている気がする。現在のライトは暗すぎる。
というところからヒントを得て、カメラ側から正面ライトを照らすようにしました。

これだけだと、やはり暗い部分は暗かったので、一律でアンビエントライトも設定してみました。

マテリアルとしては
{画像}
こんな感じ

これをキャラクタに適用します
{画像}

頂点数が少ないので、正確にふんわり表現にはできなかったのですが、従来に比べて幾分か柔らかくなりました。

こいつをとりあえず今のゲーム画面にはめ込んでみます。
{画像}

ひとまず、効果はあったように思います。
ただ、マップ関連のシェーダも手を入れるので、マップシェーダが出来てからあらためてバランスを見ようと思います。

来週はまた水面を調整しようかと。
それでは!