2013-05-21 2 views
-4

Мне нужно создать ландшафт. Вы можете сказать достаточно легко, но мне нужно создать Биомы, если хотите (не можете думать о другом имени) и озерах, деревьях и всех на карте высоты.Advanced Terrain Generation

Так что я понятия не имею, как использовать карту высоты или даже шум перлина. Если бы ты мог мне помочь. Мне нужна 3D-и 2D-помощь. Если бы вы могли объяснить математику за ней, действительно помогите мне понять это навсегда.

+0

Пожалуйста, не голосуйте вниз без объяснения ... –

+1

Проверьте боковую панель. –

+0

Я сделал, я изучил другие варианты. Мне нужно, чтобы кто-то объяснил это мне. –

ответ

2

Это такой широкий вопрос, на который почти невозможно ответить. Существует много разных способов создания генерации ландшафта и множество способов их реализации. В зависимости от используемого вами графического оборудования и ваших потребностей вы можете сделать это с помощью программируемых шейдеров или со старым конвейером с фиксированной функцией. Он может быть реализован в DirectX или OpenGL. Я предполагаю, что это примерно то, что вы ищете ...

http://youtu.be/lBGPupldGz0

Это делается с помощью так называемыми высотами. Я взял черно-белое изображение с более темными пятнами, представляющими низкие высоты и более яркие пятна, представляющие высокие. Затем я преобразовал изображение в один цветной канал (красный в моем случае, думал, что это не имеет значения, который вы выберете). Я начал с создания сетки треугольников. Я прошел через изображение и использовал разность пикселей в диапазоне 0-255 для изменения вершинной позиции y.

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

Что касается perlin noise ... это процедурная техника, которую вы могли бы испечь в самой карте с помощью инструмента, такого как L3DT (или даже paint.net), или вы могли бы сделать это в шейдере в реальном времени. Слишком широкий вопрос.

Предлагаю вам проверить форум gamedev.net ... там обязательно будет много открытых вопросов о местности. Stackoverflow - ужасное место для неопределенных вопросов. Проверьте этот учебник серии ... это написано в XNA, но идеи применимы к любому языку ...

http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_from_file.php