Face instance что это

FacesВ¶

Properties ‣ Object Properties ‣ Instancing

Instancing Faces is the capability to replicate an object on each face of a parent object. One of the best ways to explain this is through an example illustration.

Scales each instance according to the size of its corresponding face.

Scale the instance faces objects.

Make Instance Face tool converts linked objects (that share mesh data) into instanced faces. This tool creates the parent object (instancer) with faces where the objects were, then it uses Instancing Faces to put instances at the location of every created face.

Download the blend-file used for the examples on this page here.

Basic UsageВ¶

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это

A cube and a sphere. В¶

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это

Instancing Faces applied to the cube. В¶

The location, orientation, and scale of the instanced child(ren) matches that of the faces of the parent. So, if several objects are parented to the cube, they will all be instanced once for each face on the cube. If the cube is subdivided, every child will be instanced for each face on the cube.

Both the parent object and original are displayed as editable “templates” in 3D Viewport, but neither is rendered.

ScaleВ¶

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это

Top face of cube scaled down. В¶

By enabling Scale for the parent object, the scale of the child objects will be adapted to the size of each face in the parent object.

Thus, by rescaling the face of the parent object, the size of the instanced object will change accordingly.

Limitations/ConsiderationsВ¶

The positioning of the instanced geometry relative to the face is dependent upon the position of the child objects relative to the instancer’s origin. This can lead to some visual artifacts in the 3D Viewport as the geometry of the original objects overlaps or intersects with the instanced geometry. One workaround is to move the origin of the instancer mesh off of the plane of the faces.

If the geometry of the children is not symmetrical then the orientation of the face (as determined by the order of its vertices) could matter. As of 2.70 Blender does not have tools which allow you to adjust the ordering of the vertices on a face.

However, there is a workflow that lets you control for this. Make a single square and enable the Instancing Faces so you can see the instanced geometry in the 3D Viewport. If the orientation is not what you want, rotate the face until it is how you want. Typically you want to do the rotation in Edit Mode, not Object Mode, but this is not a hard rule.

Once you have the orientation correct, Duplicate the face and move the duplicate where you want it. Repeat this process until you have enough faces. Since it is common for these faces to butt up against one another, your geometry will have lots of duplicate vertices. Use the Merge by Distance button in the Tools panel.

A short video illustrating this workflow:

Источник

FaceInstance

This item is not shown in Roblox Studio’s Object Browser.

This object cannot be created with the Instance|Instance.new constructor function.

The FaceInstance class is an abstract class from which the Decal class inherits.

Properties

Sets what face of the brick the object appears on.

Archivable

Determines if an Instance can be cloned using /Instance/Clone or saved to file.

ClassName

A read-only string representing the class this Instance belongs to

DataCost

The cost of saving the instance using data persistence.

A non-unique identifier of the Instance

Parent

Determines the hierarchical parent of the Instance

RobloxLocked

A deprecated property that used to protect CoreGui objects

archivable

className

Functions

ClearAllChildren ( )

This function destroys all of an Instance ’s children.

Clone ( )

Create a copy of an object and all its descendants, ignoring objects that are not Instance/Archivable|Archivable

Destroy ( )

Sets the Instance/Parent property to nil, locks the Instance/Parent property, disconnects all connections and calls Destroy on all children.

FindFirstAncestor ( string name )

Returns the first ancestor of the Instance whose Instance/Name is equal to the given name.

FindFirstAncestorOfClass ( string className )

Returns the first ancestor of the Instance whose Instance/ClassName is equal to the given className.

FindFirstAncestorWhichIsA ( string className )

Returns the first ancestor of the Instance for whom Instance/IsA returns true for the given className.

Returns the first child of the Instance found with the given name.

FindFirstChildOfClass ( string className )

Returns the first child of the Instance whose Instance/ClassName|ClassName is equal to the given className.

Returns the first child of the Instance for whom Instance/IsA returns true for the given className.

FindFirstDescendant ( string name )

Returns the first descendant found with the given FullName (or partial FullName).

GetActor ( )

Returns the Actor associated with the Instance, usually the first Actor ancestor

GetAttribute ( string attribute )

Returns the attribute which has been assigned to the given name

GetAttributeChangedSignal ( string attribute )

Returns an event that fires when the given attribute changes

GetAttributes ( )

Returns a dictionary of string → variant pairs for each of the Instance|Instance’s attributes

