17 SCREEN_VERT,
sizeof(SCREEN_VERT),
18 SSAO_FRAG,
sizeof(SSAO_FRAG));
24 std::uniform_real_distribution<float> randomFloats(0.0, 1.0);
25 std::default_random_engine generator;
26 std::vector<glm::vec3> ssaoKernel;
27 for (
unsigned int i = 0; i < 64; ++i)
30 randomFloats(generator) * 2.0 - 1.0,
31 randomFloats(generator) * 2.0 - 1.0,
32 randomFloats(generator)
34 sample = glm::normalize(sample);
37 float scale = (float)i / 64.0;
39 scale = 0.1f + scale * scale * 0.9f;
41 ssaoKernel.push_back(sample);
44 mSSAOKernelUBO.load(ssaoKernel.data(), ssaoKernel.size() *
sizeof(glm::vec3));
47 std::vector<glm::vec3> ssaoNoise;
48 for (
unsigned int i = 0; i < 16; i++)
51 randomFloats(generator) * 2.0 - 1.0,
52 randomFloats(generator) * 2.0 - 1.0,
54 ssaoNoise.push_back(noise);
static Program * createProgramSPIRV(const void *vs, size_t vs_len, const void *fs, size_t fs_len, const void *gs=0, size_t gs_len=0)