This page has been translated automatically.
Основы UNIGINE
1. Введение
2. Виртуальные миры и работа с ними
3. Подготовка 3D моделей
5. Камеры и освещение
6. Реализация логики приложения
7. Создание кат-сцен и запись видео
8. Подготовка проекта к релизу
9. Физика
10. Основы оптимизации
11. ПРОЕКТ2: Шутер от первого лица
12. ПРОЕКТ3: Аркадная гонка по пересеченной местности от 3-го лица
13. ПРОЕКТ4: VR приложение с простым взаимодействием
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Общая информация

The virtual world, similar to the real world, contains many different objects, and we can see and distinguish them due to the interaction of the their materials with light. It is materials that make objects green, transparent or, for example, mirror-like. PBR (Physically-Based Rendering) system was developed to ensure uniformity of materials and make them look as realistic as possible. This system considers the properties of each material and uses mathematical formulas to accurately simulate how light behaves when it interacts with the object's surface. In other words, it creates a realistic environment where light behaves as it would in the real world. This model is widely used in various engines, including UNIGINE.В виртуальном мире, как и в реальном, есть множество различных объектов, а видим мы их и различаем за счет взаимодействия со светом материалов этих самых объектов. Именно материалы делают объекты для нас зелеными, прозрачными или, к примеру, зеркальными. С целью обеспечения единообразия материалов и максимальной приближенности их вида к реальному миру была разработана система PBR (Physically-Based Rendering). Она учитывает особенности каждого материала, высчитывает и отображает правильное поведение падающего на объект света при помощи математических формул, в которых указываются свойства рельефа его поверхности. Говоря проще, можно создать условия, которые позволят свету вести себя, как в реальном мире. Эта модель используется во многих движках, в том числе и в UNIGINE.

In terms of UNIGINE, a material is a rule defining how the surface (or in some cases a volume) will look like: its color, interaction with lights, reflection and refraction parameters, etc. The material can imitate red plastic, yellow sand, transparent glass, shiny metal, muddy water and much more. The set of basic material properties includes:Итак, материал в UNIGINE — это правило, которое определяет, как будет выглядеть поверхность объекта (а в некоторых случаях – и его объем): собственную окраску, взаимодействие с источниками освещения, параметры отражения, преломления и многое другое. Материал может имитировать красный пластик, желтый песок, прозрачное стекло, блестящий металл, мутную воду и много чего еще. В набор базовых свойств материала входят:

  • States that specify conditions, based on which the Engine applies corresponding shaders, textures, and parameters. For example, you can set the Water state to enable/disable sea foam. Depending on the selected state (foam / no foam), the engine will choose the required shaders.Режимы (States) — задают условия, на основе которых Движок применяет те или иные шейдеры, текстуры и параметры. Например, можно задать режим воды, включающий/отключающий морскую пену. В зависимости от выбранного режима (есть пена / нет пены), движок будет выбирать необходимые шейдеры.
  • A set of Textures. As a rule, a base material has several textures. This is caused by the following reasons:Текстуры (Textures). Набор текстур для материала. Как правило, для базового материала устанавливается несколько текстур. Это обусловлено следующими причинами:

    • Shader may require more than one texture.для работы шейдера может потребоваться более одной текстуры;
    • Different rendering stages user different textures.на разных этапах рендеринга используются разные текстуры;
    • A state may require a specific texture.для режима также может потребоваться отдельная текстура.
  • Parameters — arguments passed to the shader that define how the shader will be used.Параметры (Parameters) — это аргументы, передаваемые шейдеру и определяющие, как именно он будет работать.
  • Shaders — basis of materials, special programs that actually draw the material, taking into account the defined parameters, modes, textures, and so on. Each material has several shaders, and one of them is used depending on the selected mode and stage of drawing. In addition to the basic shader types — vertex, fragment and geometry shaders, there are other types.Шейдеры (Shaders) — это основа материалов, специальные программы, которые собственно и рисуют материал, учитывая заданные параметры, режимы, текстуры и т. д. Каждый материал имеет несколько шейдеров, нужный шейдер используется в зависимости от выбранного режима и этапа отрисовки. Помимо основных типов шейдеров, вершинного, фрагментного и геометрического бывают и другие.

UNIGINE Materials Concept Ru

Materials have limitations in terms of their application to different types of objects: some are used for surfaces of objects that have a defined geometric shape (like a car, a tree or a kitten), some define volumes (clouds), some — volume and surface (water), and some are just projected on any surface, like a spot from a spotlight with a multicolored light filter. Therefore, keep in mind that different types of objects have their own (applicable) materials.Материалы имеют ограничения в части применения их к разным типам объектов, одни используются для поверхностей объектов, имеющих какую-то определенную геометрическую форму (вроде машины, дерева или котенка), другие определяют объемы (облака), третьи объем и поверхность (вода), четвертые вообще проецируются на любые поверхности, как пятно от прожектора с разноцветным светофильтром. Поэтому надо помнить, что у разных типов объектов есть свои (применимые) материалы.

Material Hierarchy
Иерархия материалов#

