| 1818 | } |
| 1819 | |
| 1820 | void Scene::updateForInverseRendering(RenderContext* pRenderContext, bool isMaterialChanged, bool isMeshChanged) |
| 1821 | { |
| 1822 | mUpdates = IScene::UpdateFlags::None; |
| 1823 | if (isMaterialChanged) mUpdates |= updateMaterials(false); |
| 1824 | |
| 1825 | if (isMeshChanged) mUpdates |= IScene::UpdateFlags::MeshesChanged; |
| 1826 | pRenderContext->submit(); |
| 1827 | |
| 1828 | bool blasUpdateRequired = is_set(mUpdates, IScene::UpdateFlags::MeshesChanged); |
| 1829 | if (mBlasDataValid && blasUpdateRequired) |
| 1830 | { |
| 1831 | invalidateTlasCache(); |
| 1832 | buildBlas(pRenderContext); |
| 1833 | } |
| 1834 | |
| 1835 | mUpdateFlagsSignal(mUpdates); |
| 1836 | |
| 1837 | // TODO: Update light collection if we allow changing area lights. |
| 1838 | } |
| 1839 | |
| 1840 | IScene::UpdateFlags Scene::update(RenderContext* pRenderContext, double currentTime) |
| 1841 | { |
no test coverage detected