forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Вопрос про большой террейн и как по нему ходить! (http://forum.boolean.name/showthread.php?t=7987)

Baisangur 14.03.2009 12:52

Вопрос про большой террейн и как по нему ходить!
 
Привет!
У меня есть террайн, есессно он грузится из карты высот. Я позиционирую модель игрока на террейне с помощью функции TerrainY(). Проблема в том, что в разных частях террайна модель может слегка уходить под землю или наоборот ноги летают по воздуху, это не видно если камера не двигается, но у меня камеры почти полностью подчинена пользователю.
И еще, во этом треде http://forum.boolean.name/showthread.php?t=7962 я посмотрел видео из первого поста, заметил, что там у игре ниндзя бегает по террейну у которго даже конца не видно.. как так сделать? насколько я помню блиц держит карты высот не выше 64х64, а скейлинг террайна обычно, по крайней мере у меня, вызывает искажения(например какбы я не скейлил высоту террайна, горы такие как в редакторе уже не станут или выше или ниже).

Main Cry 14.03.2009 13:23

Цитата:

Сообщение от Baisangur (Сообщение 100603)
Привет!
ниндзя бегает по террейну у которго даже конца не видно.. как так сделать?

можно разбить мир на ячейки и подгружать/удалять террейны в зависимости от местоположения твоего перса. Подгрузку удобнее производить скриптами.

Цитата:

Сообщение от Baisangur (Сообщение 100603)
насколько я помню блиц держит карты высот не выше 64х64

насколько я знаю, блиц держит карты высот и выше 64x64

Пользуйся кнопкой "Правка", не плоди сообщения одно за другим

Baisangur 14.03.2009 13:40

Ответ: Вопрос про большой террейн и как по нему ходить!
 
Насчет карт высот я дал маху =) прошу прощения, в каком-то туторе прочитал что оно так и даже не стал проверять.
Насчет дележки мира на части, мне очень интересен алгоритм. Например чтобы без подгрузок мира частями а сразу подгружалось все по мере положения в мире.
Как примерно я себе представляю это:
Есть несколько десятков карт высот.
Есть игрок вокруг которого у нас очень большая сфера, которая определяет радиус видимости мира, за ее границами мира нет.
Есть туман, который скривает процесс подгрузки/выгрузки мира.
А как это реализовать? И что за скрипты? Слышал, что есть какаято вещь под именем Lua это оно?

Main Cry 14.03.2009 14:01

Ответ: Вопрос про большой террейн и как по нему ходить!
 
пользуюсь скриптами BSE Кнайта.
если уж подгружать мир, то лучше частями, а не весь целиком, тогда какой толк в подгрузке?
Зачем ограничивать мир сферой?
лучше разделить его на ячейки относительно плоскости XZ-координат и подгружать лишь близлежайшие к игроку объекты. Где ничего не подгружается, там, соответственно, и нет мира.
Для ограничения видимости лучше использовать также скайбокс, а не только туман.

ABTOMAT 14.03.2009 15:21

Ответ: Вопрос про большой террейн и как по нему ходить!
 
Цитата:

насколько я помню блиц держит карты высот не выше 64х64
Чем вы читаете?
Цитата:

A heightmaps dimensions (width and height) must be the same and must be a power of 2, e.g. 32, 64, 128, 256, 512, 1024.
Пруфлинк
Относительно первой проблемы с TerrainY - сколько ни юзал - всё время нормально было

Yalenz 15.03.2009 00:21

Ответ: Вопрос про большой террейн и как по нему ходить!
 
Цитата:

Сообщение от Baisangur (Сообщение 100603)
У меня есть террайн, есессно он грузится из карты высот. Я позиционирую модель игрока на террейне с помощью функции TerrainY(). Проблема в том, что в разных частях террайна модель может слегка уходить под землю или наоборот ноги летают по воздуху, это не видно если камера не двигается

У меня тоже такая хрень была - при сильных подъемах и спусках.
Я так ничего лучше не придумал, чем не давать бегать персонажу по слишком крутым склонам:)

ABTOMAT 15.03.2009 00:39

Ответ: Вопрос про большой террейн и как по нему ходить!
 
Возможно дело в том что TerrainY выдаёт точное значение высоты, а вот сам террайн состоит из полигонов, и при большом масштабировании полигонов на кв.м. меньше и потому они не передают форму точно.
Попробуй TerrainDetail выставить побольше.

Baisangur 15.03.2009 12:10

Ответ: Вопрос про большой террейн и как по нему ходить!
 
TerrainDetail(64000, True) Проблема не ушла... =(

Main Cry 15.03.2009 14:01

как ходить по террейну
 
парент у игрока есть?

Baisangur 15.03.2009 15:11

Ответ: Вопрос про большой террейн и как по нему ходить!
 
Ну SceneRoot максовский его парент, пробывал ставить его на террейн через именно сам меш, который анимирую, т.е. child=FindChild(модель, заскиненый меш) так онн вообще не становится на террейн по игрику, только x и z координаты просчитываются правильно.

Main Cry 15.03.2009 22:19

Ответ: Вопрос про большой террейн и как по нему ходить!
 
Цитата:

Сообщение от Baisangur (Сообщение 100728)
пробывал ставить его на террейн через именно сам меш, который анимирую, т.е. child=FindChild(модель, заскиненый меш) так онн вообще не становится на террейн по игрику, только x и z координаты просчитываются правильно.

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

Baisangur 16.03.2009 22:23

Ответ: Вопрос про большой террейн и как по нему ходить!
 
В общем, как я не корчился, всё тщетно.. Дело решаемо только созданием более детализированной карты высот, ибо у меня она 64х64 а террейн я растягиваю до огромных размеров, следствие этого неточное значение из функции TerrainY().

Main Cry 21.03.2009 17:15

Ответ: Вопрос про большой террейн и как по нему ходить!
 
Цитата:

Сообщение от Baisangur (Сообщение 100844)
В общем, как я не корчился, всё тщетно.. Дело решаемо только созданием более детализированной карты высот, ибо у меня она 64х64 а террейн я растягиваю до огромных размеров, следствие этого неточное значение из функции TerrainY().

Зачем тебе террейн с картой 64x64?

Baisangur 21.03.2009 18:05

Ответ: Вопрос про большой террейн и как по нему ходить!
 
А хз! Уже давно проблему решил, карта 512 на 512 рулит ;)

NitE 21.03.2009 18:08

Ответ: Вопрос про большой террейн и как по нему ходить!
 
вообще конечно смысла у темы нет )) сразу сказал-бы что карта 64на64, тебеб сразу и сказали в чем проблема ))))


Часовой пояс GMT +4, время: 11:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot