В Хаскеле "чистая функция" (pure function) означает функцию без сторонних эффектов, то есть она возвращает какое-то значение и больше никак не влияет на состояние программы. При использовании Monomer нам нет необходимости явно вызывать функции отвечающие за функционирование и состояние графической системы (здесь OpenGL) в IO монаде, то есть явно менять окружение программы. Фреймворк делает это неяно сам, а в програмном интерфейсе вызываются только чистые функции: отсюда и определение pure Haskell подход. При этом пользовательское IO осуществляется с помощью механизмов Producer и Task (они используются в описываемой утилите), их выполнение происходит в отдельном потоке.
Я планировал, что сначала дам простой анонс. А какой вопрос бы Вам хотелось, что бы я осветил более подробно? Из тех, что были применены: парсинг с Parsec, хаскел гуи с Monomer или линзы?
Совершенно верно замечено. Про науку и моделирование я тоже думал, вероятно это будет использоваться для сопоставления и проверки различных теорий для процессов, которые зависят от планетарного рельефа. При чем, возможно, процессов не только физических, но и демографических и биологических.
Здесь я хотел лишь указать на возможность использования ГИС для представления результатов процедурной генерации карт. И, да, сделать пиар, но не себя, а этой возможности. Так как это совсем новая тема, и для начала, чтобы люди захотели воспринимать «что и как», нужна осведомленность о ней.
Подробное объяснение займет несколько больших постов, которые я намерен сделать через некоторое время. Некоторую информацию можно почерпнуть на самом сайте. Так же есть мой старый пост о самом методе с немного устаревшей информацией.
На мой субъективный взгляд эта идея прямо-таки витает в воздухе, но я не слышал, чтобы кто-то еще пошел дальше генерации планетарного рельефа. А это было сделано уже в Mojoworld около 15 лет назад.
Я не знал о них вплоть до последнего времени, но знал о Mojoworld. В этих проектах все вертится вокруг текстур и способов их наблюдения. У меня с самого начала была другая цель — карта, которая охватывает полную большую планету и возможность манипулирования ею. Кстати, ландшафты можно генерировать и дать возможность наблюдать и в способе который используется мною для карт. Вот только пока что я не прилагал больших усилий в этом направлении, тем более текущее разрешение планет не может дать красивых картинок сравнимых с Mojoworld.
В качестве источника идей и способов я полагался на математическую литературу по фракталам.
Это старая путаница: принимают рельеф местности за карту. По ссылкам можно увидеть только виды рельефа. Реальную карту полномаштабной планеты можно найти только на моем сайте (на сколько я знаю, аналогов нет вообще). Реальную карту, в которой географические объекты являются сущностями и имеют вполне определенные цифровые характеристики, удобно использовать, например, в видеоиграх. Рельеф же, главным образом, годится только для фона.
Любой рельеф местности по своей форме фрактал. А каждый тип местности отличает собственный тип фрактала. На планетах этого сайта я использовал везде один и тот же фрактал: и в низинах, и в горах. Это конечно не реалистично, и в будующем будет добавлено разнообразие. Горные хребты должны задаваться особой компонентой фрактала, которая сейчас мне не известна. На самом деле проблем еще очень много и более важных.
заложить на первичной сетке высот характерные формы рельефа
и является тут самым сложным. Можно было бы применить композицию шумовой функции которая делает хребты и функции с большей частотой (и меньшей амплитудой). Трудность в подборе первой; мне сейчас неизвестен ее вид. Про это можете здесь почитать Texturing and Modeling. Procedural Approach.
В алгоритме действительно этого не предусмотрено. Но горные хребты могут быть реализованы без реализации дрейфа континентальных плит. Смотрите, например, программу Mojoworld (http://mojoworld.info/). Там есть реализация хребтов построенных с использованием теории турбулентности. Я сам еще не разбирался с этим, но обещаю, что когда разберусь, то сделаю хребты на картах.
Совсем необязательно привлекать сложную физическую теорию явления, если визуальный результат будет тем же самым, применяя простую модель. Так же, например, чтобы построить рельеф не требуется привлекать теорию процессов горообразования и выветривания. Ведь и фракталы дают хорошее изображение рельефа: есть много примеров горных долин, построенных с помощью фракталов, которые практически неотличимы от реальных.
Этот проект у меня возник как раз при попытке сделать карту для стратегической игры. Было желание, чтобы карта планеты была сферической. Но это все оказалось совсем непросто и вылилось в отдельный проект. Сама же игра так и осталась нереализованной.
Дрейф плит пока никак не рассматривался для реализации, но вообще это возможно, почему бы и нет: просто прибавляем к широте и долготе всех GSM данных материка и перерисовываем через равные интервалы времени.
А водная эрозия рельефа заложена в самом методе генерации.
Да похоже, но при дизеринге достигается хаотичность на границе, а в посте наоборот, мы идем от хаоса к меньшему хаосу.
В Хаскеле "чистая функция" (pure function) означает функцию без сторонних эффектов, то есть она возвращает какое-то значение и больше никак не влияет на состояние программы. При использовании Monomer нам нет необходимости явно вызывать функции отвечающие за функционирование и состояние графической системы (здесь OpenGL) в IO монаде, то есть явно менять окружение программы. Фреймворк делает это неяно сам, а в програмном интерфейсе вызываются только чистые функции: отсюда и определение pure Haskell подход. При этом пользовательское IO осуществляется с помощью механизмов Producer и Task (они используются в описываемой утилите), их выполнение происходит в отдельном потоке.
Я все таки посчитал это новостью, простите.
А что здесь Вас так смутило? что Хаскел это основной язык программирования для кого-то?
Я планировал, что сначала дам простой анонс. А какой вопрос бы Вам хотелось, что бы я осветил более подробно? Из тех, что были применены: парсинг с Parsec, хаскел гуи с Monomer или линзы?
Подробное объяснение займет несколько больших постов, которые я намерен сделать через некоторое время. Некоторую информацию можно почерпнуть на самом сайте. Так же есть мой старый пост о самом методе с немного устаревшей информацией.
В качестве источника идей и способов я полагался на математическую литературу по фракталам.
Совсем необязательно привлекать сложную физическую теорию явления, если визуальный результат будет тем же самым, применяя простую модель. Так же, например, чтобы построить рельеф не требуется привлекать теорию процессов горообразования и выветривания. Ведь и фракталы дают хорошее изображение рельефа: есть много примеров горных долин, построенных с помощью фракталов, которые практически неотличимы от реальных.
А водная эрозия рельефа заложена в самом методе генерации.