makeup|SDK makeup|SDK is a library based on visage|SDK face tracking used to configure and render virtual makeup.

Loading...
Searching...
No Matches
Instance Methods | Class Methods | Properties | List of all members
ElementTemplate Class Reference

`#import <FeatureTemplate.h>`

Inherits NSObject.

## Instance Methods
(NSMutableDictionary *) | - ToJSON

## Class Methods
(ElementTemplate *) | + FromJSON:

## Properties
NSString * | name
NSString * | area
NSString * | texture
Color * | color
PipeTemplate * | pipeline
Boolean | useColor
Boolean | useTexture

## Detailed Description

Contains rendering information of each element of a makeup feature. A makeup feature can consits of multiple elements with different color, renderign area and/or rendering algorithm.

Each ElementTemplate consists of the following:

- name: the name of the element
- area: the area where rendering will be performed
- color: the color of the area where rendering will be performed
- pipeline: rendering steps to use when rendering this element.

Color is stored in Color class which contains a 4 dimensional vector specifying red, green, blue and alpha channels.

Area is specified as a name of the image file that contains a greyscale image specifying how much of the color of this ElementTemplate should be used at each fragment of the mesh used for rendering of the feature containing this ElementTemplate. For each pixel in the area image, if the pixel is white this 100% of color from this element template will be used. If the pixel is black 100% of the color from the previous element will be used. The pixel values in between are lineraly interpolated.

Once an effect is created from a feature each element template in the feature is mapped to one element. The previous element of the first element in an effect is the output of the previous effect. If there are no previous effects displayed, the previous element is raw input image without augmentation.

The location where area images are stored is <path to platform dependent assets folder> + "/Textures/Area/" + FeatureTemplate.type + ElementTemplate.area where FeatureTemplate.type is type of the feature containing this ElementTemplate and ElementTemplate.area is the area parameter of this ElementTemplate. The location for storing of the color map is <path to platform dependent assets folder> + "/Textures/" + Element.texture.

Since the area image is used as a texture on a mesh used for rendering the feature it will only work correctly if the uv mapping used on the mesh matches the area image. This means that area images can be reused between features only if the features have the same type. Therefore, when specifying a new custom area image, the image file needs to be placed in the subfolder specific to the type of the feature new area was created for.

The available meshes are stored in .obj format in the "StreamingAssets/Models" folder of the package. UV maps from these meshes should be used when creating new area textures.

## Method Documentation

## ◆ FromJSON:

+ (ElementTemplate *) FromJSON: |  | (NSDictionary *) | jsonDictionary |

Returns Element object out of JSON dictionary.

Parameters

  jsonDictionary | JSON dictionary

Returns
  deserialized Element object

## ◆ ToJSON

- (NSMutableDictionary *) ToJSON |  |  |

Returns JSON representation out of this Element object.

Returns
  JSON representation of this Element returned as NSMutableDictionary

## Property Documentation

## ◆ area

- (NSString*) area
| read write nonatomic strong

Name of the image file specifying the area where rendering of this element will be performed.

## ◆ color

- (Color*) color
| read write nonatomic strong

Color of the area where rendering will be performed

## ◆ name

- (NSString*) name
| read write nonatomic strong

Name of the element

## ◆ pipeline

- (PipeTemplate*) pipeline
| read write nonatomic strong

Rendering steps to use when rendering the element

## ◆ texture

- (NSString*) texture
| read write nonatomic strong

Path used to store color map of the rendered feature.

## ◆ useColor

- (Boolean) useColor
| read write nonatomic assign

Some of the feature elements do not use coloring step in their pipelines. Set to true if element uses (RGB) of the color, otherwise it only uses the alpha channel to control intensity.

## ◆ useTexture

- (Boolean) useTexture
| read write nonatomic assign

Some of the feature elements do not use coloring step in their pipelines. Set to true If element should use the provided color map stored in texture member, otherwise it only uses the alpha channel provided in the color member to control intensity.