сделать бесшовную текстуру карты высот для сферы (планеты)

Я пытаюсь создать карту высот для сферической планеты с шумом перлина. Как я могу сделать это с бесшовными левыми/правыми границами? Я сгладил карту высот в полюсах, но не могу понять, как зациклить левую и правую стороны.

Вот как сейчас выглядят мои текстуры:

карта высот


person Yuri    schedule 13.10.2015    source источник
comment
если вы имеете в виду бесшовное соединение, вы можете отразить его по оси Y, чтобы текстура могла соединяться. В этом случае я бы также переписал loop на make seamless, потому что цикл подразумевает циклы for/while и немного вводит в заблуждение вашу тему.   -  person Spektre    schedule 13.10.2015
comment
@Spektre в этом случае у планеты будут зеркальные стороны   -  person Yuri    schedule 13.10.2015


Ответы (1)


  1. Зеркальное отображение (по оси Y)

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

    зеркало у

  2. Морфинг

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

    Это cosine распределение веса (50%:50% по бокам и 100%:0% посередине):

    преобразование растровой интерполяциипреобразование растровой интерполяции

    Это constant распределение веса (50%:50%):

    введите здесь описание изображениявведите здесь описание изображения

  3. настроены генераторы текстур

    Вы можете настроить текущий генератор текстур для плавного рендеринга.

    1. create/use seamless texture background (created by #1,#2 or even #3)
    2. добавить случайное количество случайных функций с зацикленной осью x

      • so if x is going out from the left it will go in from the right ...
      • x' = x%xs где xs - x-разрешение текстуры
person Spektre    schedule 13.10.2015
comment
@Yuri добавил примеры морфинга, оба изображения дважды отбрасываются здесь, чтобы вы могли увидеть, как будет выглядеть объединение. Если у вас есть собственный код генератора текстур, то лучше всего подойдет вариант №3. - person Spektre; 13.10.2015