2016年2月12日金曜日

Xorshift*, Xorshift+

出力が64ビット.

Xorshiftの出力が32, 16, 8ビットで速度比較したサイトを見た記憶があるけれど,
ちょっと検索しただけじゃ見つからないな.
まあ, 演算数は変わらないし, 追加で内部状態のコピーぐらいだから, そう速くはならないよね.
デメリットの方が大きいぐらい.

XorshiftがGPLとかいう都市伝説が.
開発者のソースコードがあるなら, それはGPLかもしれない.
論文内のコードにGPLが適用されるのかね.
GPL的には, 誰が書いても同じになってしまうような短いコードには,
ライセンス適用すべきでないといってる. そらそうよ.

Dieharder
乱数のテストにどうぞ.

2016年2月3日水曜日

UnityEngine.UI.Imageを継承した, 任意Polygon描画クラス

適当に作る.
Github


一応はWYSIWYGと言えるかも.
要望次第で, Polygon Collider 2Dの編集インターフェイスと同じにするかもしれません.

タイルベースのレンダリングプロセスには, 扇形は細長い三角形を生成しがちなので良くない.
足りなければ考える.

2016年1月29日金曜日

C#でHopscotch Hashing

https://github.com/taqu/TinyCollections

C#で実装した場合, メモリを多く使った手法に比べて,
2倍くらいの検索時間になる.
挿入処理は, 空き領域の検索に時間がかかる.
私の用途では, 検索速度しか問題にしないが.

ハッシュの衝突が少なかった場合だけ,
C#のSystem.Collections.Generic.Dictionaryより
検索が速くなる.

2015年12月11日金曜日

Gamma補正近似

sRGBからリニアへの変換は, 2乗で近似する.
sRGB to Linear
LinearRGB = sRGB*sRGB; 

2015年12月2日水曜日

Unity3D 5 "Enable Internal Profiler"をスクリプトから設定

PlayerSettings.enableInternalProfilerは, iOS用です.
Androidは, プロパティ名 "AndroidProfiler"です.
//For iOS
PlayerSettings.enableInternalProfiler = true;

//For Android
PlayerSettings[] playerSettings = Resources.FindObjectsOfTypeAll();

foreach(PlayerSettings ps in playerSettings) {
    SerializedObject serializedObject = new SerializedObject(ps);
    SerializedProperty enableInternalProfiler = serializedObject.FindProperty("AndroidProfiler");
    if(null == enableInternalProfiler) {
        continue;
    }
    enableInternalProfiler.boolValue = true;
    serializedObject.ApplyModifiedProperties();
}

2015年11月26日木曜日

セカント法を用いた逆関数補間テーブル

セカント法(Secant Method)
$x_{n+1}=x_n - f(x_n)\frac{x_n - x_{n-1}}{f(x_n)-f(x_{n-1})}$
で逆関数の値を事前に計算し, 後に線形補間で求めるメモ.

2015年11月23日月曜日

Ericsson Texture Compression 1に透過情報を入れる

Unity 3D用のコンバータを作成してみる.
https://github.com/taqu/YUVDither

ETC1 に無理やり透過情報を入れる.