diff --git a/src/SceneGraph/MaterialRenderList.cpp b/src/SceneGraph/MaterialRenderList.cpp index 3c2c8021..ba59b586 100644 --- a/src/SceneGraph/MaterialRenderList.cpp +++ b/src/SceneGraph/MaterialRenderList.cpp @@ -232,11 +232,12 @@ void MaterialRenderList::Render(RenderItem *ri) cmd_buf->DrawIndexed(ri->dd->index_count, ri->count, ri->dd->index_start, - ri->dd->vab_offset[0], - ri->first); + ri->dd->vab_offset[0], //因为vkCmdDrawIndexed的vertexOffset是针对所有VAB的,所以所有的VAB数据都必须是对齐的, + //最终这里使用vab_offset[0]是可以的,因为它也等于其它所有的vab_offset。未来考虑统一成一个。 + ri->first); //这里vkCmdDrawIndexed的firstInstance参数指的是instance Rate更新的VAB的起始实例数,不是指instance批量渲染。 + //所以这里使用ri->first是对的。 - //因为vkCmdDrawIndexed的vertexOffset是针对所有VAB的,所以所有的VAB数据都必须是对齐的,最终这里使用vab_offset[0]是可以的,因为它也等于其它所有的vab_offset。 - //未来考虑看看能不能统一成一个。 + } else {