GetChildren ( )

Returns an array containing all of the Instance ’s children.

GetDebugId ( int scopeLength )

Returns a coded string of the Instance s DebugId used internally by Roblox.

GetDescendants ( )

Returns an array containing all of the descendants of the instance

GetFullName ( )

Returns a string describing the Instance ’s ancestry.

GetPropertyChangedSignal ( string property )

Get an event that fires when a given property of an object changes.

IsA ( string className )

Returns true if an Instance ’s class matches or inherits from a given class

IsAncestorOf ( Instance descendant )

Returns true if an Instance is an ancestor of the given descendant.

IsDescendantOf ( Instance ancestor )

Returns true if an Instance is a descendant of the given ancestor.

Remove ( )

Sets the object’s Parent to nil, and does the same for all its descendants.

Sets the attribute with the given name to the given value

Returns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does.

Источник

Фейсинг

Фейсинг — маркетинговый инструмент, который помогает реализовать больше продукции приоритетного бренда. С его помощью продвигаются продукты определенных торговых марок, повышается оборот, растет прибыль.

Что такое фейсинг

Основой выкладки в мерчендайзинге является фейс. Это количество единиц товарной группы, представленной на полке магазина. Количество повторений одной позиции, упаковки которой находятся в глубине полки, не учитываются. Негласная задача мерчендайзеров — вытеснить с витрин часть конкурентных позиций.

А фейсинг (от англ. face — лицо, облицовка) — это система расположения продукции на полках магазинов. К его задачам относится удержание внимания покупателей и закрепление SKU на конкретной полке.

SKU (от англ. Stock Keeping Unit — учетная складская единица) в маркетинге означает ассортиментный идентификатор позиции. Инструмент используют для улучшения сбыта недостаточно востребованной продукции. Если количества ассортиментной единицы на полках слишком мало, ее продажи снизятся.

Взаимосвязь между SKU, фейсом и фейсингом

Фейс в мерчендайзинге неразрывно связан с ассортиментом товара и его наличием на витринах магазина. Количество фейсов должно совпадать с числом зарегистрированных на складе SKU. Если оно ниже, значит выставить весь ассортимент в торговом зале не удалось. Шансы на продажу позиции, недоступной покупателям, существенно снижаются. За исключением магазинов, в которых покупатели заранее знают, что именно хотят приобрести.

каждая учетная единица представлена хотя бы одним фейсом;

приоритет размещения на торговых площадях отводится ассортименту с наибольшим спросом ;

наименование и логотип на упаковке продукции должны быть обращены к клиенту;

первый ряд не должен превышать оптимальную ширину.

Выкладки, занимающие менее 40 см на полке, менее привлекательны для покупателя. Но слишком большая протяженность рассеивает внимание клиента. Учитывается количество и расположение фейсов, периодически места выкладки заменяются. Это дает хорошие результаты.

Цели и задачи фейсинга

Главные задачи — демонстрация SKU и удержание витрин. Цель — направить внимание клиента к перспективным новинкам, что позволяет равномерно реализовывать складские запасы. Ставить цели по выкладке на полках необходимо для контроля скорости оборота.

Грамотная ротация позиций в выкладках на торговых площадях применяется для фиксации внимания потребителей. С ее помощью привлекаются клиенты к SKU со сниженным оборотом. На полках должно найтись место всем позициям, хранящимся на складе.

Особенности фейсинга в магазине

Повышение восприятия товаров на месте продажи необходимо всем магазинам, вне зависимости от режима обслуживания. Посетитель воспринимает визуальную информацию (Visability) в поле, находящемся на уровне глаз. Эту зону в маркетинге называют «золотой». Здесь проще реализовывать продукцию с низким спросом или приоритетный товар.

Для магазинов с самообслуживанием особенно важно, чтобы товар убывал равномерно, снижая трудозатраты продавцов. Простая формула поможет определить количество товара в фейсе: процент продажи SKU в суммарном подсчете от общей численности должен быть равен проценту длины полок, занятых фейсом этого продукта.

Заключение

Фейсинг в мерчендайзинге применяется как инструмент маркетинговых коммуникаций. С его помощью покупатель видит товар «лицом». Для выполнения плана продаж приоритетный товар должен занимать большее полочное пространство. Хорошо продуманный фейс направляет внимание покупателя в нужное русло.

