- /* glUniform1i(glGetUniformLocation(progId, "material.normalMap"), 4); */
- /* glActiveTexture(GL_TEXTURE4); */
- /* if (normalMap) glBindTexture(GL_TEXTURE_2D, normalMap->texId); */
+ if (normal != nullptr) {
+ glUniform1i(glGetUniformLocation(progId, "mat.normalMap"), 1);
+ glActiveTexture(GL_TEXTURE1);
+ glBindTexture(GL_TEXTURE_2D, normal->texId);
+ glUniform1i(glGetUniformLocation(progId, "mat.hasNormal"), 1);
+ } else {
+ glUniform1i(glGetUniformLocation(progId, "mat.hasNormal"), 0);
+ }
+
+ if (metallicRoughness != nullptr) {
+ glUniform1i(glGetUniformLocation(progId, "mat.metallicRoughnessMap"), 2);
+ glActiveTexture(GL_TEXTURE2);
+ glBindTexture(GL_TEXTURE_2D, metallicRoughness->texId);
+ glUniform1i(glGetUniformLocation(progId, "mat.hasMetallicRoughness"), 1);
+ } else {
+ glUniform1i(glGetUniformLocation(progId, "mat.hasMetallicRoughness"), 0);
+ }
+
+ if (ambientOcclusion != nullptr) {
+ glUniform1i(glGetUniformLocation(progId, "mat.aoMap"), 3);
+ glActiveTexture(GL_TEXTURE3);
+ glBindTexture(GL_TEXTURE_2D, ambientOcclusion->texId);
+ glUniform1i(glGetUniformLocation(progId, "mat.hasAo"), 1);
+ } else {
+ glUniform1i(glGetUniformLocation(progId, "mat.hasAo"), 0);
+ }