UNIGINE has its own hierarchical material system. The hierarchy is formed by inheriting one material from another. All properties are passed from the parent to the child and can be overridden (as in object-oriented programming). If any parameter value changes for the parent, it is automatically changed for all its children, except for those in which it was previously overridden (adjusted) manually.UNIGINE имеет собственную иерархическую систему материалов. Иерархия формируется путем наследования одного материала от другого. Родитель передает все свои свойства наследнику, чтобы их можно было переопределить (как в объектно-ориентированном программировании). Если для родителя изменяется значение какого-либо параметра, оно автоматически изменяется и во всех его дочерних материалах, за исключением тех, в которых оно до этого переопределялось (корректировалось) вручную.

For example, Material A has two parameters (Color = Blue and Reflection Coefficient = 1.4), and Material B is inherited from Material A, and its color is changed manually (to Red). When you change the reflection coefficient of Material A to 2.0, Material B will have the following parameters: Color = Red (overridden) and Reflection Coefficient = 2.0 (inherited).Например, материал A имеет два параметра (цвет — синий и коэффициент отражения 1,4), а материал Б унаследован от материала A, и его цвет после этого изменили вручную (на красный). При изменении коэффициента отражения у материала А на 2,0 у материала Б будут следующие параметры: цвет — красный (переопределенный) и коэффициент отражения 2,0 (унаследованный).

This is very convenient, because by changing one parameter, you can customize several materials at once. For example, a whole group of materials imitating car paint and overriding only the parent's base color can be turned into metallic or matte by changing just a couple of parameters in the parent.Это очень удобно, поскольку, изменяя один параметр, можно настраивать сразу несколько материалов. Например, целую группу материалов, имитирующих автомобильную краску и переопределяющих только базовый цвет родителя, можно превратить в металлик или матовый, изменив всего пару параметров у родителя.

Base and User Materials
Базовые и пользовательские материалы#

In general, materials can be divided into two categories:По большому счету материалы можно разделить на две категории:

  • Base materials are the basis for all customizable materials in the project. The base material can be implemented by programmers (it can be changed only by editing the text file itself manually, as code), or without code using a special visual editor. The second approach is convenient for 3D artists, because it allows independently implementing almost any functionality. A base material is always at the top of the hierarchy and cannot be inherited from another base material. Base materials have the *.basemat extension. Базовые (base) материалы – это основа для всех настраиваемых материалов в проекте. Базовый материал может быть реализован программистами (вносить изменения можно только редактируя сам текстовый файл вручную, как код), либо без кода при помощи специального визуального редактора. Второй способ удобен для 3D-художников, поскольку позволяет самостоятельно реализовывать практически любой функционал. Базовый материал всегда находится на вершине иерархии и не может быть унаследован от другого базового материала. Базовые материалы имеют расширение *.basemat.
  • User materials are the materials inherited from base materials. Their parameters can be customized in the editor, changing the appearance of objects that use them. The set of parameters of a user material cannot differ from its parent, only the values (textures, values, etc.) can be changed. User materials have the *.mat extension.Пользовательские (user) материалы – это материалы унаследованные от базовых, их параметры можно настраивать в редакторе, изменяя вид объектов, которые их используют. Набор параметров пользовательского материала не может отличаться от родителя, изменять можно только значения (текстуры, значения и т.п.) Пользовательские материалы имеют расширение *.mat .

 The hierarchy of materials in the Materials Hierarchy window

Иерархия материалов в окне Materials Hierarchy

Post Effects
Пост-эффекты#

In addition to the materials that are assigned to the objects directly, there are materials that can be applied to the whole image in order to modify it, like a colored light filter that is placed on the camera lens. They are called post effects because they are applied (overlaid) after the overall picture is already rendered. Post effects allow implementing such visual effects as thermal imaging or night vision.Помимо тех материалов, которые мы назначаем собственно объектам, есть еще и такие, которые можно применять ко всему изображению, видоизменяя его, наподобие цветного светофильтра, который ставится на объектив камеры. Постами (от англ. Post) они называются потому, что применяются(накладываются) уже после того, как общая картинка уже отрисована. При помощи постов реализуются такие эффекты, как тепловизор или прибор ночного видения.

Extending the Set of Materials
Расширение набора материалов#

UNIGINE provides a rich set of built-in base materials out of the box. But no matter how rich the library is, you'll always want to add something and UNIGINE allows that, because the principle of extensibility is the basis of the material system. You can create your own materials that implement almost any functionality in either of the following ways:UNIGINE из коробки предлагает большую библиотеку встроенных материалов для различных целей. Но какой бы богатой ни была библиотека, всегда хочется чего-то добавить и UNIGINE позволяет это сделать, поскольку принцип расширяемости положен в основу всей системы материалов. Собственные материалы, реализующие практически любой функционал, можно создавать различными способами:

  • In the visual editor without code, we will talk about this later.В визуальном редакторе без кода, об этом отдельно поговорим чуть позже.
  • Create your own abstract material and inherit the base material from it. Abstract materials allow you to simplify the programming of shaders and hide the complexity of the functionality implementation. Like abstract classes in object-oriented programming, they serve as a template for defining certain parameters and functions that can be extended later. The abstract material itself cannot be assigned to an object.Написать собственный абстрактный материал и отнаследовать от него базовый. Абстрактные материалы позволяют упростить программирование шейдеров и скрыть сложность реализации функционала. Подобно абстрактным классам в объектно-ориентированном программировании, они служат шаблоном определения определенных параметров и функций с целью их последующего расширения. Сам абстрактный материал нельзя назначить объекту.
  • Create a custom shader using UUSL.Написать собственные шейдеры на UUSL
Последнее обновление: 16.08.2024
Build: ()