Dream Paint

Version 2.2

Dream Paint brings the power of 2D and 3D primitives. It makes painting easy, fast and flexible, using only one GPU draw call and is mobile friendly. This works in the game and Unity editor, without Unity pro, and in Unity 4.6 or later. It supports previous versions of Unity, but without painting using Unity Canvas. It comes with full documentation, examples and demos.

Draw in 2D or in 3D space. Select points, lines, or the line pen. Connect all positions with shapes, using Catmull-Rom spline, quadratic Bezier, cubic Bezier curves, or draw ellipse, or rectangle etc. Change widths or add vertices colors, to use in your shader, beside supports shaders with normals and tangents. Fill line joins, using bevel, miter, round, and last filling. Add custom caps. Apply your own material. Make UV texture coordinates continuous, for continuous textures, or set a UV step or correct UV dissertation, caused by joins filling and widths. Draw segments as billboards. Plus many more features.

Please, feel free to contact us if you need any assistance, have a proposal for future updates, or found a bug. Contact us by sending a message on any social network, or by using the contact form on our website:

http://www.2flydreams.com/

https://twitter.com/2FlyDreams

Infographics:

Demos:
http://www.2flydreams.com/dream-paint-navigation-demo.html
http://www.2flydreams.com/dream-paint-painting-demo.html

Asset Store:

Note, previous name was Dream Drawing!

Hi I’m curious about this product but I’m not exactly sure what it can do. Perhaps a video recording of it being used can help.

I checked out the demo, but it seems it only lets me draw lines. I want to see how easy it is to create curves. And from what I understand it’s easy to give it a dashed line pattern.

How is it used? Do you create lines from code? Or do you also provide an editor window to let us create lines in the scene a-la Photoshop vector paths? (although to be honest, being able to do it from code is enough for me)

I’m primarily looking into this for use in our game. In this screenshot, you’ll see we have a chess-like grid in our game.

This was good enough for a prototype, but I’m not satisfied with how it looks like right now.

One thing I was looking into, was replicating the effects shown here, because they make the ground look a lot less cluttered. Specifically:

  1. movement is shown by the borders of how far you can go, instead of showing each tile inside
  2. the corners of this movement border is smoothened out
  3. the movement path is shown as a smoothly-curved line with an arrowhead at the end
  4. these lines look like they are glowing

I was wondering if it’s easy to pull off such a thing using Dream Paint.

I was looking at Vectrosity but seeing as this is less expensive, I’m thinking about getting this instead.

Dear AnomalusUndrdog,

Thank you for submitting your questions to 2 Fly Dreams.

We are currently working at polygon update and tube update. Polygon update will give a user ability to draw custom filled primitives. Tube update – ability to draw custom tubes. So after that we will do video records.

Dream paint is very powerful tool, so you can draw not only simple line. For example, with lines pen you can create custom grid, with line pen and shape you can create ellipse. Dashed line can be easily made by dashed texture, or by points pen.

Work with Dream Paint is very easy, even very difficult primitives take about 5 lines of code, so we think editor window is useless for primitives creation.

As we have mentioned above, you can create grid using lines pen, and it will cost ONLY 1 GPU draw call. If you will have problems with it, contact us.

Yes, and such things you easily can do with Dream Paint, and it will cost 4 GPU draw calls. Dream Paint already contains such glowing materials (for caps and lines) in examples, so you if you decide to use it, you will only need to change color of materials. Beside, you can use your own for caps and lines.

Borders:
Can be done by line pen. Corners of this line can be smoothed using bevel, or miter filling. Note, if you want to use rounded joins filling, it currently not supported.

Movement path:
Can be done by line pen. Use Dream Paint shape: Catmull-Rom spline to create curve path. Add joins filling using bevel, or miter. Add your own cap to the end of the path, or take from examples. Note, using caps will add 1 additional draw call. It doesn’t matter how many caps you use, for example, if you use 100 lines with 200 caps, it will cost ONLY 2 draw calls.

Circle under character:
Can be done by line pen. Use Dream Paint shape, to create ellipse shape. Add joins filling using bevel, or miter, and don’t forget to add solid filling (will fill space between first and last segment).

Feel free to contact us, if you have any questions left!

Kind regards,
2 Fly Dreams

Hi, thanks so much for the replies.

I suggest more screenshots of the plugin showing sample usage. Like the screenshot I linked, but it doesn’t have to be as extravagant as that. Perhaps you can check out the screenshots for Vectrosity to get what I mean.

The screenshots you got so far are nice, they indeed show the features. But samples of how they might be used in an actual game, that would make more people interested, I believe.

Like, say, showing the potential trajectory of a projectile as dotted lines (think Angry Birds), showing movement path of a character, indication of explosion radius, etc. Basically, give people ideas on how they might find use for it.

