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

Правильное наложение текстур на планеты, при создании космического 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 только в образовательных целях.

  • Николай Орда

    не пойму как сделать
    shift+a — Texture — Environment Texture
    по shift+a нет вкладки Texture.

    • Курсор должен находиться над окном редактора нодов (Node Editor).

      • Николай Орда

        так. пошагово.
        создал сферу.
        создал материал.
        открыл редактор нодов.
        ткнул галку use nodes.
        shift+a
        https://uploads.disquscdn.com/images/5d0440db5379b69f682b1c302f6ed98eec68eb799c4c13078f42b8cbb210770a.png

        • А, понятно. Нужно переключиться на рендер Cycles в верхнем меню — выбрать Cycles Render там, где сейчас стоит Blender Render.

          • Николай Орда

            А, вон что. Работает с Cycles. Спасибо. Будем ковырять.

          • Николай Орда

            Благодарю. Всё получилось.