@YSRKEN トーラスにしたのも計算がなんかおかしいのも一応色を変えれるようにしたのも背景がこんな色なのも全部関係ないのに合わさったらこうなって笑ってる
2023-12-21 22:01:06気づいたんだけど、NURBSの二重点ってそこで鋭角になる可能性がある訳じゃん。そしたら微分不可能な訳じゃん。円はうまく二重点が滑らかになるようなパラメーターを与えてるけど、特別扱いしないといけないのでは?
2023-12-21 23:32:06今まで何がいけなかったかと言うと、実部が0の項に非実部が残り続けていたことだった。0.0だとおかしくてf64::MIN_POSITIVEだと問題ないみたいなケースの結果の差分を見ながら大きく差ができている項を絞り込んで非実部の値が0になっているべきところを消したら直った
2023-12-22 23:40:59いやまあ、これはなんとなく予想していた問題だけど。ポリゴンの頂点がここに集中して、場合によっては面積ゼロのポリゴンができてしまう分割アルゴリズムになってるので
2023-12-22 23:53:23極で法線が変になるのは、わかる・・・ スゲーよくわかる。極は特殊な点からな・・・。だが、極の周りの三角形が全部真っ黒なのはどういうことだああ~~~っ!?ナメやがってこのポリゴン、超イラつくぜェ~~~ッ!!極以外の計算もおかしいってことじゃねーか!チクショーーッ!どういう事だ! pic.twitter.com/UVASuFzxYE
2023-12-23 13:00:23冷静になったギアッチョ「極の法線の全成分がゼロの場合・・・、normalizeしたらゼロ除算が発生するからNaNになっちまう・・・。頂点情報の一つでもNaNがあると、フラグメントシェーダーに渡される値もNaNになって、レンダリング結果の色は黒になっちまうじゃねーか!チクショーーッ!」
2023-12-23 13:10:16極の問題は計算式の修正ではなく、隣り合う制御点が重なっているような条件の時、それ以外の隣の制御点の座標との差がちょうど接平面上のベクトルであることからそれを使って法線を出すようにしたのでした