So this will let me draw not just a movement border, but give color to the insides of it as well? That would be nice.

How sophisticated is it? Can I set the thickness of the glow? For example, as thick as shown in this screenshot (while still making the curved corners look good)?

And you’ll notice the glow is only within the shape (instead of also appearing outside). Can Dream Paint do that out-of-the-box or do I need to make my own shader for that?

These aren’t immediate concerns, but I’m curious to know if Dream Paint can do it by default. I’m liking what I see so far though! I think I’ll buy it soon.

Dear AnomalusUndrdog,

Thank you for submitting your questions to 2 Fly Dreams.

Thank you for your advice! We will work out it.

You are absolutely right.

Material uses glowing texture, which was made in Photoshop. For your case, with the help of Photoshop, you can make thick line in upper side of texture, then add glowing effect. If you want to manipulate glowing, you can do it, for example, with color (material, vertex e. t. c.).

Feel free to contact us, if you have any questions left!

Kind regards,
2 Fly Dreams

I also think it would be better if you had more examples showing more advanced examples. It is unclear how capable this is from the current examples. Can this be used to paint vector primitives on top of 3D meshes for example ? When objects are painted are they recorded as shapes such as spines that can then be further modified at runtime or is the shape information lost after they have been painted ? Can they be used to generate procedural textures at runtime ? One tool that Unity is currently missing is a vector painting tool that can interact with UV’s and meshes.

For example suppose I wantted to cut a cirlcle into a mesh. Ideally I would like to use a shader that had two textures to do this efficiently. One of the textures would be used as a mask for the cutout of the shader. It would be far more efficient to have a tool that would allow me to paint a circle onto the mesh and record that as a vector and convert it to a texture at runtime than to have to save a high resolution image of a circle on a texture. Can this tool be used to generate textures from painted vector shapes at runtime that can be used by shaders ?

Dear IanStanbridge,

Thank you for submitting your questions to 2 Fly Dreams.

Thank you for your advice! We will work out it.

If you mean painting on a mesh, like in ZBrush, no, it can’t be used in such way.

All information isn’t lost. For example, if you have drawn a curve path, using Catmull-Rom spline (Dream Paint shape), Dream Paint can easily return all points of the curve path. Then, for example, you can use them to move object, according to curve.

If you mean rendering everything to texture, no. This is feature of the Unity Pro.

For example, polygon pen will allow you to make round mesh, and then make a round cut in it, so you will have a ring. Polygon pen will come in future updates.

Feel free to contact us, if you have any questions left!

Kind regards,
2 Fly Dreams

2FlyDreams,

I’m also interested in this asset but noticed that it’s not updated since May 14. Do you have an estimate of when the next update with the polygon and tube pens will be released?

Dear rocki,

Thank you for submitting your questions to 2 Fly Dreams.

At the beginning of 2015, after big Dream Paint 2.2 update:

Third new Draw method, to draw in Unity 4.6 Canvas (Dream Paint 2.2 will work in Unity versions lower 4.6 too, but without Canvas);

Free Dream A* with binary heaps, path smoothing;

No more worry about segments count, Dream Paint will do it for you, and you can pass parameters less or more than Dream Paint needs;

Joins filling in 3D space, and accuracy parameter of joins filling, to prevent artifacts that appear in paints where accuracy must be low;

Third new joins filling, round joins filling;

Easy user’s shapes creation;

Shapes in one mesh, to reduce draw calls;

Easy manipulating by 3 levels of work, you can use Change methods for each position, for each segment, or for each shape;

2 new examples, Navigation 2D / 3D and Drawing 2D / 3D;

Dream Paint will be reorganized, it will be dived by Pens only, not by Draw methods and their dimensions like now (Game3D, Editor2D …), to prepare it for new Pens (Polygon and Tube);

Full source code;

e. t. c…

Feel free to contact us, if you have any questions left!

Kind regards,
2 Fly Dreams

Wow, that’s quite a list of goodies. Can you post some videos of work in progress so we can follow along with the upcoming exciting features.

Dear rocki,

Thank you for submitting your questions to 2 Fly Dreams.

Yes of course, but not videos, infographics will be on our social networking websites soon.

Feel free to contact us, if you have any questions left!

Kind regards,
2 Fly Dreams

Hi,
Nice tool.
can free hand painting possible on 3d object in 3d space ?

Dear Play_Edu,

Thank you for submitting your question to 2 Fly Dreams.

Dream Paint not allows painting on 3D model surface. In your situation, it can only works, if you pass positions to Dream Paint, by which you will draw in 3D space.

Feel free to contact us, if you have any questions left!

Kind regards,
2 Fly Dreams

Hi, can I get the source?
(does the lastest beta work with unity 5 64 bit b14?)
Cheers, Nick

Dear biasless,

Thank you for submitting your question to 2 Fly Dreams.