Источник

Как работает Face ID в iPhone. Простыми словами

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это

Представленный в сентябре 2017 года iPhone X стал, пожалуй, самым инновационным смартфоном Apple. Купертиновцы решились на изменения в флагманском устройстве сразу по нескольким направлениям, а самым заметным отличием стал безрамочный дисплей на всю лицевую поверхность смартфона.

Отсутствие привычной и каноничной для iPhone кнопки Домой ознаменовало переход на более совершенный способ идентификации пользователя. К счастью, в Apple не стали размещать сканер Touch ID на задней панели смартфона, а готового и надежного решения с датчиком под дисплеем на тот момент просто не существовало.

В итоге инженеры из Купертино разработали одну из самых безопасных и инновационных систем идентификации пользователей в области потребительской электроники. Сейчас разберемся, как работает распознавание пользователя по лицу, насколько это надежно и в чем ключевые преимущества этой технологии.

Как устроен Face ID

Face ID в вашем iPhone – это объемно-пространственный сканер лица человека. Модуль из камер и сенсоров работает по принципу Time-of-flight (от англ. время полета), распознавая не просто плоский портрет человека, а его объемную модель.

Для каждого полученного пикселя сенсор фиксирует его удаленность, формируя глубину изображения. Расчет расстояния до каждой точки происходит при помощи фиксации времени полета луча. По такому же принципы построено большинство военных и гражданских радаров. Главное отличие – использование светового импульса в Face ID и радиочастотного сигнала в радаре.

Face ID является ответвлением технологии LiDAR, которая с недавнего времени появилась в профессиональных линейках iPad и iPhone.

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это
Камера для захвата движения пользователя Kinect стала прародителем Face ID

Технология Face ID основана на разработках компании PrimeSense. Это израильское предприятие работает в сфере 3D-зондировнаия с 2005 года, а в 2013 компанию и все права на разрабатываемые технологии приобрела Apple.

Удивительно, что в Купертино задумались над более перспективным способом идентификации пользователей одновременно с презентацией Touch ID в iPhone 5s. Вот так нужно строить долгосрочную стратегию развития своих гаджетов.

Face ID базируется на инфракрасных измерителях глубины, которые легли в основу датчика движения Kinect для консолей Xbox. Интерес к технологии у Apple практически совпал с отказом использования Kinect в Microsoft.

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это

Сканер Face ID состоит из двух принципиально отличающихся блоков: точечного проектора, который проецирует более 30 000 ИК-точек на лицо пользователя и соответствующей ИК-камеры, которая считывает полученный рисунок.

Полученное объемное изображение сравнивается с созданным при настройке Face ID “отпечатком” и производит идентификацию пользователя.

Сложности конструкции придают остальные уже привычные для фронтальной поверхности iPhone элементы: динамик, микрофон, датчик освещенности, датчик приближения и фронтальная камера. Все это делает “челку” iPhone очень технологичной и сложной в устройстве.

В каких гаджетах Apple применяется Face ID

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это

Face ID присутствует в следующих моделях техники Apple:

Производитель не заявляет о наличии нескольких поколений датчика Face ID. Несмотря на это, в работе разных гаджетов присутствуют отличия в работе данной фишки.

Так второе поколение iPhone с Face ID (модели iPhone XS/XS Max и iPhone XR) обладает более высокой скоростью срабатывания благодаря системе Neural Engine 2‑го поколения. С выходом iOS 13 купертиновцы заявили, что Face ID во всех смартфонах начал работать на 30% быстрее.

В моделях iPad сканер Face ID умеет работать не только в портретной ориентации, но и в ландшафтной. iPhone лишен такой возможности.

Что инновационного в датчиках Face ID

Другим компаниям проще и дешевле развивать аналоги Touch ID и встраивать сканер отпечатка пальцев под дисплей или в тонкую боковую кнопку смартфона, чем создавать аналог технологии Face ID.

Кроме этого с обновлением iOS добавили возможность сохранить альтернативный внешний вид. Некоторые пользователи добавляют свое лицо с носимыми аксессуарами (головные уборы или очки), а другие сохраняют “отпечаток” близкого родственника, чтобы он тоже мог пользоваться смартфоном без пароля. Эта фишка позволяет обучить сканер для срабатывания в маске.

Насколько безопасно использовать Face ID

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это

