Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 17.10.2006, 11:12   #1
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
случайный генератор террейнов

Всем привет ! и у меня снова вопрос: мне надо сделать террейн который создается в случайном порядке при загрузки уровня
(в принципе это не так сложно)
но проблема другая у меняж там домики-городок а если генерровать случайно то все скроется частями в землю(можно конечно ставить домики по У,но не очень удобно ибо у меня все домики в одном файле) и у меня появилась идея что под город загрузит свой небольшой терреин , но вот как случайный генерируемый ланшафт соединить с этим ровненько ??


зарание спасибо! если есть идеи лучше-буду рад)

А ну да вы спросите зачем?? ну я делаю небольшую игрушку(фривере или шаревере) ну ведь будет не интересно играть если местность всегда одинаковая, на 5 раз точно надоест а так еще 5 раз побегать мона
(Offline)
 
Ответить с цитированием
Старый 17.10.2006, 11:20   #2
magpro
Разработчик
 
Аватар для magpro
 
Регистрация: 23.08.2006
Сообщений: 586
Написано 6 полезных сообщений
(для 7 пользователей)
Re: случайный генератор террейнов

А ты сделай всётаки каждый домик в отдельных файлах и потом при загрузке уровня делай чтобы они были в небесах(тока чтобы их не было видно) и потом резко спускай вниз до коллизии с территорией. И всё вроде. так твои домики будут постоянно на земле а не под землёй или над.
__________________
Никто не запомнит тебя за твои мысли...
(Offline)
 
Ответить с цитированием
Старый 17.10.2006, 17:39   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: случайный генератор террейнов

Генерировать, лучше путём картинки, тоесть генерировать картинку (HeightMap), В интере\нете можешь найти про это. Чтото я слыша про Шум Перлина, то там математика и Алгоритмика ОхО! Так что поищи в нете, а затем загружаешь террайн стандартной командой блица LoadTerrain. И есть команда TerrainY(x,z), Она тебе поможет. Крч делаешь домики отдельными файлами, а затем ставишь их:
Domik1=LoadMesh("Файл Домика")
x#=Место по х на карте.
z#=Место по z на карте.
PositionEntity Domik1,x,TerrainY(x,z),z

Вот и всё, они у тебя будут точно по террайну, да и на заметку, центр Мэша (в твоём случае домика), задаётся в редакторе, и ставиться домик на террайн будет этим центром.

Надеюсь помог.
(Offline)
 
Ответить с цитированием
Старый 17.10.2006, 22:23   #4
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: случайный генератор террейнов

magpro не в моем случае не неполучится , потому что 1) тот террейн который под городом он с дорогой и с нужной текстурой, а так получится (к примеру ) дорога на горе и не красиво будет 2)домики имеют центр, а если упадет он так что часть будет на горе а часть навесу и будет не красива))
MoKa такой способ тоже не покатит и сколько мне карт высот нарисовать чтоб все время рандомом показавылся ланшафт??но видимо придется так делать если др способа не найду!
Всем спасибо))
(Offline)
 
Ответить с цитированием
Старый 18.10.2006, 08:48   #5
ЛысыЙ_Чук-Иванчук
Дэвелопер
 
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений
(для 17 пользователей)
Re: случайный генератор террейнов

Делай в максе.
(Offline)
 
Ответить с цитированием
Старый 18.10.2006, 14:50   #6
untonee
Оператор ЭВМ
 
Регистрация: 11.10.2006
Сообщений: 35
Написано 0 полезных сообщений
(для 0 пользователей)
Re: случайный генератор террейнов

Сообщение от Horror
magpro не в моем случае не неполучится , потому что 1) тот террейн который под городом он с дорогой и с нужной текстурой, а так получится (к примеру ) дорога на горе и не красиво будет 2)домики имеют центр, а если упадет он так что часть будет на горе а часть навесу и будет не красива))
MoKa такой способ тоже не покатит и сколько мне карт высот нарисовать чтоб все время рандомом показавылся ланшафт??но видимо придется так делать если др способа не найду!
Всем спасибо))
1) Есть простая возможность генерации случайных ланшафтов - Шум Перлина, алгоритм описан в инете очень подробно, имеются исходники на С и С++ точно находил... Если что могу помочь, ничего сложно там нет....

2) Как быть с тем, что бы твоя сцена с домиками не потеряла привлекательность:
- на созданную карту высот накладывай блендингом овал, или еще что нибудь по форме твоего города(т.е. карту высот для твоего города, с гладким переходом на краях), т.о. у тебя получится ровная поверхность, или такая какая тебе нужна) и тогда твои города могут находиться где угодно целой сценой, как ты и хотел...
Что бы разобраться о чем я говорю досконально почитай про генерацию ланшафтов шумом Перлина.
(Offline)
 
Ответить с цитированием
Старый 18.10.2006, 19:20   #7
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: случайный генератор террейнов

untonee Спасибо! буду рад если поможешь!)
2) я совсем начинающй)) и поэтому не знаю что есть блендинг)) а могу ли я просто сделать террейн и на него поставить город а после поставить все на случайно сгенерируюмую поверхность
(Offline)
 
