Monday, 27 March 2017

Next for Omber: SVG or Windows?

I've finally finished support for transparency and texture-mapping in Omber, and I'm really pleased with the result. I can finally make a nice vector portrait in Omber even with limited art skills. But now I have to decide on the next feature to add to Omber. Unfortunately, Omber has very few users, so I just have to guess what people would find useful instead of simply asking them. Part of the problem is that Omber is a highly specialized tool with features that no other program has, so artists don't really understand how it's different or all the cool things you can do with it. I'm currently trying to decide between adding some limited support for SVG and making a special Windows version.

I've had two people mention adding SVG support to Omber. Since SVG is the main vector image format, Omber could then be used as a general vector drawing tool. The problem is that Omber specializes in advanced gradients that can't even be represented in SVG. So although adding SVG support would mean that Omber could be used as a basic vector drawing tool for making simple icons etc, that isn't what Omber is best at. Most of Omber's best features couldn't even be used because they can't be exported to SVG. Then again, I can see other people with very basic SVG drawing tools that are orders of magnitude more popular than Omber, and I wonder if adding SVG support might be a useful stepping stone to introducing people to some of the great, revolutionary new features in Omber.

The other alternative is to make a special Windows version of Omber with better file support and possibly much better performance. I think Omber has a really useful feature set already. Making Omber available in the Windows store means there will be a new place where people can find out about it.

Friday, 24 March 2017

Portrait based on Lola Montez by Josef Heigel

Now that I can do texture mapping and transparency gradients, it's now so much easier and so much more fun to make more realistic objects in Omber, my vector drawing tool.

Friday, 3 March 2017

Transparency is Working in Omber

I have such a huge long list of features that I want to add to Omber that it's difficult to choose what to implement next. What I do is that I try to design all the art needed for Omber in Omber itself. If I encounter a missing feature that I need for that art, I can then prioritize working on that feature. The current feature that I'm working on is support for transparency and alpha channels.

Android icons are supposed to have a drop-shadow behind them. A drop-shadow is a semi-transparent shadow that blurs to fully transparent at the edges. When I was making Android icons for Android, I found no way to add a drop-shadow to my icons using Omber, so the current Android icons don't have that visual effect in them. Although many computer art programs have a special drop-shadow tool, I find that drop-shadow tools to be fairly limited in functionality. Since Omber is designed around advanced gradients, it could support drop-shadows if I simply added support for transparency in its gradients. Unlike a more basic drop-shadow tool, you have full control over the shape, size, and opacity of the drop-shadows you create. So for the past few weeks, I've been adding support for transparency to Omber.

Today, I've finally gotten basic transparency support working, and it seems to work well. I'm hoping to be able to release it for public use in a week. While implementing transparency, I also had to re-architect large parts of the Omber's internals. With this re-architecting, I should be able to quickly add support for other features like textured shapes as well, so that will be the next feature I add after transparency.

Omber Transparency

I have transparency working in Omber! Look at that drop-shadow and the faded edge highlights at the top and bottom of the icon.

Thursday, 30 June 2016

New Gradient Engine for Omber

I've been dreading it for a while, but I've come to realize that I couldn't hide from the problem any longer. I was able to produce some great art using Omber, but the underlying gradient engine couldn't produce images with a high enough quality at a fast enough speed for Omber to be usable for real artists. The gradient engine would need to be rewritten.

After many months of looking over the gradients produced by Omber and brainstorming possible fixes, I felt like I was coming closer to a possible solution, but it seemed really tricky to implement. And it was very tricky to implement. I had to pull down pages and pages of computational geometry resources and I had study them and restudy them. Many of the algorithms I needed were missing key implementation details and had delicate behaviors that had to be gently teased and massaged to customize them to my needs. Even when I had the core pieces of the solution put together, I had to spend weeks dealing with brutal corner cases.

But it's done now. I was able to squash a bunch of other performance bugs while I was digging through the code too. The results should speak for themselves. Omber is now super-fast at generating complex gradients. Even when loading in complex drawings for the first time, it can converge to a usable image in only a few seconds. The resulting gradients are not only faster but exhibit much fewer artifacts than the previous algorithm did.

Being a new algorithm, I will likely need a few months to work out all the kinks and learn how to handle its new behavior characteristics. But the new engine is now much more impressive than before. It can generate much higher quality gradients in a fraction of the amount of time needed by the previous engine. It will be a strong base on which I can add some exciting new features.

Thursday, 2 June 2016

Omber now available for Android

Omber is now available for Android!

From the beginning, I designed Omber for use with touch. That explains its strange looking interface with its large buttons, large shape handles, and strange navigation elements right on the front screen. Unfortunately, once its performance was always a little too slow to use on tablets, so it was never too useful. Omber sometimes chugs a bit even on my desktop machine, let alone an underpowered tablet. It can be used on touch-screen Windows machines but those never really took off.

After I made Omber multithreaded a couple of weeks ago, I discovered that Omber now had reasonable performance on Android tablets. There are still places where it's slow, notably when loading images, but during normal vector drawing, it's fairly responsive. That was great because I already had a touch-interface ready to go. So I've now been tweaking the touch interface to behave even better on tablets, and the result it pretty good now.

Omber is especially good for doing vector work with your fingers. A lot of other tablet vector tools like Adobe Illustrator Draw, seem pretty clumsy if you don't use a stylus. People's fingers are so fat that they keep blocking out the part of the screen that you're working on and it's hard to do precise work. Omber uses slightly different conventions to get around this problem.
  1. Handles are always placed below the thing you are trying to manipulate. That means you can use your finger to drag your handle without having to put your finger on the thing you're trying to modify. This means that you can actually see what you're modifying as your change it. 
  2. Putting your finger on the screen previews the action, lifting your finger performs the action. When you're drawing shapes, you want to position your points precisely, but when you put your finger down, it's hard to know where the point will appear exactly. With a mouse, this isn't a problem because you can see your mouse pointer, but that isn't the case with a finger. In Omber, when you put your finger down on the screen, Omber will show you where the point will appear. That means you can move your finger around to adjust the position of the point to be exactly where you want. The point will only be placed when you find the right spot and lift your finger. 
  3. In art, multi-touch actions can sometimes cause confusion because the programs have a hard time interpreting certain gestures. When you're making art, you want your program to behave consistently. You don't want it to be confused as to whether you're scrolling the screen or dragging an object. In Omber, zooming and scrolling have their own buttons, so there's no issues of you making one gesture and the computer doing the wrong thing.

Sunday, 22 May 2016

Recreating a Human Face with Omber

I recreated a photograph of a face using Omber, my vector drawing tool specializing in advanced gradients and soft shading. It took about three hours to do.