уважаемые жители форума! хотелось бы посоветоваться и узнать ваше мнение..
повсеместно используются карты высот, хранимые в текстурах .tga
меня целиком и полностью устраивает эта карта высот, но нужно еще сделать карту путей (вид от первого лица, бродилка).. я думал сделать на основе разницы в высотах, типа если место куда я хочу встать много выше того места где я стою, то переместиться туда не удастся. все в принципе работает, только возникают проблемы со "скольжением". т.е. камера упирается в "стенку" и не двигается. ведь если перепад высот большой, то камера в принципе должна скользить вдоль этой "стены".. мне это никак не удается..
вообще требуется сделать карту путей для перемещения по помещению, где нет особо сложных форм и карта высот это только один из рассматриваемых мной вариантов. как то я делал карту путей основанную на проверке координат, прописаны прямоугольники в которых перемещение возможно, если координата желаемого места перемещения выходит за определенную сторону такого прямоугольника, где нет следующего, то перемещение не происходит.. там столкнулся с такой проблемой, если есть угол (_| "выпуклый" угол) то есть стык трех таких прямоугольников, то при желании, если идти по биссектрисе, можно выбраться за стенку. мне конечно удалось это сносно решить, но если будет много углов, то это будет слишком муторно..
еще вариант, который я рассмотривал, это использовать 2 карты высот, в качестве карты путей. одна будет дополнять другую, для того чтобы можно было без увеличения плотности точек прописать вертикальную "стену".
работает так: если высоты на картах совпадают, используем нижнюю. если нет, то для точек где не совпадает делаем так: сначала рисуем тонку с нижней карты, потом с верхней точно над или под ней. таким образом образуется вертикальная стена.
если я буду писать комнату, то там будут лишь прямоугольные формы, и наверное не возникнет проблем. но если ландшафт то не знаю.
я еще не пробовал так сделать, только вчера в голову пришло.
как думаете, стоит возиться? а как бы вы сделали? а может кто то знает более совершенные методы?