深度缓冲:不关心片段是否透明,只关心深度,在后面的自然被前面的遮挡; 由于这三个窗户的绘制顺序为:
std::vector<glm::vec3> vegetation; vegetation.push_back(glm::vec3(-1.5f, 0.0f, -0.48f)); vegetation.push_back(glm::vec3(1.5f, 0.0f, 0.51f)); vegetation.push_back(glm::vec3(0.0f, 0.0f, 0.7f));//最前面的 vegetation.push_back(glm::vec3(-0.3f, 0.0f, -2.3f));//最后一层玻璃 vegetation.push_back(glm::vec3(0.5f, 0.0f, -0.6f));//中间层玻璃将绘制顺序改变一下:
std::vector<glm::vec3> vegetation; vegetation.push_back(glm::vec3(-1.5f, 0.0f, -0.48f)); vegetation.push_back(glm::vec3(1.5f, 0.0f, 0.51f)); vegetation.push_back(glm::vec3(-0.3f, 0.0f, -2.3f));//最后一层玻璃 vegetation.push_back(glm::vec3(0.5f, 0.0f, -0.6f));//中间层玻璃 vegetation.push_back(glm::vec3(0.0f, 0.0f, 0.7f));//最前面的不管其他两块玻璃,就看这3块玻璃 观察z值,优先绘制后面的片段,就会避免这类问题。