If you have “Invoice No.”, then to receive source code of Dream Paint contact us using contact form on our website, and we will send it.

We haven’t tested Dream Paint in “Unity 5 x64 b14” yet, but we don’t see any reasons why Dream Paint won’t work in it.

Feel free to contact us, if you have any questions left!

Kind regards,
2 Fly Dreams

thanks, I used the contact form a while ago but didn’t get a response, I’ll message you in here.

trying to find a fill triangulator that doesn’t take so much cpu during runtime, do you know if your one is better than rageSplines

(i’m changing the meshes at runtime)

Dear biasless,

Thank you for submitting your question to 2 Fly Dreams.

Sent you a message in Unity Forum conversation.

Feel free to contact us, if you have any questions left!

Kind regards,
2 Fly Dreams

Meet Dream Paint 2.2 !

Hi,

I guess you know Vectrosity. What is your product can do better?
Can you:

a) Show some examples of script? (as someone said on the Store - 1 month ago - missing documentation.)
b) Make a demo with the new GUI Canvas?

Sorry to seem rude, but in the past year some products purchased in the Store are not followed by their creators: I get very suspicious.

Dear ZJP,

Thank you for submitting your question to 2 Fly Dreams.

Yes, we heard about it, but we don’t have it and haven’t tried it, too. We don’t want to make bad advertisement for the Vectorsity, so as far as we know it draws using mesh, sorry if we aren’t right. Our asset can draw using mesh too. Additionally, it can draw in the Unity Editor Window and in the Unity 4.6 Canvas, so currently we support 3 types of drawing. Many people asked us about drawing on the mesh texture, so next update will add the 4th type of drawing. This update will be before tubes and polygons update. Besides, there are many assets that can do such features, but they are all separated. We want to include such features in one asset and by our vision.

A person, that has made review month ago, didn’t contact us to ask for help, or for refund and still didn’t. Besides, there are no words about NGUI Canvas support. We have full documentation about 25 pages. Even documentatation for Dream A*, it is a pathfinding solution with Binary Heaps, Grid changes investigations, Layers and Costs. It is used in one Dream Paint demo. If you don’t have Dream Paint, it is not a problem, just contact us here, and we will send it.

We have written a small example for mesh drawing here:

Lines.Create_Game(ref ln, "Example Lines"); // create Dream Paint class "ln" with name "Example Lines", type of the Lines Pen

        ln.Positions(0, new Vector2[] { new Vector2(0f, 1f), new Vector2(10f, 2f) }); // set one line positions at the shape index 0

        ln.Positions_Cross(1, new Vector2(-2f, -5f), 6f); // set a cross shape at the shape index 1, the cross is inscribed in the square with the position and the side length

        ln.Draw_Game(); // make all changes to appear on the screen

        // ... later we have decided to make some changes...

        ln.Change_Offset_Positions(0, 1, new Vector2(5f, 6f)); // offset the position with index 1 of the shape with index 0

        ln.Change_Offset(1, new Vector2(-3f, 4f)); // offset all positions of the shape with index 1

        ln.Draw_Game(); // make all changes to appear on the screen

The same example for the Unity 4.6 Canvas drawing here:

Lines.Create_Canvas(ref ln, "Example Lines", "Example Canvas"); // the difference here, will be attached to the Canvas with name "Example Canvas", if there is no such Canvas, then will create it

        ln.Positions(0, new Vector2[] { new Vector2(0f, 1f), new Vector2(10f, 2f) });

        ln.Positions_Cross(1, new Vector2(-2f, -5f), 6f);

        ln.Draw_Canvas(); // the difference here

        // ... later we have decided to make some changes...

        ln.Change_Offset_Positions(0, 1, new Vector2(5f, 6f));

        ln.Change_Offset(1, new Vector2(-3f, 4f));

        ln.Draw_Canvas(); // the difference here

The same example for the Unity Editor Window drawing here:

Lines.Create_Editor(ref ln, "Example Lines"); // the difference here

        ln.Positions(0, new Vector2[] { new Vector2(0f, 1f), new Vector2(10f, 2f) });

        ln.Positions_Cross(1, new Vector2(-2f, -5f), 6f);
  
        // ... later we have decided to make some changes...

        ln.Change_Offset_Positions(0, 1, new Vector2(5f, 6f));

        ln.Change_Offset(1, new Vector2(-3f, 4f));

        // ...
   
void OnGUI()
    {
        ln.Draw_Editor(); // the difference here, Draw should be always in OnGUI
    }

They are all different in the Create and Draw, so the type of drawing can be simply changed by 2 lines of code. Our demos use the mesh type of drawing, but they can be easily changed to other types of drawing.

Don’t worry, everything alright, we understand your situation.

Feel free to contact us, if you have any questions left!

Kind regards,
2 Fly Dreams