Ответить с цитированием
Старый 19.10.2006, 14:51   #8
untonee
Оператор ЭВМ
 
Регистрация: 11.10.2006
Сообщений: 35
Написано 0 полезных сообщений
(для 0 пользователей)
Re: случайный генератор террейнов

Сообщение от Horror
untonee Спасибо! буду рад если поможешь!)
2) я совсем начинающй)) и поэтому не знаю что есть блендинг)) а могу ли я просто сделать террейн и на него поставить город а после поставить все на случайно сгенерируюмую поверхность
Если ты совсем новичок, тогда за Шум Перлина не берись, сделай проще:
В Photoshop'e создай несколько карт высот, что-то типа этого:
Вложение 1995
Карта высот - это как правило (в самом простом трактовании) черно-белое изображение, которое описывает высоту каждой выршины 3-х мерного объекта. Обычно это квадратное изображение, размер стороны которого кратен степени 2 (32, 64, 128, 256, 512 итп).
В нашем случае это черно-белдая картинка 256х256 пикселе, с помощью которой мы создадим нужный нам террай.
Дальше продолжу попозже...



(Почитай: http://www.lki.ru/text.php?id=726)
(Offline)
 
Ответить с цитированием
Старый 19.10.2006, 21:40   #9
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: случайный генератор террейнов

untonee не ну конечно что такое карта высот я знаю(узнал наверно в первый день) а уже какникак блидзом месяц занимаюсь))
ну как я говорил выше мне нужен случаино-ген террейн ну раз мне рано еще позже разбтрусь)
а вот вопросик: там (в статье) есть такая тема наз Матрица высот могу ли я таким же путем сделать террейн??(ну там же прогают в другой среде)
типо
11111111
12100121
11100111
11000011
11100111
12100121
11111111
0-ровная поверхность
1-маленькая горка
2-побольше...
где ноль там и будет город))
и сделать случайную генерацию чисел АА получится??
(Offline)
 
Ответить с цитированием
Старый 19.10.2006, 22:46   #10
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Re: случайный генератор террейнов

Конечно можешь.Через ModifyTerrain, только не факт,что всегда будет оставаться ровное место для домов (если делать Rnd), это надо как-то предусмотреть ...
(Offline)
 
Ответить с цитированием
Старый 20.10.2006, 15:38   #11
untonee
Оператор ЭВМ
 
Регистрация: 11.10.2006
Сообщений: 35
Написано 0 полезных сообщений
(для 0 пользователей)
Re: случайный генератор террейнов

Продолжение:
Теорию опустим....
Вообщем рекомендую тебе следующее наделай в Photoshop'e по-больше ландшафтов.
Я написал тебе пример который позволяет в любое место терайна разместить твой город, деревню или что угодно.

Итого получается:
  1. Почти случайные ланшафты(заранее прориосванные карты высот);
  2. И реально случаное размещение городов на ландшафте! 8-)
В коде найдешь все что тебе надо!
Поясню, когда запустишь, жми SPACE, увидишь как изменяется земля под деревню, работает вот этот код(он то тебя и интересует):
If KeyDown(57) Then
For BlurForce=1 To 5 ;BlurForce
For x=16+BlurForce To 148-BlurForce - размер размещаемой локации
For z=16+BlurForce To 148-BlurForce - рзам
sum#=TerrainHeight(terrain,x-1,z-1)
sum#=sum#+TerrainHeight(terrain,x,z-1)
sum#=sum#+TerrainHeight(terrain,x+1,z-1)
sum#=sum#+TerrainHeight(terrain,x-1,z)
sum#=sum#+TerrainHeight(terrain,x,z)
sum#=sum#+TerrainHeight(terrain,x+1,z)
sum#=sum#+TerrainHeight(terrain,x-1,z+1)
sum#=sum#+TerrainHeight(terrain,x,z+1)
sum#=sum#+TerrainHeight(terrain,x+1,z+1)
sum#=sum#/9;
ModifyTerrain terrain,x,z,sum
Next
Next
Next

Обычный алгоритм сглаживания(blur)
Надеюсь помог... Если что говори, еще помогу!
(Offline)
 
Ответить с цитированием
Старый 20.10.2006, 18:38   #12
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: случайный генератор террейнов

untonee - оо огромное спасибо -классный пример, надеюсь разберусь)
(Offline)
 
Ответить с цитированием
Старый 20.10.2006, 19:07   #13
untonee
Оператор ЭВМ
 
Регистрация: 11.10.2006
Сообщений: 35
Написано 0 полезных сообщений
(для 0 пользователей)
Re: случайный генератор террейнов

Сообщение от Horror
untonee - оо огромное спасибо -классный пример, надеюсь разберусь)
Спасибо. Если что пиши... Рад помочь буду!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Dryad - бесплатный генератор деревьев Matt Merkulov 3D Моделирование 14 08.04.2008 13:26
Котобутербродный генератор alcoSHoLiK Юмор 1 21.04.2007 01:40
амплитуда на микрофоне и генератор paganel Основной форум 15 07.04.2007 01:54
Генератор КвазиСлучайных Лабиринтов impersonalis Полезные функции 2 16.04.2006 21:51
Генератор дороги pax 3D-программирование 3 22.01.2006 18:19


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com