Начал изучать процедурную генерацию, создал в Майнкрафте свою генерацию, вроде получается нормально, но я не знаю как сделать плавный переход между двумя высотами, например у меня идут ниже камень, а выше камня идёт снег, и вот какую формулу бахнуть чтобы был плавный переход между камнем и снегом, а то буквально шляпа получается
Тут толи тегов не хватает. Толи исходников. Вроде как майнкрафи на Java написан. Значит и плагины под него тоже должны быть в сорцах. Короче как говорил один финский кодер - taks is cheap. Show me the code.
mayton2019, не знаю причем тут джава, вроде все понятно, Майнкрафт был написан чтобы человек понимал что мир состоит из вокселей, да и помощь с кодом мне не нужна, я хочу чтобы меня лишь натолкнули на правильное решение, а не делали все за меня:)
Я спросил про Java, потому что краем уха слыхал что манкрафт на ней написан. Вот я и подумал что возможно ты как-то с этим соприкоснулся. Извини если я тебя обидел. Просто я привык говорить более предметно. Чтоб был код.
Твой вопрос про камни и снег он пока не имеет никакого программного воплощения. Поэтому он - непонятен для большинства читающих. Я мог-бы накидать тебе советов по поводу градиентов или камней с альфа-каналом - но это всё мои чортовы фантазии. Они - беспредменты. Ну что мне - карандашом писать формулы?
Помоги внести в этот топик больше предметности. Исходник. Show me code, как говорил один финн.
Yatagarashy, Раз ваш второй вопрос (про структуры) сюда сдублировали, отвечу тут:
Чтобы генерировать структуры, надо сначала сгенерировать ландшафт. Возможно несколько соседних чанков тоже (по размеру структуры). Потом среди них посмотреть, в каких точках структура может теоретически быть (перепад высот, биом и т.д). Потом надо какой-то другой шум взять в качестве случайной величины и с заданной вероятностью решить, в каких точках структуры генерируются. Потом остается только аккуратно их впендюрить.
В качестве случайной величины можно, например, взять какой-то шум. С резкими перепадами высот, чтобы структуры рядом не спавнились. Надо считать, что стурктура ставится там, где этот шум имеет достаточно большое значение (если все условия для возможности спавна выполняются).
Трюк генерации в следующем: научитесь генерировать какбы всю карту целиком, без разбития на чанки. Эта генерация будет в несколько проходов. Сгенерили высоту, биом, разлили воду, растительность, структуры. И вот когда вам надо разбить генерацию на чанки, чтобы сгенерировать вот этот вот чанк на этапе N, вам надо его и все соседние сгенерировать до этапа N-1. Причем эти соседние чанки могут быть за границей видимости и не требовать генерации по всем этапам. Тут надо все лениво генерировать и кешировать.
Чем больше у вас структуры, тем больше чанков надо генерировать вокруг локации.
Wataru, раз уже про генерацию говорим, может ещё расскажете про черви перлина? (Вроде это так называется, ну если не так, то по простому, хочу сгенерировать пещеры)
Как сделать плавный переход от белого к черному? Нужен серый цвет. Но если у вас дисплей только 2 цвета имеет (а у вас же только снег и камень), то серый цвет можно сделать мешая белые и черные пиксели.
Например, после какой-то высоты всегда снег. Ниже какой-то высоты всегда камень. А по середине нужно что-то случайное. Можно, например, генерировать 2 шума и сравнивать их как-то. Например, квадрат одного больше другого, умноженного на какую-то константу. С формулами надо поэкперементировать, посмотреть, что хорошо выглядит.
Если дизеринг не подходит, а нужна именно чёткая граница, но не хочется, чтобы она проходила по прямой. Сгенерируй ещё одну случайную карту высот, с меньшим диапазоном, и пусть она задаёт пороговую высоту для каждой отдельной точки. Например, если горы от 0 до 128, а снег нужен выше 100, пусть карта порогов будет в диапазоне 90..110 — получится снеговая линия, плавно гуляющая по высоте на +-10.