Как и в случае с Touch ID, сохраненные изображения пользователей не хранятся в открытом виде на смартфоне и не передаются по сети. Во время настройки объемное изображение превращается в математическую модель и помещается в защищенное хранилище Secure Enclave. Это специальная область процессора, которая тесно интегрирована с чипом iPhone.

Для повышения уровня защиты купертиновцы связывают сканер Face ID с материнской платой и процессором на аппаратном уровне. Такая привязка есть в каждой модели iPhone или iPad, что делает невозможным подмену Secure Enclave при замене одного из компонентов гаджета.

Обратной стороной такой защиты является сложность при ремонте. В случае возникновения проблем с Face ID, придется менять связку из модуля камер и привязанную к нему материнскую плату. Как вы понимаете, подобный ремонт будет стоить львиную долю стоимости устройства.

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это
Это вероятность того, что кто-то сможет разблокировать ваш iPhone с Face ID своим лицом

Чтобы избежать непроизвольной аутентификации, система требует сканировать лицо с открытыми глазами, обратив взгляд в сторону камеры. Пользователю доступно отключения этой особенности. Достаточно выключить опцию Требовать внимание для Face ID по пути Настройки – Face ID и код-пароль. После отключения фишки iPhone получится разблокировать даже с закрытыми глазами, что серьезно снижает безопасность защиты. С другой стороны опция позволяет снимать блокировку смартфона очень быстро.

После пяти неудачных попыток сканирования или через 48 часов бездействия гаджета потребуется ввод пароля разблокировки. Код нужно вводить после каждой перезагрузки смартфона, при замене SIM-карты или после активации SOS-режима.

Присутствует небольшая хитрость, которая позволяет быстро отключить Face ID при необходимости. Кроме этого есть встроенная защита для дезактивации Face ID при обнаружении неоригинальных компонентов iPhone.

Все это дает максимальный уровень защиты и обезопашивает от взлома смартфона извне. Как и в случае с Touch ID, быстрее и проще взломать iPhone при помощи специального вируса, чем при помощи обмана Face ID.

Единственным слабым местом системы являются ложные срабатывания с близнецами. Однако, купертиновцы совершенствуют алгоритмы работы и минимизируют ошибки при помощи обновления ПО.

Вот такая мощная и технологичная фишка присутствует в небольшом смартфоне, который помещается в ваш карман.

Источник

Как использовать все возможности mental ray в работе с 3ds max. Часть 4. Геометрические объекты

Поверхности настраиваемой детализации (subdivision surfaces) стандартной версией mr не поддерживаются. Эти типы поверхностей могут быть отрендерены mental ray после аппроксимации, выполненной пакетом трехмерного моделирования. Либо после установки расширения mental matter, которое содержит необходимые шейдеры.

Поскольку для определения объекта требуются координаты, в mr необходимо явно указывать координатную систему. В настоящее время используется три системы: система координат, привязанная к камере (camera space), система координат объекта (object space) и мировая система координат (world space). Основными являются object и world, тогда как camera space используется только в особых случаях и, в основном, для совместимости со старыми версиями mr.

Object space является локальной системой координат. Это означает, что для каждого объекта создается собственная система координат, которая привязывается к началу объекта, и все координаты элементов объекта определяются относительно локальной системы.

Чтобы объект стал частью сцены и мог быть отрендерен, его локальные координаты должны быть преобразованы к мировым координатам сцены. Это достигается посредством создания instance-объекта, суть которого и состоит в преобразовании координат. Матрица трансформации указывается в instance объекта и определяет его положение, ориентацию и масштабирование. Такой подход позволяет иметь одно определение объекта и множество его instance-представителей в сцене, при этом память расходуется только на описание одного объекта.

В самом общем виде определение геометрического объекта в mi-файле сцены выполняется при помощи конструкции:

object » object_name «
[ visible [ on|off] ]
[ shadow [ on|off] ]
[ shadow [ mode] ]3.4
[ shadowmap [ on|off] ]3.3
[ trace [ on|off] ]
[ reflection [ mode] ]3.4
[ refraction [ mode] ]3.4
[ transparency [ mode] ]3.4
[ select [ on|off] ]
[ tagged [ on|off] ]
[ caustic [ on|off] ]
[ globillum [ on|off] ]
[ finalgather [ on|off] ]
[ caustic [ mode] ]
[ globillum [ mode] ]
[ finalgather [ mode] ]3.4
[ finalgather file file (list) ]3.4
[ face [ front|back|both] ]3.4
[ box [min_x min_y min_z max_x max_y max_z] ]
[ motion box [min_x min_y min_z max_x max_y max_z] ]
[ max displace value ]
[ samples min max ]
[ data null|» data_name » ]
[ tag label_number ]
[ file » file_name » ]
[ basis list ]
group
vector list
vertex list
geometry list
approximation list
end group
end object

