agehama's diary

年一更新

プログラミング

ピクセルシェーダで空を描く

Siv3Dが(2D限定で)ピクセルシェーダをサポートしたらしいので、GPU Gems 2に載っていた大気散乱シミュレーションのコードを移植してみました。頂点シェーダからそのままピクセルシェーダに移しただけなので少し遅いです。大気散乱シミュレーションについては…

平行

#include <Siv3D.hpp> const double eps = 1e-8; bool isZero(const Vec2& v) { return v.length() < eps; } bool operator||(const Vec2& v1, const Vec2& v2) { return !isZero(v1) && !isZero(v2) && (1.0 - eps) < Abs(v1.normalized().dot(v2.normalized())); } vo</siv3d.hpp>…

加算ブレンドでメタボールっぽい表現

円形の光の画像を用意して、加算ブレンドでたくさん描画した後、比較ブレンド?で閾値以下の明度の部分を単色で塗りつぶせばそれっぽくなりそうと思った。光の画像はここの濃度分布関数を参考にして作った。 http://www.syuhitu.org/other/meta/meta.html ソ…

音ゲー制作の準備

今度サークルで音ゲーを作るので、その練習でStepManiaを参考にしたゲームをSiv3Dを使って作ってみた。音ゲーは当たり判定処理が少し不安だったけど、案外簡単にできた。どちらかというとプログラミングよりも、曲数の確保とか、単純なゲームシステムの中で…