Рендеринг объекта заставляет карту высот не вычислять

У меня есть карта высот и модель, представленная в моем виде. Когда я визуализирую карту высот без загрузки модели, карта высот прекрасно работает, отображая гористую местность. Но когда я загружаю модель вместе с ней и перестраиваю программу, карта высот не перемещает свои вершины, чтобы представить себя как гористую местность. Вместо этого он остается плоским, как будто вообще не было вычислений карты высот.

Что я заметил, так это то, что если я сначала нарисую карту высот, когда программа компилируется, сцена будет правильно отображать мерцание карты высот, а затем выравнивается при рисовании модели.

    void Game::render()
{
terrain->draw(); // draws heightmap correctly
modelG->draw();  // causes heightmap to flatten
}

-1

Решение

Проблема, которую я обнаружил, заключалась в том, что я не связывал текстуру карты высот в своей функции рисования. Это было связано только один раз при первом создании. Вот почему карта высот отображается правильно, а затем сглаживается навсегда. Итак, в конце концов, мне просто нужно было сделать те же самые вызовы привязки, где я сначала инициализировал текстуру карты высот в функции рисования.

void Terrain::draw()
{
glActiveTexture(GL_TEXTURE0); // solution
glBindTexture(GL_TEXTURE_2D, heightMapTextureID); // solution

mShader.enable();
glBindVertexArray(mVAO);
//draw terrain mesh
glDrawElements(GL_TRIANGLES, TOTAL_INDICES, GL_UNSIGNED_INT, 0);
glBindVertexArray(0);
//unbind mShader
mShader.disable();
}
0

Другие решения


По вопросам рекламы [email protected]