Fixed random seed when run in benchmark mode, use default random engine instead of fixed mersene twister

Refs #269
This commit is contained in:
saschawillems 2018-01-18 21:31:19 +01:00
parent 5790f30c17
commit 9e073bdd3b
11 changed files with 55 additions and 60 deletions

View file

@ -594,16 +594,15 @@ public:
std::vector<InstanceData> instanceData;
instanceData.resize(objectCount);
std::mt19937 rndGenerator((unsigned)time(NULL));
std::default_random_engine rndEngine(benchmark.active ? 0 : (unsigned)time(nullptr));
std::uniform_real_distribution<float> uniformDist(0.0f, 1.0f);
for (uint32_t i = 0; i < objectCount; i++)
{
instanceData[i].rot = glm::vec3(0.0f, float(M_PI) * uniformDist(rndGenerator), 0.0f);
float theta = 2 * float(M_PI) * uniformDist(rndGenerator);
float phi = acos(1 - 2 * uniformDist(rndGenerator));
for (uint32_t i = 0; i < objectCount; i++) {
instanceData[i].rot = glm::vec3(0.0f, float(M_PI) * uniformDist(rndEngine), 0.0f);
float theta = 2 * float(M_PI) * uniformDist(rndEngine);
float phi = acos(1 - 2 * uniformDist(rndEngine));
instanceData[i].pos = glm::vec3(sin(phi) * cos(theta), 0.0f, cos(phi)) * PLANT_RADIUS;
instanceData[i].scale = 1.0f + uniformDist(rndGenerator) * 2.0f;
instanceData[i].scale = 1.0f + uniformDist(rndEngine) * 2.0f;
instanceData[i].texIndex = i / OBJECT_INSTANCE_COUNT;
}