Конструкция определения объекта начинается с указания имени объекта и состоит из двух частей: флагов и операторов свойств объекта (все из которых являются необязательными и могут не указываться), и описания геометрии объекта в group … end group.

Имя объекта » object_name «, указываемое при его определении, служит для целей идентификации объекта. Имя объекта используется в mental ray только при отчете о ходе выполнения рендеринга и в сообщениях об ошибках. Имя объекта рекомендуется указывать в двойных кавычках. Флаги и операторы свойств геометрического объекта

позволяет или запрещает объекту отбрасывать тень. Значение флага shadow off, определенное в блоке Options mi-файла сцены, отключает расчет теней у всех объектов и имеет преимущество над значением флага shadow в свойствах объектов.

устанавливает, что отбрасываемая объектом тень рассчитывается при помощи алгоритма построения растровых карт теней. Требуется также, чтобы флаг shadow был установлен в значение on. Флаг появился в mr 3.3.

Начиная с версии mental ray 3.4, появились три дополнительных флага, позволяющие по отдельности управлять видимостью объекта для отражений, преломлений и лучей простой прозрачности, рассчитываемых scanline.

Дополнительные значения mode для reflection/refraction будут рассмотрены чуть позже.

значения mode и их смысл аналогичны значениям флага refraction. По умолчанию используется mode 3.

может использоваться приложениями для интерактивного выбора объекта при помощи луча, посылаемого в сцену, например, по нажатию кнопки мыши, из текущего положения на экране монитора. После трассировки вглубь сцены, луч возвращает список объектов, с которыми он пересекся. Только объекты с установленным флагом «select on» будут присутствовать в списке.

позволяет объекту участвовать в оптимизированном процессе генерации каустики. Оптимизация достигается использованием дополнительного флага, указывающего режим генерации каустики:

Блок Options также имеет оператор caustic, который имеет преимущество: если его значение «off», каустик-свойства объектов игнорируются.

Оператор globillum в блоке Options mi-сцены имеет преимущество, если его значение off, глобальное освещение в сцене рассчитываться не будет вне зависимости от значений флагов объектов.

В mental ray 3.4 появились два новых флага, позволяющие оптимизировать final gathering посредством индивидуального включения/исключения объектов из расчетов.

Если значение mode не указано явно, по умолчанию принимается значение 0. По-объектное указание значения этого флага позволяет, например, исключить из расчета диффузных переотражений чисто зеркальные или прозрачные объекты. Если для всех объектов сцены, за исключением данного, установить finalgather 9, а для самого объекта finalgather 3, то будут рассчитаны только fg-точки данного объекта.

Флаг
finalgather file file (list) ]

Этот оператор имеет преимущество перед аналогичным оператором в блоке Options. По умолчанию принимается значение both.

Оператор
box [min_x min_y min_z max_x max_y max_z]

позволяет определить прямоугольный трехмерный контейнер, полностью охватывающий объект и без учета displacement или motion blur. Такой куб используется вместо точного описания объекта, например, в случае рендеринга по требованию. Обычно, этот оператор используется совместно с оператором file » file_name «, указывающим имя файла с точным описанием геометрии объекта.

Оператор
motion box [min_x min_y min_z max_x max_y max_z]

определяет контейнер объекта с учетом минимальных и максимальных компонент векторов смещения, если таковые имеются

Оператор
max displace value

определяет максимально допустимое смещение контрольных точек объекта в локальном пространстве в направлениях, определяемых нормалями поверхности. Если displacement-шейдер, назначенный объекту, превышает значение value, displacement будет обрезаться, о чем появится предупреждающее сообщение в логе рендеринга.

используется для указания файла, хранящего точное описание геометрии объекта при попадании луча в пределы границ ограничивающего контейнера. Объект должен быть односоставным. При использовании этого оператора обязательно должны быть определены box, motion box и max displace.

Оператор
samples min max

