2022-01-01から1年間の記事一覧
シェーダーにおいて,組み込み関数である normalize() にゼロベクトルを渡した場合,NaN になる. 正規化ベクトルの定義からも当然である. \begin{equation} normalize(\boldsymbol{v}) = \dfrac{\boldsymbol{v}}{\| \boldsymbol{v} \|} \end{equation} シ…
TL;DR シェーダー言語によってその言語組み込みの fmod() (mod()) の実装は異なるため注意する必要がある. 挙動の罠に引っかからないためには自前で実装するのが安全である. GLSL // Equivalent to mod() in GLSL. float fmodglsl(float x, float y) { r…