Paintbrush

Create 3d art pieces with colorful ribbons. Adjust the color and size of your painting tool.

Painting

  1. Open the app

  2. Tap New Painting

  3. Press & hold to paint

  4. Tap the Colors button to select colors and line thickness

  5. Tap Clear if you want to clear your painting

  6. Tap Save to save the painting

Relocalizing

  1. Tap Load Painting

  2. You'll see a thumbnail picture of part of your map, point the camera at that area

  3. The painting will localize, and redraw itself infront of you!

Concepts

‚Äč

  • Mapping (more info here)

  • Saving (more info here)

  • Relocalization (more info here)

  • Minimum map quality threshold (more info here)

  • ARkit Hittesting (more info here)

  • Meta Data Usage (more info here)

  • Thumbnail Texture ( more info here)

  • Map List (more info here)

Plus some new concepts:

  • Show/Hide Pointcloud is controlled by a button that allows you to show or hide the little green points that pop up in the mapping process. As mentioned previously, the points represent unique environmental features that the Placenote SDK remembers. Its controlled by this function in the script PaintController.cs

public void onClickEnablePointCloud()
{
if (pointCloudOn == false) {
FeaturesVisualizer.EnablePointcloud(new Color(1f, 1f, 1f, 0.2f), new Color(1f, 1f, 1f, 0.8f));
pointCloudOn = true;
Debug.Log ("Point Cloud On");
} else {
FeaturesVisualizer.DisablePointcloud ();
FeaturesVisualizer.ClearPointcloud();
pointCloudOn = false;
Debug.Log ("Point Cloud Off");
}
}
  • Camera Children Objects can be configured in unity and used as a tool for your builds. In this example this is used as the paintbrush cursor which is fixed normal to the camera view. It is also controlled in PaintController.cs

public void onStartPaintingClick ()
{
startPanel.SetActive (false);
paintPanel.SetActive (true);
onClearAllClick();
LibPlacenote.Instance.StartSession ();
brushTipObject.SetActive(true);
textLabel.text = "Press and hold the screen to paint";
}