今日はCGソフトが持ってる問題2つに直面しました。

ひとつは前にもちょっと書いた、スムージングのON/OFFを角度で指定することの問題で

こういうカドを持った形状よくありますね。木製家具とかアンティークな小物とか。
赤線の部分はカドなのでスムージングOFFにしたいわけですが
中間当たりはいいんですが上のほうと下のほうは角度が浅くなるので角度の指定ができないのです。
小さい数値を入れればいいんですが、それだと他の部分にも影響するし、
もっと細かい滑らかなポリゴンになると限りなく0度に近いカドになるのでやはり同じことでしょう。
六角は角度で指定する方式ではないのでこの画像ではスムージングOFFになってますけどね。
私は普段はカドは必ず丸めるので今まで気づきませんでした。
こういう身の回りに良くある形状もこの方式ではできないんですね。
どうしようか悩んでますが。目立たないので放置するか別パーツにするかですね。


もうひとつの問題ってのはプログラムの誤差の問題ですね。
一辺が1cmの正方形を書いたとしましょう。これの対角線は√2cmですね。
プログラム内部では√2で持ってるわけ無くてどこかで切り捨てるか四捨五入してるはずですよね。それが誤差です。
「オレ、対角線なんて使わないからいいよ」と思うかもしれませんが
例えば1cmの正方形を45度回転させると正方形のサイズはその対角線である√2cmになるので
相対座標をリセットした時点でプログラム内部では誤差が発生してるはずです。
切捨てや四捨五入されたものを元の数値に正確に戻すことはできないので
そういう作業(回転を繰り返したり元に戻したりとか)を繰り返すと誤差はどんどん大きくなっていくでしょう。
そのことを意識せずに拡大や縮小するとさらに誤差は大きくなります。
それを考えると誤差ってのは普通にモデリングしてるだけで常に発生してると思っていいでしょう。
例えば、別の方法で作った同サイズの形状を整列機能や数値入力で並べても
それまでの作業で誤差が発生してるはずなので、各面のサイズや角度や座標が一致してるとは思わないほうがいいってことです。
まあどっちの問題もユーザーが意識してればいいってことであって
ソフトにどうこうして欲しいとも思いませんけどね。私も他に良い案は思いつかないし。
どちらかというとユーザーが現状が完璧だと思わないほうがいいよってハナシです。