указывает произвольное 32-битное целое число, идентифицирующее объект. Tag (label) используется mental ray для определения точки входа в базе данных сцены и предназначен исключительно для целей программирования шейдеров.

Оператор
data null|» data_name «

позволяет связать с объектом пользовательские данные с именем «data_name». Данные должны быть к этому моменту уже определены в сцене. Параметр null отменяет ссылку на определенные ранее данные.

определяет список базисов, используемых при описании поверхностей произвольной кривизны и трехмерных кривых.

Флаги visible, shadow, trace, reflection, refraction, transparency, caustic, globillum, finalgather и face могут быть переопределены при создании instance объекта.

Блок

group
vector list
vertex list
geometry list
approximation list
end group

Все вектора в пределах одного блока group … end group индексируются последовательно в порядке перечисления, начиная со значения индекса, равного нулю. То есть, самый первый вектор списка имеет индекс 0. Кроме того, все вектора подразумеваются трехмерными. Если описываются двумерные вектора, такие как текстурные координаты, базисные векторы или специальные точки на поверхности, просто полагается, что их третья координата равна нулю.

Вторая часть, vertex list, представляет собой последовательный список вершин. Описание каждой вершины в этом списке содержит указание типа вершины при помощи буквенного символа и ее индекса, определяемого по положению вершины в списке, нумерация вершин также начинается с 0.

Описание каждого элемента для полигонной геометрии выполняется при помощи конструкции:

[ тип вершины ] [» материал » ] список образующих вершин с индексами [ список вершин, образующих дыры в полигонах ]

Если в свойствах объекта был определен флаг tagged, тогда вместо указания материала для полигона обязательно указывается целочисленная метка: [ тип вершины ] label список образующих вершин

0.0 0.0 0.0
1.0 0.0 0.0
0.0 1.0 0.0
1.0 0.0 0.0
1.0 1.0 0.0
0.0 1.0 0.0
v 0
v 1
v 2
v 3
v 4

Третья часть описывает треугольники, составляющие полигон: p «material» 0 1 2 означает «concave-полигон», которому назначен материал «material», образован вершинами из списка вершин v 0 (соответствует указанному индексу 0, то есть первая вершина в списке вершин), v 1 (индекс 1) и v 2 (индекс 2). Как видим, все просто.

Преимущество трехэтапного определения геометрии состоит в возможности исключения повторяющихся элементов описания, что экономит память. В выше приведенном примере в списке векторов есть две повторяющиеся последовательности координат. Их можно указать только один раз. Тогда определение будет выглядеть:

object poli_4
visible
group
0.0 0.0 0.0
1.0 0.0 0.0
0.0 1.0 0.0
1.0 1.0 0.0
v 0
v 1
v 2
v 1
v 3
v 2
p «material» 0 1 2
p «material» 3 4 5
end group
end object

Вместо шести векторов в списке теперь сейчас только четыре. Однако теперь появились повторяющиеся вершины в списке вершин. Их тоже можно указывать только один раз. Тогда определение объекта примет вид:

object poli_4
visible
group
0.0 0.0 0.0
1.0 0.0 0.0
0.0 1.0 0.0
1.0 1.0 0.0
v 0
v 1
v 2
v 3
p «material» 0 1 2
p «material» 1 3 2
end group
end object

указывается в конце блока group … end group и определяет метод тесселяции геометрии. В случае поверхностей произвольной кривизны речь идет об аппроксимации треугольниками процедурных поверхностей, определенных аналитически. Для этих поверхностей оператор approximate присутствует всегда. Для полигонных поверхностей оператор используется только в том случае, если материал имеет displacement шейдер.

Смысл и назначение флагов и операторов visible on|off, shadow on|off, shadow mode, shadowmap on|off, trace on|off, reflection mode, refraction mode, transparency mode, caustic mode, globillum mode, finalgather mode, approximate, tag label, data идентичны аналогичным в конструкции определения объекта.

Транслятор 3ds max всегда устанавливает значение этих флагов и операторов только в instance объекта, оставляя их значение в определении объекта по умолчанию.

Несколько слов о значениях mode, которые он может принимать. Выше мы уже немного говорили об этом, но были указаны не все возможные значения.

Для определения значения mode флагов caustic и globillum используется 6-битная карта:

