В настоящее время я работаю над своим игровым движком, и у меня возникают проблемы, с которыми я не могу разобраться. Я передумал настраивать свою собственную математическую библиотеку, поэтому вернулся к использованию GLM, потому что это идеальное решение.
Но тут возникает проблема, с моим кодом все работает хорошо, но теперь с измененными функциями у меня возникает проблема с отсечением и пересечением объектов.
Это первое изображение показывает, как выглядит моя сцена, когда она увеличена. Все выглядит почти идеально, и плоскость правильно пересекает куб.
Прокрутка перекрестка случайным образом искажается, и я не могу объяснить, что происходит, и не имею ни малейшего понятия, где находится моя проблема.
Вот как я вычисляю свою матрицу проекции:
proj = glm::perspective((double)fovy, (double)aspect, (double)nearPlane,(double) farPlane);
и вот как я вычисляю представление:
view = glm::lookAt(pos, tar, gameObject->transform.getUp());
Я знаю, что я должен опубликовать больше кода, но есть так много, что я действительно не знаю, с чего начать. Поэтому, пожалуйста, скажите мне, какой код может быть важен, и я опубликовал его. Заранее большое спасибо, и я надеюсь, что кто-нибудь сможет мне помочь. Если нужно больше фотографий, пожалуйста, скажите мне.
Похоже, вам не хватает разрешения по глубине. Это происходит когда nearPlane
очень маленький и farPlane
очень большой Например, от 0,0001 до 10000,0 даст вам низкое разрешение по глубине.
Делать nearPlane
больше и farPlane
меньше.
Других решений пока нет …