Как увеличить расстояние рендеринга raycast? - PullRequest
0 голосов
/ 04 апреля 2019

Чтобы изучить Golang и повеселиться с ним, я попытался преобразовать существующий проект raycaster из C # в Go: https://github.com/harbdog/raycaster-go

Этот оригинальный проект в основном основан на руководстве lodev raycasting .

Я впервые создаю движок raycaster, и мне удалось привести его в исправное рабочее состояние, за исключением одной основной проблемы: расстояние рендеринга слишком мало, и я хотел бы рендерить дальше, но я не вижу очевидный параметр, который позволил бы это. Любые предложения будут оценены!

Вот видео с YouTube, демонстрирующее его, и проблема с расстоянием рендеринга, если вы посмотрите, когда большая стена на расстоянии решает нарисовать: https://www.youtube.com/watch?v=HqNorhH37xY

1 Ответ

0 голосов
/ 07 апреля 2019

Оказалось, что это была ошибка в движке 2D Ebiten 2D , которая была недавно исправлена!Обновление до последней версии Ebiten решило проблему.

go get -u github.com/hajimehoshi/ebiten/...

Суть его заключалась в том, что более старая версия Ebiten не отображала изображения шириной в 1 пиксель с масштабом Y менее 0,25, что в соответствии сдля разработчика Ebiten проблема была в следующем:

ОК, поэтому причиной стал выбор mipmap с линейным фильтром: если определитель геометрической матрицы мал, используется mipmap, но в вашем случае mipmapуровень настолько высок, что ширина изображения становится равной 0. Этого не происходит с ближайшим фильтром, поскольку в этом случае mipmap не используется.

...