diff --git a/src/meshlabplugins/filter_ao/filter_ao.cpp b/src/meshlabplugins/filter_ao/filter_ao.cpp index d94f9cd4a..4fc51bcaa 100644 --- a/src/meshlabplugins/filter_ao/filter_ao.cpp +++ b/src/meshlabplugins/filter_ao/filter_ao.cpp @@ -30,8 +30,8 @@ #include - #include +#include #define AMBOCC_MAX_TEXTURE_SIZE 2048 #define AMBOCC_DEFAULT_TEXTURE_SIZE 512 @@ -185,8 +185,11 @@ std::map AmbientOcclusionPlugin::applyFilter(const QActio std::vector coneDirVec; GenNormal::UniformCone(numViews, coneDirVec, math::ToRad(coneAngle), coneDir); - std::random_shuffle(unifDirVec.begin(),unifDirVec.end()); - std::random_shuffle(coneDirVec.begin(),coneDirVec.end()); + { + std::random_device rd; + std::shuffle(unifDirVec.begin(),unifDirVec.end(),std::mt19937(rd())); + std::shuffle(coneDirVec.begin(),coneDirVec.end(), std::mt19937(rd())); + } int unifNum = floor(unifDirVec.size() * (1.0 - dirBias )); int coneNum = floor(coneDirVec.size() * (dirBias ));