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=8400)

Program23 29.05.2009 09:15

Как разделить мир с подгрузкой зон,как в Морровинде?
 
Помогите!
Мир с подгрузкой,как в морровинде!

:wild: :wild: :wild:
Здраствуйте,прошу помощи у знатоков этого форума.Я хочу сделать мир в 3Dmax 9 и там же разделить его на зоны с подгрузкой.И как прописать код в Blitz3D,чтобы была подгрузка зон?И ещё:Как сделать чтобы в 3D max разделить этот мир на зоны? :wallbash:

Amatsu 29.05.2009 10:59

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Делишь землю на квадраты, грузишь 9 квадратов вокруг игрока, если он пересекает границу центрального квадрата - позади него выгружаешь 3 или 5 квадратов и подгружаешь такое же число впереди. Это самый банальный вариант. Дальше читаешь эту тему: http://forum.boolean.name/showthread.php?t=8373

Baisangur 29.05.2009 18:16

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
В общем это дело решается рисование огромной карты высот, патом все это путём фотошопа или скрипта режется на квадраты, например по 33 пикселя(32 в движке где необходима степень двойки). Всю инфу о нахождении локаций лучше сохранить нафиг в xml файл, также в атрибутах каждой указать в какой координатной зоне она находится. И сканировать координаты камеры(игрока) на положение в мире, если координаты локации близки(например диапазон 1024) к координатам игрока, то грузить, иначе выгружать.

НО! Лучше не насиловать себе мозги, всеравно толка не будет, а сделать как в ММОРПГ Granado Espada, там на каждой локации есть некий проход в горах или дверь ну вообщем проход сочетаемый с локацией где есть "триггер", им может быть даже плоскость, которая невидима, так вот если игрок прошел через "триггер" то вычислять его ID и после тогоа как выгрузили старую локацию, грузить новую, ID которой связан с ID триггера.

Amatsu 29.05.2009 18:25

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
А, тьфу, не так прочиал. Да, там мир разбит на уровни с переходами. Но имхо, в том, что у тебя мир будет разбит на уровни, ничего в этом страшного нет. Не обязательно гнаться за моровиндо-подобной картой. Полностью согласен с Baisangur

Program23 30.05.2009 12:44

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Baisangur,Amatsu СПС! приду домой буду пробывать!

Черный Лорд 30.05.2009 21:23

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Попробуй SCN2. У этого редактора есть сферы. Смысол в том что когда ты находишься в сфере грузятся объекты которые принадлежат этой сфере. скачать сам редактор и хелп к нему можно здесь http://damp.ucoz.ru/load/

Slepetc 31.05.2009 03:21

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Тут где то была библиотека для многопоточности, поищи, тогда можешь ставить точку перехода до конца куска карты и получишь бесшовный мир.

Baisangur 31.05.2009 03:27

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Тутошнею библиотеку с выходом FastPointer (от MixailV) можно забыть =) качай на фастлибс.ком, она покачто в стадии бета вроде бесплатно раздают.

tormoz 31.05.2009 17:48

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Вот бесят меня советы людей, которые сами нихрена не делали.
НЕЛЬЗЯ в блитце подгрузку мешей производить в другом потоке , если в основном потоке есть рендер.
Это давно известно всем, кто юзал либы многопоточности.

H@NON 01.06.2009 13:25

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Вложений: 1
Тестил давненько либу, используя рендер Xors3D для блитца многопоточность вполне спокойно работает для загрузки моделей, а вот с загрузкой отдельно текстур там вроде не порядок, через несколько итераций вываливается МАВ. У меня даже демка старая завалялась, смотри в аттаче.

FDsagizi 01.06.2009 14:36

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Цитата:

Сообщение от tormoz (Сообщение 106373)
Вот бесят меня советы людей, которые сами нихрена не делали.
НЕЛЬЗЯ в блитце подгрузку мешей производить в другом потоке , если в основном потоке есть рендер.
Это давно известно всем, кто юзал либы многопоточности.

+1.
Плохо когда не знаешь, но куда хуже - когда забыл о том, что не знаешь.

Baisangur 01.06.2009 16:47

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
tormoz дык ты выпей валерианочки не бесись мы все тут друзья ;)
Прошу прощения у Автора, за то, что посоветовал юзать потоки для подгрузки мешей я если чесно не в теме был, что в блице нельзя грузить меши в потоках. А реально, что же тогда делать? =)

