Fixed random seed when run in benchmark mode, use default random engine instead of fixed mersene twister
Refs #269
This commit is contained in:
parent
5790f30c17
commit
9e073bdd3b
11 changed files with 55 additions and 60 deletions
|
|
@ -1007,17 +1007,16 @@ public:
|
|||
updateUniformBufferSSAOParams();
|
||||
|
||||
// SSAO
|
||||
std::default_random_engine rndEngine(benchmark.active ? 0 : (unsigned)time(nullptr));
|
||||
std::uniform_real_distribution<float> rndDist(0.0f, 1.0f);
|
||||
std::random_device rndDev;
|
||||
std::default_random_engine rndGen;
|
||||
|
||||
// Sample kernel
|
||||
std::vector<glm::vec4> ssaoKernel(SSAO_KERNEL_SIZE);
|
||||
for (uint32_t i = 0; i < SSAO_KERNEL_SIZE; ++i)
|
||||
{
|
||||
glm::vec3 sample(rndDist(rndGen) * 2.0 - 1.0, rndDist(rndGen) * 2.0 - 1.0, rndDist(rndGen));
|
||||
glm::vec3 sample(rndDist(rndEngine) * 2.0 - 1.0, rndDist(rndEngine) * 2.0 - 1.0, rndDist(rndEngine));
|
||||
sample = glm::normalize(sample);
|
||||
sample *= rndDist(rndGen);
|
||||
sample *= rndDist(rndEngine);
|
||||
float scale = float(i) / float(SSAO_KERNEL_SIZE);
|
||||
scale = lerp(0.1f, 1.0f, scale * scale);
|
||||
ssaoKernel[i] = glm::vec4(sample * scale, 0.0f);
|
||||
|
|
@ -1035,7 +1034,7 @@ public:
|
|||
std::vector<glm::vec4> ssaoNoise(SSAO_NOISE_DIM * SSAO_NOISE_DIM);
|
||||
for (uint32_t i = 0; i < static_cast<uint32_t>(ssaoNoise.size()); i++)
|
||||
{
|
||||
ssaoNoise[i] = glm::vec4(rndDist(rndGen) * 2.0f - 1.0f, rndDist(rndGen) * 2.0f - 1.0f, 0.0f, 0.0f);
|
||||
ssaoNoise[i] = glm::vec4(rndDist(rndEngine) * 2.0f - 1.0f, rndDist(rndEngine) * 2.0f - 1.0f, 0.0f, 0.0f);
|
||||
}
|
||||
// Upload as texture
|
||||
textures.ssaoNoise.fromBuffer(ssaoNoise.data(), ssaoNoise.size() * sizeof(glm::vec4), VK_FORMAT_R32G32B32A32_SFLOAT, SSAO_NOISE_DIM, SSAO_NOISE_DIM, vulkanDevice, queue, VK_FILTER_NEAREST);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue