[Irisy Aqua] Water Surface Shader 3
Hi, it’s been a week.
This is Otorakobo.

This is another continuation of the water surface shader.
I’ve made some progress, so I thought I’d write it down.

The hint I got was to go back to the physical phenomena.
I prepared the shader by considering the physical phenomena that make up the water surface, and then deformed it.

So, first, we developed a normal map to make the water surface look like that.
Then, I added color only to the specular emission.
That is the ↓ image.

However, it was difficult to control the Normal map because the degree of emission changes greatly depending on the angle of the light and the camera angle.

Then, I thought that if we were going to use partial emission anyway, it would be lighter and happier to mask the color with a specular map and express refraction by UV-scrolling the lightmap texture.

It came out like this.

But the dynamic map generation and the contour texture synthesis were not compatible, so I changed the contour from a texture to an edge-extracting shader.

Here it is

It looks like that, but…
The flatness and straight lines were not up to quality, and it was pointed out to me that this strategy itself was a little too subtle.

However, the color boundary surface is perfect, so I was talking with Art about calculating the boundary line and the water surface separately, or applying an environment map with effects on top of it.

Well, that’s all for this week.
Next week I hope to either continue with the water surface or introduce the character model.
See you soon!

【Irisy Aqua】水面シェーダ3
どうも一週間ぶりです。
Otorakoboです。

今回も水面シェーダの続きです。
少し進展があったので、書き留めておこうと思います。

ヒントになったのは一度物理現象に立ち返って考えたことです。
水面を構成する物理現象を一度考えてシェーダを用意し、その後でデフォルメしていきました。

なので、まず水面のみなもをそれっぽくするNormalマップを展開。
そのスペキュラの発光部分にのみ色を付けて見ました。
それが↓
{Image:WaterSurface}

ただ、Normalマップは光の角度、カメラ角度で大きく発光度合が変化するので制御しづらくもありました。
{Image:Normal}{Image:Normal}

そこで、どうせ部分的な発光にするのなら、スペキュラマップで色をマスクし、ライトマップテクスチャをUVスクロールすることで屈折を表現すれば処理も軽くなってハッピーになると考えて

{Image:video}

こんな感じになりました。

おおよそまとまってきたので、ゲーム画面へドッキングしたのですが、マップの動的生成と輪郭テクスチャの合成がすこぶる相性が悪かったため、輪郭をテクスチャからエッジ抽出シェーダに変更しました。

それがこちら
{Image:specular}

それっぽくなってきたんですが…
フラット感やら直線ベースのところがクォリティに達しておらず、この作戦自体がちょっと微妙ではないかと指摘を受けてしまいましたorz

ただ、色の境界面はばっちりなので、境界線と水面を別で計算するとか、この上にエフェクトを載せて環境マップを適用するとかそういう方向で攻めようかとアートとお話していました。

とまぁ、今週はここまで。
来週は水面の続きか、もしくはキャラクタのモデル紹介のどちらかができると良いと思っています。
それでは!