Видеоуроки
Interface
Essentials
Advanced
Полезные советы
Принципы работы
Properties
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров узла
Setting Up Materials
Setting Up Properties
Освещение
Landscape Tool
Sandworm (Experimental)
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Программирование
Основы
Настройка среды разработки
Примеры использования
UnigineScript
C++
C#
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Art Samples
Tutorials

Структура данных UUSL

UUSL has Data structure which offers you a handy access to values. UUSL имеет структуру Data, которая предлагает удобный доступ к значениям.

Data FieldsПоля данных#

Data has the following fields (values in world space has _w postfix): Data имеет следующие поля (значения в мировом пространстве имеют постфикс _w):

UUSL
struct Data {
	
	float 	depth;
	float3	position;
	float3	view;
	
	float3	normal;
	float3	reflection;
	
	// world space values
	float3	view_w;
	float3	normal_w;
	float3	reflection_w;
	
	float3	sky_reflect;
	
	float2	screen_coord;
	
	float	dotNV;
	
	float dielectric;
	float gloss;
};

Data FunctionsФункции Data#

Data dataDefault ( ) #

Default constructor for Data structure. It creates an instance with default (not null) values. Конструктор по умолчанию для структуры Data. Он создает экземпляр со значениями по умолчанию (не нулевыми).

Возвращаемое значение

Data structure with default (not null) values. Структура Data со значениями по умолчанию (не нулевыми).

void dataSetPosition ( inout Data Data, float3 pos ) #

Calculates position, depth and view values for given Data struct. Вычисляет значения позиции, глубины и просмотра для данной структуры Data.

Аргументы

  • inout Data Data - Data structure to fill. Структура Data для заполнения.
  • float3 pos - Position vector. Вектор положения.

void dataCalculateWorldSpace ( Data Data ) #

Calculates world view, normal, reflection in world space by using corresponding values of given Data struct. Вычисляет мировоззрение, нормальное отражение, отражение в мировом пространстве, используя соответствующие значения данной структуры Data.

Аргументы

  • Data Data - Data structure to fill. Структура Data для заполнения.

void dataSetGbuffer ( inout Data Data, GBuffer gbuffer ) #

Sets Data's structure normal, dielectric and gloss values by using corresponding values of given GBuffer instance. Устанавливает нормальные, диэлектрические и глянцевые значения структуры данных, используя соответствующие значения данного экземпляра GBuffer.

Аргументы

  • inout Data Data - Data structure. Структура Data.
  • GBuffer gbuffer - GBuffer instance with necessary values to be set. Экземпляр GBuffer с необходимыми значениями, которые необходимо установить.

void dataCalculateAll ( inout Data data, GBuffer gbuffer, float3 pos, float2 screen_coord ) #

Calculates all values for Data struct. Вычисляет все значения для структуры Data.

Аргументы

  • inout Data data - Data structure to be filled with calculated values. Структура Data для заполнения вычисленными значениями.
  • GBuffer gbuffer - GBuffer struct. Структура GBuffer.
  • float3 pos - Position vector. Вектор положения.
  • float2 screen_coord - Screen coordinates. Координаты экрана.

Usage ExampleПример использования#

To use Data structure in your shader's code, you should define and initialize the Data structure and fill it. Чтобы использовать структуру Data в коде шейдера, вы должны определить и инициализировать структуру Data и заполнить ее.

The following example shows the way of creating Data structure and calculating its values. В следующем примере показан способ создания структуры данных и вычисления ее значений.

UUSL
/* ... */
// input structure for fragment shader
STRUCT(FRAGMENT_IN)
	INIT_POSITION
	INIT_IN(float4,0)
	INIT_IN(float3,1)
	INIT_IN(float3x3,2)
	
	#ifdef USE_ALPHA_FADE && ALPHA_FADE
		INIT_IN(float,9)
	#endif
END

/* ... */
// in the main function of fragment shader
	// GBuffer 
	GBuffer gbuffer;

	/* fill the GBuffer struct */

	Data data;
	dataCalculateAll(data,gbuffer,IN_DATA(1),IN_POSITION.xy);
/* ... */
Последнее обновление: 11.11.2020