概念の左右と難しさ
数学に関するポエム的な記事です。特に技術的な内容ではありません。圏論の知識があると共感が得やすいと思いますが読むために必須ではありません。
定義は詳細に説明しませんし数学的に厳密な話でもありませんが、明らかに間違ったことを書くつもりもないのでどこかが明らかに間違っていたら指摘してくれると助かります。
追記: 極限の左右を間違えていたので修正しました
数学に関するポエム的な記事です。特に技術的な内容ではありません。圏論の知識があると共感が得やすいと思いますが読むために必須ではありません。
定義は詳細に説明しませんし数学的に厳密な話でもありませんが、明らかに間違ったことを書くつもりもないのでどこかが明らかに間違っていたら指摘してくれると助かります。
追記: 極限の左右を間違えていたので修正しました
少し前に Just a Pool という VRChat のワールドを公開しました。この記事では裏の色々な話や技術解説などを書いていこうと思います。
ワールド探索系の話でなくて恐縮なんですが、この記事は VRChatワールド探索部 Advent Calendar 2022 の20日目の記事になっています。
人間の描いたイラストか AI によって生成された画像かを判別する Human or AI に挑戦したところスコアが低くて悲しかったため、AI の癖を徹底的に分析して自動生成されたイラストを見抜く方法をまとめました。
ググっても出てこなかったので。
2つの楕円が接している(内接 or 外接)かどうか判定する方法についてです。ついでに衝突判定もできます。
最近 Unity で暴れるジョイントを鎮めました。意外と一般的に役立つテクニックではないかと思ったので、原理とともに解説しておきます。
English version is here.
Screen Space で色々やることになったときのメモ。慣れてなかったのでめちゃ混乱しました。
マーチングキューブ法によるメッシュの生成ではいくつかのケースで曖昧性があり、解像度が不十分だと穴が開いてしまうことがあることが知られていますが、実は分類方法と三角形の作り方を工夫することで穴が開かない lookup table を作ることができます。
ググってもすぐに見つからなかったので、lookup table を手動で作るためのツールを作りました。22パターンあって面倒ですが頑張ってください(記事の最後に自分で作ったテーブルを載せておきます)。
毎回忘れて計算し直してるのでメモ。
面は反時計回りを表とする三角形で構成されています。適当に加工して使ってください。
虹色のゼリーを粉砕できるシミュレーションを作りました。
シミュレーションは WebGL 2.0 の機能をふんだんに利用した GPGPU で行われています。機種依存のバグが多すぎてスマホの対応が大変でした(まだ対応できていないスマホもあります)。
やってしまいました。
ここに vec2
の変数があります。
vec2 v;
各要素の精度を 16 ビットまで落として、一つの 32 ビット整数に pack します。
uint a = packHalf2x16(v);
そのままでは出力できなかったので、同じく 32 ビットの浮動小数点数である float
に変換して書き出します。
float output = uintBitsToFloat(a);
次読んだときにはデータは消えていました。