The ground segmentation template allows you to modify the ground by using a ground segmentation mask provided by the ML Component. Additionally, objects in the scene can be occluded when they are placed beyond the ground
There are 3 different default ground examples to explore, check them out simply by enabling/disabling them in the Objects panel under
Ground Segmentation [OBJECTS_HERE] > Floor Example.
Each of these examples come with a special material that you can modify. You’ll find all materials in the
Resources panel under
Materials > Advanced Ground Examples.
Ice Parallax material uses duplications and Parallax Coord in the Material Editor to achieve depth in textures. Try adjusting the
Depth parameter on the material to change its depth. Adjust
Loop Iterations inside the graph to change the amount of parallax effect. Adjust the
Brightness/Contrast Node to get different color effects.
There are also 2 sets of textures for the
Ice Parallax example, feel free to switch them for different styles.
The Tiled Ground
The Tiled Ground Material allows you to tile a texture across the floor. To get started, select the tiled_ground Material in the
Resources panel. You can try replacing
Base Texture on
tiled_ground with your own image in the
The Simple Ground material is a simple Unlit Material with a default white texture, try replacing the texture with your own for an unlit tiling effect on the ground.
Applying Ground Mask
Ground Mask allows you to mask out parts of your virtual ground based on a texture input. To enable ground mask, check the
Show Ground Mask option on any of the ground materials above, and link
Ground Mask [FOR GROUND MATERIALS] under the
Textures folder into the
Ground Mask Texture slot.
To edit the shape or position of the ground mask, edit the material attached to the
Ground Mask[FOR_GROUND_MATERIAL] object. For example, you can bring in your own texture by selecting the object in the
Objects panel, then in the
Inspector panel replace the Texture field with your own texture.
Tip: To make any object part of the ground mask, set their layer to the GroundMaskCamera layer. Areas rendered as white on this layer by the Ground Mask Camera will mask the ground material.
Creating Custom Materials for Ground Segmentation
To create additional materials which will be occluded beyond the ground, you can duplicate the materials labeled
[DUPLICATE_ME] . These materials are just the regular default Graph Unlit and Graph PBR with the additional ground mask nodes explained in the next section.
Modifying Graph Materials to Use Ground Segmentation
Materials with ground segmentation are any graph materials with additional nodes used for occlusions.
Tip: The Color’s alpha value represents the opacity for that part of the object. To learn more about Graph materials, check out the Material Editor guide.
To make a material from scratch, go to the Resources folder and select
+ > Graph Materials. Then copy paste the Occluder section from either of the materials marked
[DUPLICATE_ME] in the Resources panel under
Materials > Advanced Ground Example. Drag your mouse around the Occluder section, right click and press
Copy. Finally, in the material you want masked, right click, press
Paste and connect it to the
Tip: If custom materials already have its alpha channel, make sure to use the
Multiply Node with the Alpha output from the Occluder group.
Tip: Take a look at the example materials to see different ways of connecting the Occluder node to your Color(Pixel)’s Alpha value.
Warning: Make sure
Script Name of the
u_segmentationTexture node is set as
With your nodes attached to the alpha value, we need to set the materials blend mode to Normal so that it will be used. In the Inspector panel, make sure to have
Blend Mode set as not
We also need to pass in our ground segmentation mask to this material to be used. To do this, in the Inspector panel, link
processed_segmentation_texture to u_segmentationTexture, which can be found under
Segmentation Resources [DO_NOT_DELETE] > Render Targets.
To apply ground mask to your custom material, rather than feeding the
Occluder group directly to the object’s material, we will pass it through our
Mask Camera Occluder group. Specifically, we will connect the
Ground Seg Occluder output to the
X port of the
Multiply Node, and the Default port of the If / Else node.
Finally, as before we will feed in the segmentation texture we want to use. Select the modified material in the Resources panel, then in the Inspector panel, toggle
Show Ground Mask, and pass in
Ground Mask [FOR GROUND MATERIALS] under
Textures to the
Ground Mask Texture field.
This template also comes with the World Object Controller that you can use to add movable objects to your Lens. You can delete this object if you do not need it.
Put your objects under the
World Object Controller in order for it to be dragged around and manipulated.
To have your animation play different animations depending on whether it is being picked up, link its
Animation Mixer Component to the
Animation Mixer slot on the script attached to
Pickup Animated Object Controller. Make sure to name the animations according to your object’s animation, in the case of the example object, it is
Tip: if you just want your object to play the animation it has automatically, enable
Autoplay on its Animation Mixer component, otherwise animation will be played by the
If your object doesn’t have animations, you can disable or delete the
Pickup Animation Object Controller object.
Tip: Ground segmentation requires surface tracking to be active. If you want to disable objects when ground segmentation is unavailable, you can select
Device Tracking [DO_NOT_EDIT] in the
Objects panel, then in the
Inspector panel under the
Switch Tracking script, enable the
Advanced checkbox and add your objects there.
Previewing Your Lens
You’re now ready to preview your Lens! To preview your Lens in Snapchat, follow the Pairing to Snapchat guide.
Please refer to the guides below for additional information:
Still Looking for help?Visit Support