2022.09.06
Diary
けっきょく SCNTechnique のでステンシルバッファは諦めて普通の color render texture にマスク描いて自分でシェーダーで合成するようにしたらいけたけど同じことを ARSCNView でやろうとしたらやっぱりすんなりいかなくてそこでも時間くったけど Xcode の GPU Tracing で細かく描画ステップが見れてどの render texture がどうつながってるのかも見れたりするのがわかったのでそこは収穫。
けっきょく SCNTechnique のでステンシルバッファは諦めて普通の color render texture にマスク描いて自分でシェーダーで合成するようにしたらいけたけど同じことを ARSCNView でやろうとしたらやっぱりすんなりいかなくてそこでも時間くったけど Xcode の GPU Tracing で細かく描画ステップが見れてどの render texture がどうつながってるのかも見れたりするのがわかったのでそこは収穫。
ライティングの設定をいじくりまわしてもどうにもいい感じにできないっぽかったのでしょうがないので directional light で shadow map するみたいなやつを全部自前で実装したらいちおうそれっぽくはなったけど嘘っぱちなので影の形が気に入らんのだけどまあ初見では気づかないレベルなのでたぶんこれでよさそう。
なーんかオブジェクトの動きがおかしいんで SCNView.debugOptions に .showPhysicsShapes くっつけてデバッグ表示してみるとこれの描画も全然狂ってて原因がさっぱりわからんのでコードをちょっとずつコメントアウトしながら原因を探ったところ SCNLight.shadowMode が .deferred だと狂うというまた新たな SceneKit の謎を知ったところで結局動きの問題は別のとこにあったのでした。