Биты карты могут смешиваться (хотя и не все), давая новые режимы взаимодействия объекта с фотонами. В конструкции определения объекта или его инстанса значение mode указывается в десятичном виде.

Например, для того, чтобы объект и получал и генерировал каустик- или gi- фотоны, нужно установить 1-й и 2-й бит карты, что соответствует десятичному значению 3. А для того, чтобы объект вообще не участвовал в расчетах каустики и gi (но участвовал в переотражениях фотонов), нужно установить 3-й и 4-й бит, что соответствует десятичному значению 12.

Если нужно, чтобы объект был «чистым» генератором каустики или gi, нужно установить биты 1-й и 4-й, то есть десятичное значение 9. Если нужно, чтобы объект только получал каустик или gi эффекты, но сам их не генерировал, нужно установить 2-й и 3-й биты, то есть десятичное значение 6.

Последний бит значения mode запрещает взаимодействие фотонов с геометрией. Это означает, что фотоны не будут отражаться или преломляться поверхностью, тогда как во всех остальных режимах фотоны отражаются/преломляются объектом, хотя сам он может не участвовать в расчетах самих фотонных эффектов.

Для значений mode флагов reflection, refraction, transparency и finalgather используется 4-х битная карта:

Правила смешивания битов для получения дополнительных режимов расчетов эффектов те же.

позволяет исключить инстанс и все ссылки на него из сцены. Используется в отладочных целях.

Матрица трансформации
transform [ matrix ]

определяет преобразование координат инстанса объекта из координатного пространства сцены (world space, если инстанс включен в группу root instance сцены) в локальное объектное пространство. Практически, матрица трансформации определяет масштабирование, ориентацию и положение инстанс-представителя объекта в сцене.

Матрица содержит 16 чисел:

transform1 0 0 0
0 1 0 0
0 0 1 0
x y z 1

числа x, y, z определяют положение объекта в сцене (в mr ось Z направлена вниз, а не вверх как в 3ds max), остальные числа описывают вращение и масштабирование.

Матрица смещения
motion transform [ matrix ]

определяет матрицу из 16 чисел преобразования координат векторов смещения из координатного пространства сцены в локальное пространство объекта.

выключает все унаследованные вектора смещения, определенные, например, для камеры.

используется как префикс с операторами material и approximate, устанавливает превосходство (переписывает) материалы и свойства аппроксимации в инстансах (инстанс-группах), определяемых на основе данного инстанс позже в сцене (инстанс инстанса). Если отсутствует, операторы более позднего определения инстанса имеют преимущество.

указывает для инстанса, какой материал будет использоваться для определения свойств поверхности объекта. Материал к этому моменту уже должен быть определен. Заданный материал наследуется всеми инстансами, определяемыми на основе данного позднее в сцене (вниз по структуре DAG сцены). Если определенные позднее инстансы имеют собственные материалы, они переписывают наследуемые.

задает список материалов для объекта. Если в определении объекта использовался флаг tagged и для полигонов задавались метки label, для полигона с меткой n используется n-ый материал в списке оператора. Если метка n превышает количество материалов, для полигона используется первый в списке материал.

Если transform, motion transform, material указываются в instance без аргументов, они считаются неопределенными. Это используется для накопления изменений с наращиванием при последовательных определениях instance на основе друг друга.

может быть назначена instance объекта, mental ray ее не использует, но метка может быть передана шейдеру для каких-либо нужд, например, идентификации инстанса. Свойства объектов в 3ds max и флаги mr

Установка свойства в 3ds max: Object Properties > General > Rendering Control > Visible to Camera on/off аналогична установке флага у instance объекта visible on/off. Видимость объекта для первичных лучей, теневых лучей и вторичных лучей raytrace reflection/refraction независима: например, если только visible off, объект не виден в камеру, но тени от него, а также его отражения и преломления видны:

Установка свойства в 3ds max: Object Properties > General > Rendering Control > Visible to Reflection/Refraction on аналогична установке trace on, то есть объекты получают и отбрасывают отражения/преломления, off вызывает появление вместо trace on двух флагов у instance объекта: reflection 6 и refraction 6, то есть объекту запрещается отбрасывать как отражения, так и преломления, но сам объект может отражать и преломлять, если позволяют свойства материала.

Ручным редактированием mi-файла возможно исключить один эффект и разрешить другой, например, исключить расчет преломлений, но оставить расчет отражений:

