Покрутив в свободное время пяток реализаций Брезенхама я уяснил, что не для всего он подходит. Наиболее прилично себя ведет реализация с целыми числами, но и она может "ломаться".
Частичный выход - использовать уже готовый, предрасчитанный граф (привет, Макс!), в котором число "артефактов изгибания" сведено к минимуму (например вручную).
Другой, и кмк более интересный способ - использовать не Брезенхама, а Алгоритм Ву, отсекая освещенность по произвольной нижней границе.
Реализацию второго способа попробую накатать уже в новогодние выходные, перед НГ как-то совсем нет времени.
Precomputed Shade - FOV алгоритм, Golang
Модераторы: Максим Кич, Sanja
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Re: Precomputed Shade - FOV алгоритм, Golang
Проблема Брезенхема в том, что он оперирует точками — то есть объектами нулевого размера. А мы хотим проверить видимость квадратной клетки. Но в общем случае есть куча хороших алгоритмов FOV.
Это у меня проблема заключается в том, что на анизотропных картах они не работают — а для обычной карты, которая двухмерным массивом задаётся, надо брать готовый и не мучиться. Ну или из спортивного интереса что-то пытаться сделать.
Dump the screen? [y/n]
Re: Precomputed Shade - FOV алгоритм, Golang
У них есть фатальный недостаток =)Но в общем случае есть куча хороших алгоритмов FOV...
Естественно из спортивного интереса. Неспортивная, т.е. коммерческая разработка - не про рогалики; есть множество более эффективных способов заработать на жизнь программированием.... из спортивного интереса что-то пытаться сделать.
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Re: Precomputed Shade - FOV алгоритм, Golang
С этим поспорить невозможно.
Спортивная — это когда мы сами себе создаём сложности и героически их преодолеваем, потому что нам это нравится. Вопрос коммерции тут не стоит — хотя DarkGod, скажем, свой ToME как-то продавать умудряется.
Лично я бы ни за какие коврижки не бился об собственный ЛОС, если бы я мог взять готовый. Но существующие ЛОСи либо врут по теням, либо сканируют карту в таком порядке, который в моём случае неприменим.
Было бы что-то готовое — я взял бы и не мучился. Потому что мне интереснее геймплейные фишки и алгоритмы генерации карт покрутить, чем вот это вот всё.
Dump the screen? [y/n]
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость