карта высот и карта путей

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

карта высот и карта путей

Сообщение lellel » 11.05.2008 (Вс) 12:01

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

как думаете, стоит возиться? а как бы вы сделали? а может кто то знает более совершенные методы?

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 12.05.2008 (Пн) 12:59

Я бы на твоём месте заюзал бы PhysX, сам его использую в своём проекте, для ландшафта самое то!

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 12.05.2008 (Пн) 15:18

вообще предполагается что в проекте не будет элементов ландшафта.. здание пишу.. только в здании тоже как то надо стены писать, вот и пришло в голову..
а как бы ты здания делал?

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 12.05.2008 (Пн) 22:56

lellel
Вообще здание - это модель или сцена... Всегда так делал. Или вообще bsp карта. Я писал свой формат карт для зданий )))
#define ROFL 0xDDDD

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 13.05.2008 (Вт) 18:27

наверное у меня это сцена.. только как карту путей сделать? карта путей в моем представлении это какой то код, запрещающий ходить сквозь стены..

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.05.2008 (Вт) 18:41

lellel
Выбор оптимального варианта зависит от условий задачи. Будут ли в твоем здании полы с разным уровнем? А несколько этажей, то есть для одной координаты есть несколько вариантов высоты пола?

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 13.05.2008 (Вт) 20:06

что подразумевается под "полами с разным уровнем"?
этажность предполагалась..

вот например хочу дом свои отрисовать, с лестницами, стенами и т.п.
каким образом выгоднее стенки делать? в принципе я только начинающий программист, и тонкостей не знаю.. пробовал писать небольшую комнату, где стенки делал через прямоугольники (в первом посте пытался описать), но возникли проблемы.. поэтому задумался об оптимизации..

как вы делаете такие вещи? посоветуйте что нибудь?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 14.05.2008 (Ср) 9:53

Если будут этажи, то никакой TGA не пойдет, или нужно для каждого этажа делать отдельный файл.
Лестница или порог - это и есть полы с разными уровнями.
Если все комнаты прямоугольные, то задача несложная.
Я бы начинал с написания редактора.

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 14.05.2008 (Ср) 13:35

Я понимаю, что лучше вначале редактор. Вопрос же состоит в способе создания стен. Что нибудь придумать я наверное смогу, мне только интересно как делают другие. Возможно кто то сможет подсказать какой то проверенный, действенный метод.


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList