モデルの描画(Android + Ray Tracing)
モデルのレンダリング
思ったのと違うが、stbi_loadが使えない影響でstbi_load_from_memoryにしているからだろうか?
ただ部位ごとにはtextureで区切れているので、今はこれでよしとしようか。
ガラスで透過した絵が簡単に描けるところもray tracingの強み。
お借りしているモデルはこちら
https://skfb.ly/6S9UN
LICENSE Creative Commons Attribution
https://creativecommons.org/licenses/by/4.0/legalcode
今後の課題
単純な配列をshaderに渡せなかったので、今はmtl(マテリアル)の区切り位置のoffsetを決め打ちでハードコーディングしているので、shaderに渡せるようにしたい。
そのために、
#extension GL_EXT_scalar_block_layout : enable #extension GL_EXT_nonuniform_qualifier : enable #extension GL_GOOGLE_include_directive : enable layout(binding = 3, set = 0, scalar) buffer Vertices {Vertex3D v[];} vertices[]; layout(binding = 4, set = 0) buffer Indices {uint i[];} indices[];
このあたりの、拡張機能を用いてのshaderにbufferを渡している部分の調査と理解が必要。
オブジェクトが増えてくると、descriptor setとかlayoutとかのvulkan側のコーディングが大変になってくるので、何か工夫したい。
pipelineを分けるとか?