glTFモーフィング描画(アルファテストあり)
glTFモーフィング(アルファテストあり)
アルファテストを用いて透明 or notを判定することにより、必要な部分だけを取り出してモーフィングアニメーションすることができた。
モデルの権利表記
https://sketchfab.com/3d-models/yard-grass-3a67e76decc849c694c228eb590a9902
ライセンス:CC Atribution
https://creativecommons.org/licenses/by/4.0/legalcode
レイトレーシングでのアルファテスト
Googleで調べてみると色々な人が書いているが、レイトレーシングでのアルファテストはanyhit shaderを用いることで達成できる。
anyhit shader内でアルファテストを行い、もし透明な部分にヒットしている場合には
ignoreIntersectionEXT
を用いて交差判定を無視する。
これを用いると、その判定は無視してrayは直進し直し、次の判定に進む。
注意点としては
Khronos Blog - The Khronos Group Inc
にある通り、ではなくを用いる。
instead of appearing as ignoreIntersectionEXT(); it is now simply ignoreIntersectionEXT; when used in a shader.
その他、any hit shaderの実装方法についてはnvidia様が作成しているvulkan raytracing tutorialが参考になる。
github.com