tormoz 01.06.2009 18:58

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Грузить в основном потоке.
Если мир грамотно сделан, до паузы будут не более секунды на кусок в30-50 к поли и 3-4 десятка текстур 512х512

Fatalix3d 01.06.2009 20:02

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Вложений: 1
Мое виденье решения проблемы.rolleyes: Так вот я делаю так в 3d Max'е создаю plane размером 1000x1000 и расставляю там декорации(это своего рода ячейка большого уровня), затем это чудо дизайна экспортируем в блитц там делаем Scaleentity .1,.1,.1 после чего в Блитце она имеет размер 100x100 единиц, затем грузишь 2-ю часть уровня но со сдвигом в 100 единиц в нужную тебе сторону . Так вот и собираешь мир, для наглядности приложу скрин.

P.S Ну и конечно к каждой части уровня делаешь LOD модель, и при определенной дистанции меняешь полноценный участок на LOD модель.

IGR 01.06.2009 20:14

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
как в 8-ом максе включить ту штуку в левом верхнем углу что бы показовало fps, полигоны, вертексы ??

Fatalix3d 01.06.2009 20:25

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Нажми 7 и все!) или в окне perspective нажми на надпись perspective правой кнопкой и выбери Configure ... там в вкладке Statistics отметь все что хочешь видеть (polygon count, triangle count и т.д) жми ОК и все.

IGR 01.06.2009 21:00

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
вот беда !! ты про какой макс ?? нету такой вкладки у меня !!

SBJoker 01.06.2009 21:26

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Tools->More..->Polygon Counter->add->Polygon Counter

IGR 01.06.2009 21:47

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Вложений: 1
SBJoker, твой вариант почти катит !! :)
Все равно есть некое черезжопство:
вот появляется такое окошечко маленькое справа которое !! в нем показуется количество полигонов текущего объекта и всей сцены !!
ну а такой штуки именно как на скрине Fatalix3d нету !! :(

Fatalix3d 01.06.2009 21:59

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Если у вас версия до 9-ой, то Utilities->More...->polygon counter. Если же у вас 9 версия или старше, то зайдите в file->Summary Info и в групбоксе Mesh Totals посмотрите параметр Faces. Кроме того в 9 версии и старше можно вывести подробную статистику во вьюпорт. Для этого нажмите правой кнопкой мыши по его названию (в левом верхнем углу вьюпорта), нажмите configure и во вкладке statistics поставьте галочку на Show Statistic in Active View.

В 8-ой версии оказывается такой функции просто нет!

IGR 01.06.2009 22:01

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Цитата:

В 8-ой версии оказывается такой функции просто нет!
понятно !! :(

Baisangur 03.06.2009 12:43

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Опытным путём было доказано, что юзая Ксорс в купе с библиотекой FastPointer можно загружать меши в потоках!

Код:

Include "xors3d.bb"

xAppTitle("Thread test!")

xGraphics3D(800, 600, 32, 0, 1)

Gnome=xLoadMesh("ninja.b3d")
Camera=xCreateCamera()
xPositionEntity(Camera, 0, 0, -10)

Global TMesh%=0

ThrPointer=FunctionPointer()
Goto skip
        CoolThread()
.skip

Thread=CreateThread(ThrPointer, 100)

While Not xKeyHit(1) Or xWinMessage("WM_CLOSE")

        xUpdateWorld()
        xRenderWorld()
        xFlip()
Wend

Function CoolThread(stval%=0)
        Delay(3000)
        TMesh=xLoadMesh("ninja.b3d")
        xPositionEntity(TMesh, 1, 0, 0)
End Function


H@NON 03.06.2009 16:06

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
епт, а мое сообщение никто не читал чтоли?
http://forum.boolean.name/showpost.p...6&postcount=10

Baisangur 03.06.2009 16:56

Ответ: Как разделить мир с подгрузкой зон,как в Морровинде?
 
Ой йопт =) ну а вдруг кто то не читал ;).

Да загрузка текстур и правда вызывает ошибку, на 22 итерации...
Но те что прописаны в .b3d проблем не вызывают, проверено.


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

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