feat/vtk-3d-view #7

Merged
gaozheng merged 301 commits from feat/vtk-3d-view into main 2026-06-27 18:43:52 +08:00
1 changed files with 10 additions and 2 deletions
Showing only changes of commit 7de221ddce - Show all commits

View File

@ -4140,10 +4140,18 @@ void viewAllRefreshFrustum(ViewAllState* st) {
} }
} }
// 交互进行中:只重算视锥可见性 + 提交目标(非阻塞),主线程立即继续响应输入。 // 交互进行中:只做视锥裁剪(便宜,仅切可见性),绝不提交引擎目标/重建纹理。
// 拖动中频繁提交=20 条体反复重建+上传 GPU→GPU 100% thrash→卡死。拖动只渲已有
// 纹理mapper 降采样保流畅重建只在松手EndInteraction触发一次。
void viewAllOnInteracting(vtkObject*, unsigned long, void* clientData, void*) { void viewAllOnInteracting(vtkObject*, unsigned long, void* clientData, void*) {
auto* st = static_cast<ViewAllState*>(clientData); auto* st = static_cast<ViewAllState*>(clientData);
viewAllRefreshFrustum(st); double planes[24];
st->cam->GetFrustumPlanes(st->aspect, planes);
for (PlacedSource& ps : *st->lines) {
const bool outside = aabbOutsideFrustum(ps.worldBounds, planes);
ps.culled = outside;
ps.volume->SetVisibility(outside ? 0 : 1);
}
} }
// 定时器:非阻塞拉取各可见线后台已就绪的新高清纹理换上 → 有新图才重渲。 // 定时器:非阻塞拉取各可见线后台已就绪的新高清纹理换上 → 有新图才重渲。