Progress Report #5 - Mouse Navigation and Adaptive Sampling

February 1, 2018

And here is the progress report for January 2018!

https://www.youtube.com/watch?v=zsJ3RVaaU14

Note that I'm now only making one video per month, since I realize that it was taking too much time to try (and fail) to make one video per week. You will still get a short text report every week :)

Thanks again for your support!

-Boris

Transcript:

Hey, this is Boris! I'm developing two open-source graphic tools called VGC Illustration and VGC Animation, and in this video, I'm going to show you what I have done so far.

First of all, since the last report, I implemented some mouse navigation. This means that it is now possible to pan the view, zoom in and out, and also rotate the view. This is a very basic feature, but it took some time to implement right. For example, I wanted to make sure that when zooming or rotating, the position of the mouse acts like a pivot, which means that the objects under the mouse stay under the mouse. This makes it very efficient to navigate to a different part of the drawing: just zoom out, move the mouse, then zoom back in.

Secondly, I implemented a feature called "adaptive sampling". In practice, this simply means that the curves look very smooth, now and you cannot see any sharp corners. For comparison, this is how it looked before, and this is how it looks now. In order to understand what's happening, I need to explain a little bit how vector graphics works. When you sketch a curve, the software only gets as input a list of points, which are coming from your mouse or tablet. I call these points mouse samples. Well, optionally, the software also gets as input a pressure value if you are using a tablet, and we use this pressure to determine the thickness of the curve, but this is another story. Anyway, from these points, VGC generates triangles, which are then rendered by your GPU. The issue is, if you only generate two triangles between mouse samples, like here, you typically see ugly corners, it doesn't look good at all. You can improve the situation by generating, say, 20 triangles between mouse samples, instead of just two. This is better, but not perfect. Indeed, in very sharp turns, you may still see ugly corners. And in addition, when the curve is almost straight, there are way too many triangles than necessary, which in practice degrades performance. Oh, and by the way, this is what I was doing in VPaint, and is one of the reasons why VPaint was a bit slow. The solution is to generate just the right amount of triangles. You want to generate more triangles in sharp turns, and less triangles when the curve is almost straight. This is what is called "adaptive sampling", and is now implemented in VGC Illustration.

And finally, I decided to get some new gear to improve the quality of my videos, which includes new microphones, studio lights, and a monitor to attach to my DSLR camera. I've spent some time to learn how to use all that, and hopefully you can see the difference in quality between this video and the previous ones. So I'd like to give a big shout-out to all my sponsors, whose donations made this possible, thank you so much!

Also, as you may have noticed, I wasn't able to make one video update per week. It takes a little bit too much time away from development, and some weeks I just don't have many interesting things to say. Therefore, from now on, I'm planning to make only one video update per month, and only a short text update per week, only available to sponsors on Tipeee and Patreon. And I think I'll be more productive this way. Anyway, this is all for today, thanks for watching, and as usual, see you next time!

Stay tuned

Found this news interesting? We can send the next ones straight to your inbox (around twice a month). Or we can simply let you know when VGC 1.0 is released. No spam guaranteed. You can unsubscribe at any time.