IDE: xcode
Система: MacOS
Что я пытаюсь сделать
Мой проект [репо] находится в точке, где я успешно выполнил работу skybox [ссылка на учебник] , но я борюсь с загрузкой модели assimp [учебник ссылка] .
проблема
Я не получаю никаких ошибок. Модель просто не загружается в окно, хотя я добавил cout << vertices.data() << endl;
[ссылка на строку github] на соответствующей строке в model.h
[ссылка на строку github] после того, как он инициализируется в main.cpp
[ссылка на строку github] , которая печатает 0x106e6b000
, поэтому вершины моделей загружаются.
Тем не менее, окно остается пустым, кроме цвета фона.
В уроке [ссылка на видео на YouTube с отметкой времени] , которому я добросовестно следовал, он работает.
Что я пытаюсь получить:
Я пытаюсь визуализировать модель nanosuit.obj
, которая, как оказалось, имеет красный цвет. ourModel.Draw( shader );
должна нарисовать ее, но не делает, или она не отображается.
По какой-то причине он не отображается, несмотря на отсутствие ошибок, которые не могут быть найдены или вызвали исключения.
Я бы с удовольствием дал MCVE, но код в нем очень сильно взаимосвязан, отсюда и ссылки на github.
Насколько я могу сказать, это должно нарисовать модель, если она не жалуется.
// Draw the loaded model
glm::mat4 model;
model = glm::translate( model, glm::vec3( 0.0f, -1.75f, 0.0f ) ); // Translate it down a bit so it's at the center of the scene
model = glm::scale( model, glm::vec3( 0.2f, 0.2f, 0.2f ) ); // It's a bit too big for our scene, so scale it down
glUniformMatrix4fv( glGetUniformLocation( shader.Program, "model" ), 1, GL_FALSE, glm::value_ptr( model ) );
ourModel.Draw( shader );
Материал, который я пробовал:
- Вращение камеры, чтобы проверить, отображается ли модель за пределами моего поля зрения
- играет с масштабированием
- загрузка других
.obj
с
- печать переменных, которые передаются, только чтобы увидеть, что действительно загружается модель, просто не отображается
Я пытаюсь не кодировать дамп, отсюда и ссылки на строки. Не стесняйтесь сказать мне, если вы хотите фрагменты кода. Я как бы потерялся здесь из-за того, почему это происходит.
Edit:
@ Ботье предложил мне попробовать следующие вещи:
modelLoading.frag
[repo, line link] для применения красного цвета вместо текстур, чтобы минимизировать риск того, что что-то не так с текстурами моделей. Был неэффективен. До сих пор нет модели.
void main( )
{
//color = vec4( texture( texture_diffuse, TexCoords ));
color = vec4( 1.0f, 0.0f, 0.0f, 1.0f);
}
In model.h
, отредактировано cout << vertices.size() << endl;
[репо, ссылка на линию] печатает, что правильно для модели nanosuit.obj
из учебника. У меня там была планета, которая не была частью учебника, поэтому 0x106e6b000
из ранее. Я теперь получаю за vertices.size()
:
156 15222 19350 78 6804 7248 8316
Итак, модель определенно загружается, но не рендерится. Проблема должна быть у меня где-то после загрузки модели, но до рендеринга.