о, круто!
симпатичный шарик
хотя подобное уже делал super, может было проще заюзать его наработки?
а перепады высот будут только цветом или формой тоже?
если второе, то как планируешь делать их?
какой по размеру максимальный пробовал шар?
с каких размеров становятся заметны искажения формы тайлов?
Я, честно говоря, не спрашивал. Кроме того, там тайлы треугольные.
хотелось сделать формой. Алгоритм был примерно такой: высоту для вершин усредняем по трем тайлам, которые сходятся в этой вершине.
Получается объемный пяти или шестиугольник, который разбивается на треугольники. При максимальном использовании opengl на весь объемный (5/6)-угольник можно натянуть текстуру. Пока текстур нет, высота просто хранится в тайле.
Но! Реализм же. Радиус Земли 6320Км, что на этом фоне гора в 5Км?
Пробовал Big, строит около минуты на i5/2.4GHz/8Gb/windows 7/64
Giant не дождался.
Про искажения не понял. Там 12 пятиугольников, вокруг них 6-угольники слегка искажены. Это всё. Конкретная форма тайла значения не имеет. Важно, чтобы тайлы знали о соседях.
Не имеет смысла.
Там уровень кода никакущий.
Наде6юсь в этом варианте не так...
так же как и в том, что он будет открытым
Не знаю, я даным мне доступом не пользовался.
С пользовательскими настройками там ведь ничего не поставить?
Да я и не совсем понимаю замысел?
Да. РеализмЪ.Но! Реализм же. Радиус Земли 6320Км, что на этом фоне гора в 5Км?
Только у нас ведь не космосим, а историческая стратегия.
Хотелось бы при большем приближении, чтоб выглядело как плоскость...
ну у него промежуточный вариант был вроде с шестиугольными тайлами..
можно наоборот высоту в вершине хранить, а для тайла (для игровых расчетов) высчитывать среднюю из всех его вершин
а big и giant как количественно выражены?
сколько тайлов?
Вот Аку выкладывал ссылку на проект Basic Hex Map Sphere
Интересно? или ты тоже к этому имеешь отношение?
Начал с тех 12 вершин, которые будут пятиугольными тайлами. Их координаты вычисляются как координаты четырех углов трех "золотых" прямоугольников. (см икосаэдр: http://ru.wikipedia.org/wiki/%D0%98%...8D%D0%B4%D1%80, золотые прямоугольники http://www.opengl.org.ru/books/opengl1_402.html) Дальше брал вершины по три штуки, такие, чтобы образовывали грань икосаэдра, и достраивал до нужной мне сетки. Там сложновато, много констант, которые определяют законы разбиения. Но если попробовать разбить ручками несколько раз, приходит ясность.После того, как для каждого тайла известны его соседи, можно использовать алгоритм "A*" (http://ru.wikipedia.org/wiki/%D0%90%...D0%BA%D0%B0_A*). Суть такова: из пункта А в пункт Б попадаем не более чем N шагов, где N -- общее количество тайлов. Для начала распихаем во все тайлы число N как количество шагов, необходимых для достижения пункта А. Потом вспомним, что из пункта А в пункт А шагов не надо, и поместим в А число 0. Далее цикл, пока есть изменения. Для внесения изменения берем каждый тайл и смотрим его соседей. Для всех соседей вычисляем минимум шагов, записанных в тайле, пусть это M. Если в самом тайле (центральном, который сейчас меняем) число больше, чем (M+1), записываем в тайл число M+1 и фиксируем факт, что есть изменение. Напоминаю, внешний цикл идет пока есть изменения. Как только после очередного просмотра изменений нет, выходим из цикла и строим путь из пункта Б в пункт А. Для этого берем число шагов пункта Б, вычитаем 1 и ищем соседа, у которого число шагов в точности равно этому значению. Переходим в этого соседа, уменьшаем число шагов на 1 и снова ищем соседа. Сосед с числом шагов 0 и будет пунктом А.