Guest3d.wohlnet.ru
некоммерческий проект, цель которого объединить профессионалов для обмена опытом и знаниями в области real-time рендеринга
guest3d
3.05: Программирование: Множественные группы каналов (Multiple channel groups)

Продвинутые програмы Quest3D могут быть сложными проектами. В определенной точке может оказаться весьма практичным разделение программы на несколько отдельных частей.

Раздел 4.1 по управлению проектом, обсуждает преимущества работы с множественными группами каналов. Этот раздел конкретно объясняет работу в Quest3D.

Множественные группы каналов связываются друг с другом с помощью специальных типов каналов: ‘Public Channel’ (публичный канал) и ‘Public Call Channel’ (публичный канал вызова).

Публичные Каналы (Public Channel)
Public Channel - это каналы, которые могут быть вызваны из внешней группы каналов. Они окрашены красным в Quest3D.

Публичные Каналы Вызова (Public Call Channels)
Public Call Channel связываются с Public Caller (публичный приемник). Они окрашены синим в Quest3D.

Каналы любого базового типа (base type) могут быть сконвертированы в Public Caller. Наиболее часто используемыми типами являются: Channel Caller, Value, Vector, Matrix, 3D Object, Camera и Light. Когда это возможно, используйте Public Caller этих типов для простоты использования и по причинам экономии памяти.

Связи между группами каналов (Linking between channel groups)
Связывание канала с другим каналом в отдельной группе каналов автоматически конвертирует его в Public Channel. Public Call Channel создается в другой группе каналов.

Каналы также могут быть сконвертированы в Public Caller вручную, с помощью контекстного меню, ‘Public Channel Functions > Make Channel Public’. В качестве альтернативы может быть нажата клавиша ‘P’.

Контекстное меню также предоставляет опцию для индивидуального создания Public Call Channels ‘Public Channel Functions > Convert to Public Call Channel’.

Настройки Публичного Канала Вызова (Public Call Channel properties)
С помощью окна настроек канала (Properties) возможно установить Public Channel (того же базового типа), к которому будет привязан Public Call Channel.

Функции (Functions)
Функции - это субпрограммы, которые могут быть вызваны с помощью параметров. Как и Public Caller, в Quest3D они всегда окрашены красным.

Параметры - это данные, используемые, как ввод для функций. В Quest3D они окрашены зеленым.

Каналы могут быть сконвертированы в Параметры (Parameters) вручную, с помощью ‘Public Channel Functions > Convert to Parameter Channel’ из контекстного меню.

Публичные Каналы (Public Channels) с потомками в виде Параметров (Parameter) становятся Каналами Публичного Вызова (Public Call Channels) с потомственными входами соответствующего типа.

Функции могут быть вызваны так часто, как это необходимо. Каждая ссылка (instance) может быть укомполетована другим параметром, таким образом создавая вариации.

Переключатели Каналов (Channel Switch)
Функции типа Channel Switch должны включать дополнительный канал Value перед тем, как параметр сможет быть подключенным к потомственному входу ‘Selector’. Это связано с природой канала Channel Switch.

Цикл For Loop
Функции также могут быть вызваны с помощью структуры цикла For Loop. Могут быть подключены массивы (arrays) в качестве параметров для создания еще более мощных структур.

Изображение выше показывает продвинутую функцию персонажа с параметрами для его движения, текущей анимации и текстуры. Изображение ниже показывает функцию, когда персонаж вызывается, как Public Call Channel (канал публичного обращения). Он использует массивы в цикле For Loop в качестве параметров.

Урок
Необходимая сцена Quest3D:
..\Tutorials\3.5 – Multiple channel groups\Multiple channel groups.cgr
..\Tutorials\3.5 – Multiple channel groups\3D scene render.cgr
..\Tutorials\3.5 – Multiple channel groups\Car.cgr
Необходимые шаблоны:
Variables \ Value \ Value
Шаг за шагом:

  • Откройте сцену ‘Multiple channel groups.cgr’. Она содержит структуру простого проекта.
  • Из меню приложения выберите ‘File > Import...’. Найдите файл ‘3D scene render.cgr’ в папке, указанной выше и нажмите ‘Open’ для подтверждения. В качестве пулового имени используйте ‘3D scene render’. Файл содержит простую сцену, включающую каналы Render, Camera и Light.
  • Нажмите на закладку ‘Groups’.
  • Из закладки ‘Groups’, перетяните пуловое имя ‘Multiple channel groups’ в верхний Граф Каналов.
  • Из закладки ‘Groups’, перетяните пуловое имя ‘3D scene render’ в нижний Граф Каналов.
  • Подключите канал ‘3D Scene Render’ в нижнем Графе Каналов к каналу ‘3D Scene’ в верхнем Графе Каналов. Обратите внимание, что канал ‘3D Scene Render’ в нижнем Графе Каналов стал красным, а каналы ниже вызываются активно (имеют голубую окантовку). Обратите внимание, что в верхнем Графе Каналов был создан синий канал, подключенный к каналу ‘3D Scene’.


  • Импортируйте файл ‘Car.cgr’ из директории, указанной выше. В качестве пулового имени используйте ‘Car’. Файл содержит модель автомобиля.
  • Из закладки ‘Groups’, перетяните пуловое имя ‘3D scene render’ в верхний Граф Каналов.
  • Из закладки ‘Groups’, перетяните пуловое имя ‘Car’ в нижний Граф Каналов.
  • Подключите канал ‘Car’ в нижнем Графе Каналов к каналу ‘Render’ в верхнем Графе Каналов.
  • Нажмите на закладку ‘Animation 3D View’. Заметьте, что модель авто отображается в окне предварительного просмотра.
  • Нажмите правой клавишей мыши на канале ‘Current Car Texture’ в нижнем Графе Каналов и выберите из контекстного меню ‘Public Channel Functions > Convert to Parameter Channel’ (преобразовать в параметрический канал). Обратите внимание, что канал стал зеленым. Также заметьте, что синий канал Public Call Channel ‘Car: Car -> Car’ в верхнем Графе Каналов теперь обладает потомственным входом типа Value.
  • Перетяните Value в верхний Граф Каналов и переименуйте его в ‘Current Car Texture’ (текущая текстура машины). Подключите его к синему каналу ‘Car: Car -> Car’.
  • Смените значение канала ‘Current Car Texture’ на ‘1’. Обратите внимание, что текстура модели автомобиля в Animation 3D View изменилась.

Законченная сцена:
..\Tutorials\3.5 – Multiple channel groups\Multiple channel groups – Complete.cgr

Если у вас есть материалы, или вы хотите дополнить существующие, если вы хотите писать новости относящиеся к технологиям реалтайм рендеринга, или имеете полезные файлы, вы можете стать резидентом guest3d.wohlnet.ru. Для этого нужно написать письмо в свободной форме на den@wohlnet.ru, с указанием вашей мотивации. Кроме того, каждый резидент получает возможность создать свою страницу, ссылка на которую будет прикреплена к каждому опубликованному вами материалу.
вход