3ds max property: Object Properties > General > Rendering Control > Receive Shadows on/off флаг (instance): shadow on/9.

3ds max property: Object Properties > General > Rendering Control > Cast Shadows on/off флаг (instance): shadow on/off

3ds max property: Object Properties > General > Rendering Control > Renderable on/off флаг (instance): в mi-файле объект просто не транслируется.

3ds max property: Object Properties > mental ray > Indirect Illumination > Caustic & GI off флаг (instance): caustic 12 и globillum 12

3ds max property: Object Properties > mental ray > Indirect Illumination > Generate Caustic & Generate GI on (only) флаг (instance): caustic 9, globillum 9

3ds max property: Object Properties > mental ray > Indirect Illumination > Receive GI and Caustic on (only) флаг (instance): caustic 6, globillum 6

3ds max property: Object Properties > mental ray > Indirect Illumination > Receive & Generate GI and Caustic on флаг (instance): caustic 3, globillum 3

Есть свои особенности у транслятора 3ds max и при экспорте геометрии. Во-первых, транслятор всегда устанавливает у объекта флаг tagged on и использует метки для назначения материалов. Во-вторых, для определения меток используется специальная структура данных типа data:

declare data
«max_ObjectData» (
vector «bvmin»,
vector «bvmax»,
array integer «mapchannels»,
data «particleData»,
array integer «faceEdgeVisFlags»,
array integer «faceSmoothingGroup»,
array integer «particleID»,
array integer «materialID»
)
version 5
end declare

Кроме того, как видно из вышеприведенной структуры, транслятор определяет границы контейнера, полностью содержащего объект (vector «bvmin», vector «bvmax»), и некоторые другие служебные данные.

Кроме данных типа max_ObjectData, транслятор создает для определения объекта еще одну структуру типа data, max_NodeData:

declare data
«max_NodeData» (
color «WireColor»,
integer «NodeID»,
integer «NodeRenderID»,
array light «illuminators»,
array light «shadowmakers»,
boolean «useGlobalLights»,
array integer «materialRequirements»
)
version 2
end declare

которую использует для указания источников, освещающих объект и создающих тени, и некоторые другие данные. Хотя эти две структуры данных не документированы, смысл их довольно прозрачен.

Остальные флаги и операторы объекта и его инстансов могут быть отредактированы только в mi-файле. В этот список попадает samples, позволяющий регулировать суперсэмплинг объекта, и finalgather с его режимами и возможностью сохранения в файл. Отсутствие возможности настроек d 3ds max именно этих флагов особенно удручает. Рассмотрим простую сцену:

Теперь изменим у тумбы режим finalgather с 9 на 6: тумба получает отражения от других объектов, но сама вторичный свет не отражает:

Освещение окружающих объектов изменилось, что особенно хорошо видно на шаре, лежащем на тумбе.

Кроме того, на диске сохранился файл ball.fgm размером в 35 кб, содержащий fg-карту шара.

Теперь вернем у всех объектов finalgather в режим 3, samples 0 2, а в Options вернем «старые» настройки fg, с которыми рассчитывалась вся сцена:

Face instance что это. Смотреть фото Face instance что это. Смотреть картинку Face instance что это. Картинка про Face instance что это. Фото Face instance что это

Сводя все вместе, можно предложить следующий алгоритм организации по-объектного расчета вторичного освещения в сцене:

Обязательно нужно отключить оператор finalgather file (например, при помощи знака #, установив его в строке перед оператором), иначе fg-карта может грузиться из файла, а не рассчитываться. Затем выполняем повторные расчеты освещения с настройкой fg accuracy. Поскольку рассчитываться будет fg-карта только одного объекта, настройка радиусов и сэмплов fg должна быть относительно быстрой. После того, как будут найдены оптимальные значения fg радиусов и сэмплов для объекта, и fg-карта объекта будет сохранена в файл, можно вернуть настройки fg режимов всех объектов в исходное положение: finalgather 3. В Options изменить:

Таким образом, по-объектное редактирование режимов finalgather с сохранением карт в отдельные файлы объектов позволяет организовать по-объектный расчет вторичного освещения с разными степенями точности. В сочетании с индивидуальными настройками суперсэмплинга мы получаем гибкий и мощный инструмент оптимизации качества и скорости расчетов глобального освещения методом FG.

В следующей части будут рассмотрены камеры.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *