diff --git a/src/app/main.cpp b/src/app/main.cpp index 1260151..b58d03b 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -406,6 +406,10 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re } vtkRenderWindowInteractor* interactor = renderWindowPtr->GetInteractor(); if (*showSlice && interactor) { + // 交互时目标帧率↑→体绘制自动降采样(AutoAdjustSampleDistances),拖切片不卡; + // 松手后按 StillUpdateRate 恢复全质量。 + interactor->SetDesiredUpdateRate(20.0); + interactor->SetStillUpdateRate(0.001); const std::vector stops = vcs.stopValues(); const double vmn = stops.size() >= 2 ? stops.front() : 0.0; const double vmx = stops.size() >= 2 ? stops.back() : 1.0; diff --git a/src/render/actors/VoxelActor.cpp b/src/render/actors/VoxelActor.cpp index 0037171..973e97a 100644 --- a/src/render/actors/VoxelActor.cpp +++ b/src/render/actors/VoxelActor.cpp @@ -74,6 +74,9 @@ vtkSmartPointer buildVoxel(const geopro::core::ScalarVolume& vol, // SmartVolumeMapper:有 GPU 走 GPU ray cast,否则自动回退 CPU,避免无 GPU 时卡死/失败。 vtkNew mapper; mapper->SetInputData(img); + // 交互时按 DesiredUpdateRate 自动降采样(与切片共渲时拖动更流畅);静止恢复全质量。 + mapper->SetAutoAdjustSampleDistances(1); + mapper->SetInteractiveAdjustSampleDistances(1); vtkNew prop; prop->SetColor(color);