【無料】波なみパターンシェーダー
- うねるパターンシェーダーセットダウンロード商品¥ 0
- カップ麺をおごる(内容は同じです)ダウンロード商品¥ 300

パターンが波打つシェーダーです。 ドット柄、ハート柄、花柄の3種用意しました。 Unity向けマテリアルも入れています。想定している色に設定しました。 【機能】 模様の大きさが時々刻々変化してうねる波のようになります。 各シェーダーでパラメータ設定できます。 色、うねる波の速さや大きさ、パターンの大きさ、花柄の形など。 UV座標を利用してシェーダー(HLSL)で描画しています。タイリングは想定していません、境界が不連続になると思います。 テクスチャは無視して上書きされます。 【内容物】 * zipファイル内 yamoneco_shader.unitypackage と LICENSE.txt、README.md README.mdはこの商品紹介文そのままです。 * unitypackageインポート後 Assets ┗YamonecoStore ┗PatternOcean ┣Materials ┃ ┗ Dot, Flower, Heart のマテリアル ┗Shaders ┣ Dot, Flower, Heart のシェーダー ┗ 共通関数定義ヘッダ(oceans_func.h) 【動いている様子】 ふだん使っているアバターのワンピースに設定してみたものがこれらになります。 * Dot https://x.com/yamoneco/status/1835376829454258527 * Heart https://x.com/yamoneco/status/1835706534405566670 * Flower https://x.com/yamoneco/status/1836087579915247724 【余談】 パターン描写に利用した数学です。 * Dot sin(px)*sin(py) が c(x, y) 以下かどうかで色を変えます。c はノイズ関数により決定。 * Heart (x^2 + y^2 + (9/4)*z^2 - 1)^3 - (x^2 + (9/80)z^2)*y^3 の正負で色を変えます。zはノイズにより決定。 * Flower 基本的には極座標表示の三角です。 k = floor(n*θ/π) mod 2、x = n*θ/π の小数部分として k*max(x, 1-x) + (1 - k)*(min(x, 1-x) + 1) が r より大きいかどうかで色を変えます。丸みはだいたい0 ~1に収まるようにした後、 p 乗して出します。 第一項が谷の部分、第二項が山の部分で、切れ込みcは第二項を (1-k)*(min(min(x, 1-x), max(x-c, 1-x-c)) + 1) として表現します。 * ノイズ関数 Simplexノイズ関数の周期と振幅を変えて足し合わせたやつです。 【参考URL】 * ノイズ関数の実装 https://github.com/hughsk/glsl-noise/blob/master/simplex/3d.glsl 【ライセンス】 zlib/libpng License としました。 特に気にせずそのまま・改変して使っていただいてOKですが、問題が起こっても責任持てないのと、自作発言は禁止されています。