Aqoole_Hateenaの技術日記

vulkan+raytraceで色々描いてます

オブジェクトが途中から描画されない場合

概要

オブジェクトが途中から描画されない場合があった。

原因

Top Level ASの更新漏れ

詳細

Khronos Blog - The Khronos Group Inc

the triangles or axis-aligned bounding boxes (AABBs)

とある通り、ray tracingのオブジェクトの範囲はboxで指定されている。

The upper level, the top-level acceleration structure, contains references to a set of bottom-level acceleration structures, each reference including shading and transform information for that reference.

とあり、TLASはBLASの参照をもっているので、BLAS全体を統合し、描画するAABBを決めるものと思われる。
なので、TLASを更新しなければ、最初のAABBの範囲内しか描画されず、上動画のような挙動になってしまう。

Acceleration Structure Hierarchy

引用:
https://www.khronos.org/blog/ray-tracing-in-vulkan

上記絵の物体は、AABBも更新されることを表しているものと思われる。