Three.js CSG ConstructiveSolidGeometry
この記事は、webgl-jp Slack内の情報を元に構成されています。
ThreeCSG.js という Constructive Solid Geometry ライブラリがあるのですが、
使用しようとすると、球体の表面がカクカク(フラットシェーディング)になってしまうようです。
スムースシェーディングにする方法をご存じの方、いらっしゃいますか?
Three.jsにフラット/スムーズを切り替えるフラグがあったような。
どうやら、そのオプションを指定してもダメな感じでした。
FlatとSmoothを指定したときって、内部的にどのような処理がされてるんですかね。
ネイティブのOpenGLなら、APIでフラットとスムースを切り替えられるんですが、
ラスタライザの設定に当たるはずです。
ちなみに、Babylon.js の CSG ライブラリだと、Smooth な感じでした。
描画結果だけ見ると、これシェーディングというか、そういう法線なんじゃないの?
という感じに見えます。
調べてみましたが、CSGをかますと、それまで共通だった頂点が分離さるようになっているようです。
現状、ThreeCSG ライブラリの仕様のようですね。