+/*\r
+\r
+TODO:\r
+- Save Depth to fbo\r
+- Stencil Buffer\r
+- LightDist > 1\r
+ - 1 - distanceToBackside in frag_irradiance\r
+- ShadowMap Perspective (no projection?)\r
+- (Implement Gaussian Blur)\r
+- LightDir nicht immer zu 0 0 0\r
+\r
+*/\r
+\r
+float samplePositions[] = {\r
+ 0.000000f, 0.000000f,\r
+ 1.633992f, 0.036795f,\r
+ 0.177801f, 1.717593f,\r
+ -0.194906f, 0.091094f,\r
+ -0.239737f, -0.220217f,\r
+ -0.003530f, -0.118219f,\r
+ 1.320107f, -0.181542f,\r
+ 5.970690f, 0.253378f,\r
+ -1.089250f, 4.958349f,\r
+ -4.015465f, 4.156699f,\r
+ -4.063099f, -4.110150f,\r
+ -0.638605f, -6.297663f,\r
+ 2.542348f, -3.245901f\r
+};\r
+\r
+float sampleWeights[] = {\r
+ 0.220441f, 0.487000f, 0.635000f,\r
+ 0.076356f, 0.064487f, 0.039097f,\r
+ 0.116515f, 0.103222f, 0.064912f,\r
+ 0.064844f, 0.086388f, 0.062272f,\r
+ 0.131798f, 0.151695f, 0.103676f,\r
+ 0.025690f, 0.042728f, 0.033003f,\r
+ 0.048593f, 0.064740f, 0.046131f,\r
+ 0.048092f, 0.003042f, 0.000400f,\r
+ 0.048845f, 0.005406f, 0.001222f,\r
+ 0.051322f, 0.006034f, 0.001420f,\r
+ 0.061428f, 0.009152f, 0.002511f,\r
+ 0.030936f, 0.002868f, 0.000652f,\r
+ 0.073580f, 0.023239f, 0.009703f\r
+};\r
+\r
+float translucencySampleVariances[] = {\r
+ 0.0064,\r
+ 0.0484,\r
+ 0.187,\r
+ 0.567,\r
+ 1.99,\r
+ 7.41,\r
+};\r
+\r
+float translucencySampleWeights[] = {\r
+ 0.233, 0.455, 0.649,\r
+ 0.100, 0.336, 0.344,\r
+ 0.118, 0.198, 0,\r
+ 0.113, 0.007, 0.007,\r
+ 0.358, 0.004, 0,\r
+ 0.078, 0, 0,\r
+};\r
+\r
+struct model {\r
+ std::vector<float> vertices;\r
+ std::vector<GLuint> indices;\r
+\r
+ void draw() {\r
+ if (VAO == 0) initVAO();\r
+ glBindVertexArray(VAO);\r
+ glDrawElements(GL_TRIANGLES, indices.size(), GL_UNSIGNED_INT, 0);\r
+ glBindVertexArray(0);\r
+ }\r