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
for (int i = 0; i < scene->mMeshes[0]->mNumVertices; i++) {\r
aiVector3D v = scene->mMeshes[0]->mVertices[i];\r
aiVector3D n = scene->mMeshes[0]->mNormals[i];\r
- result.vertices.push_back(v.x * 100);\r
- result.vertices.push_back(v.y * 100);\r
- result.vertices.push_back(v.z * 100);\r
- result.vertices.push_back(n.x * 100);\r
- result.vertices.push_back(n.y * 100);\r
- result.vertices.push_back(n.z * 100);\r
+ result.vertices.push_back(v.x*100);\r
+ result.vertices.push_back(v.y*100);\r
+ result.vertices.push_back(v.z*100);\r
+ result.vertices.push_back(n.x);\r
+ result.vertices.push_back(n.y);\r
+ result.vertices.push_back(n.z);\r
}\r
\r
for (int i = 0; i < scene->mMeshes[0]->mNumFaces; i++) {\r
bool freecam = false;\r
int renderState = 2;\r
float color[3] = { 0.7f, 0.4f, 0.4f };\r
- glm::vec3 lightPos = glm::vec3(0.0f, 0.04f, -0.08f);\r
+ glm::vec3 lightPos = glm::vec3(0.0f, 0.0f, 0.03f);\r
float transmittanceScale = 0.005f;\r
float powBase = 2.718;\r
float powFactor = 1;\r
1, GL_FALSE, glm::value_ptr(lightProj));\r
glUniform1i(glGetUniformLocation(shaderProgramIrradiance, "screenWidth"), window.getSize().x);\r
glUniform1i(glGetUniformLocation(shaderProgramIrradiance, "screenHeight"), window.getSize().y);\r
- glUniform2fv(glGetUniformLocation(shaderProgramIrradiance, "samplePositions"), 13, samplePositions);\r
+ glUniform1fv(glGetUniformLocation(shaderProgramIrradiance, "samplePositions"), 13, samplePositions);\r
glUniform3fv(glGetUniformLocation(shaderProgramIrradiance, "sampleWeights"), 13, sampleWeights);\r
+ glUniform2fv(glGetUniformLocation(shaderProgramIrradiance, "translucencySampleVariances"), 6, translucencySampleVariances);\r
+ glUniform3fv(glGetUniformLocation(shaderProgramIrradiance, "translucencySampleWeights"), 6, translucencySampleWeights);\r
\r
glUniform1f(\r
glGetUniformLocation(shaderProgramIrradiance, "transmittanceScale"),\r
glGetUniformLocation(shaderProgramIrradiance, "viewPos"),\r
1, glm::value_ptr(options.freecam ? freeCam.pos : arcCam.getPos()));\r
\r
+ \r
glUniform1i(glGetUniformLocation(shaderProgramIrradiance, "shadowmapTexture"), 0);\r
glActiveTexture(GL_TEXTURE0 + 0);\r
glBindTexture(GL_TEXTURE_2D, fb_shadowmap.renderTexture);\r