opengl-tutorials
opengl-tutorials copied to clipboard
errors found in the source code
YoutubeOpenGL 13 - Model Loading/Model.cpp: //========================================
22 meshes[i].Mesh::Draw(shader, camera, matricesMeshes[i]); // created matrices are not transferred 22 meshes[i].Mesh::Draw(shader, camera, matricesMeshes[i], translationsMeshes[i], rotationsMeshes[i], scalesMeshes[i]); // corrected //-------------------------------------------------------------------- 69 float rotValues[4] = // the function glm::make_quat() already contains a reduction to the "standard" 70 { // and does not expect manual rearrangement 71 node["rotation"][3], // fix to [0] 72 node["rotation"][0], // fix to [1] 73 node["rotation"][1], // fix to [2] 74 node["rotation"][2] // fix to [3] 75 }; 76 rotation = glm::make_quat(rotValues); //-------------------------------------------------------------------- 108 glm::mat4 matNextNode = matrix * matNode * trans * rot * sca; // since it's fixed in sstring 22, it's redundant code 108 glm::mat4 matNextNode = matrix * matNode; // corrected //-------------------------------------------------------------------- 111 if (node.find("mesh") != node.end()) 112 { 113 translationsMeshes.push_back(translation); // now these matrices may never appear 114 rotationsMeshes.push_back(rotation); // 115 scalesMeshes.push_back(scale); // 116 matricesMeshes.push_back(matNextNode); // 117 // 118 loadMesh(node["mesh"]); // 119 } // translationsMeshes.push_back(translation); // rotationsMeshes.push_back(rotation); // This is not a pretty fix at all, scalesMeshes.push_back(scale); // but I haven’t come up with a better one yet matricesMeshes.push_back(matNextNode); // if (node.find("mesh") != node.end()) // { // loadMesh(node["mesh"]); // } // //-------------------------------------------------------------------- 172 unsigned char bytes[] = { data[i++], data[i++], data[i++], data[i++] }; // 201 unsigned char bytes[] = { data[i++], data[i++], data[i++], data[i++] }; // 211 unsigned char bytes[] = { data[i++], data[i++] }; // 221 unsigned char bytes[] = { data[i++], data[i++] }; // 310 vectors.push_back(glm::vec2(floatVec[i++], floatVec[i++])); // may not work 319 vectors.push_back(glm::vec3(floatVec[i++], floatVec[i++], floatVec[i++])); // 328 vectors.push_back(glm::vec4(floatVec[i++], floatVec[i++], floatVec[i++], floatVec[i++]));//
172 unsigned char bytes[] = { data[i ], data[i+1], data[i+2], data[i+3] }; // for(;i=i+4) 201 unsigned char bytes[] = { data[i ], data[i+1], data[i+2], data[i+3] }; // for(;i=i+4) 211 unsigned char bytes[] = { data[i ], data[i+1] }; // for(;i=i+2) 221 unsigned char bytes[] = { data[i ], data[i+1] }; // for(;i=i+2) 310 vectors.push_back(glm::vec2(floatVec[i ], floatVec[i+1])); // for(;i=i+2) 319 vectors.push_back(glm::vec3(floatVec[i ], floatVec[i+1], floatVec[i+2])); // for(;i=i+3) 328 vectors.push_back(glm::vec4(floatVec[i ], floatVec[i+1], floatVec[i+2], floatVec[i+3])); // for(_____;i=i+4)
YoutubeOpenGL 13 - Model Loading/Texture.cpp: //========================================
// this function remains from the first part of the course
11 stbi_set_flip_vertically_on_load(true); // when creating an object JSON, texture orientation is already taken into account // so you need to set a trigger to enable this feature if JSON is not used.
YoutubeOpenGL 13 - Model Loading/default.vert: //========================================
36 crntPos = vec3(model * translation * -rotation * scale * vec4(aPos, 1.0f)); // Now everything will work without "minus": crntPos = vec3(model * translation * rotation * scale * vec4(aPos, 1.0f)); 42 texCoord = mat2(0.0, -1.0, 1.0, 0.0) * aTex; // no longer needed
YoutubeOpenGL 16 - Face Culling & FPS Counter/Main.cpp: //========================================
71 glCullFace(GL_FRONT); // after all the fixes it no longer works glCullFace (GL_BACK); // "the default" value is valid
//========================================