Наложение текстуры на планету

Правильное наложение текстур на планеты, при создании космического 3D пейзажа, играет одну из ключевых ролей. Если текстура наложена криво, «едет» или на ней заметны четкие швы в местах стыков — хорошей картинки никогда не получится. В Blender есть удобный способ корректно расположить текстуру на поверхности планеты.

Текстура, корректно наложенная на планету
Текстура, корректно наложенная на планету

Обычно текстура поверхности планеты имеет такой вид:

Текстура поверхности Земли (изображение с сайта nasa.gov)
Текстура поверхности Земли (изображение с сайта nasa.gov)

Основная проблема наложения такой текстуры на сферу планеты состоит в том, что сфера, в конфигурации UV Sphere, предоставляемая в Blender, не очень хорошо раскладывается в плоскую «развертку». Можно попробовать разные алгоритмы развертывания:

Разные варианты развертывания сферы
Разные варианты развертывания сферы

 Варианты развертывания UV Sphere (слева направо):

  1. Стандартное развертывание: u — Unwrap
  2. Сферическая проекция от экватора: u — Sphere Projection (View on Equator)
  3. Сферическая проекция по объекту: u — Sphere Projection (Align to Object)
  4. Развертывание с подгонкой следования от активного полигона: u — Unwrap — u — Reset — u — Follow Active Quad — подогнать положение и масштаб развертки к изображению

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

Однако в Blender есть способ проще и удобнее, который к тому же совершенно не требует создания развертки. Он заключается в использовании нода Enwironment Texture, который обычно используется для наложения текстуры на окружение сцены. По сути, окружение это такая огромная сфера, расположенная поверх любой создаваемой сцены, которая собственно и имитирует то, что сцену окружает. Например, для открытых сцен окружение — это небо, солнце, возможно, горы на горизонте, для закрытых сцен — это могут быть стены комнаты с окнами и мебелью. Чаще всего такое окружение имитирую текстурой, а не создают из реальных объектов. В нашем же случае важно то, что нод окружения по умолчанию корректно накладывает текстуру на сферическую поверхность, чем мы и воспользуемся.

  1. Создать для сферы-планеты новый материал
  2. Добавить нод текстуры окружения
    1. shift+a — Texture — Environment Texture
    2. соединить с нодом Diffuse
  3. Добавить нод Mapping
    1. shift+a — Vector — Mapping
    2. соединить с нодом Environment Texture
  4. Добавить нод Texture Coordinates
    1. shift+a — Input — Texture Coordinates
    2. выход Object подать на нод Mapping
  5. В ноде Mapping установить
    1. Scale
      1. X = -1

Текстура планеты будет наложена на ее поверхность. Нод Environment Texture накладывает текстуру на сферу, отражая ее по горизонтали. Чтобы скорректировать это, в связку нодов введен нод Mapping и установлен масштаб по оси X равный -1.

Наложение текстуры на планету с использованием нода Environment Texture
Наложение текстуры на планету с использованием нода Environment Texture

 Текстура поверхности Земли взята с сайта nasa.gov только в образовательных целях.