World作ってて「隣接する部屋で、一方の部屋のOcclusion Cullingが正常に動作せず、意図せずオブジェクトがCulling されてしまう」というOcclusion Culling のバグ(仕様?)に遭遇したのでメモ

隣接する部屋で、一方の部屋のOcclusion Cullingが正常に動作せず、意図せずオブジェクトがCulling されてしまう

という症状。

最初はBakeミスかと思ったけど、どうやらそうでもなかった。

Occluder Static を解除すると正常に戻ったので、どうもその判定が暴発してる模様。

なぜ暴発するのか、個別にオブジェクットを見て行ったら、複数のOccluderが近接する時、

  • あまりに近すぎる
  • Overlapしている

場合、メッシュの形状によっては暴発するっぽい。

故に、隣接する壁のメッシュのOccluder Staticを外すだけで、最終的には正常に戻った。

これが暴発すると、近くの別のOccluderまでおかしくなったので、タチが悪かった。(推測だが、内部的にBatchingされたから、結合されたOccluderまで影響をうけた可能性)

そして、この検証をしてる時に「Reflection Probeの計算は、Occlusion Culling の影響を受ける」というのに改めて気づき、Reflection Probeで稀にSkyboxが焼けてしまう問題の原因の解明になった。

Previous Post Next Post

特定の配置で Occlusion Culling が暴発する