What is Picture to People ?

"Picture to People" (P2P) is a huge Computer Graphics project. It was started to create new softwares able to make 2D drawing, 3D rendering, vexel drawing, text effects, photo effects, image filtering and other complex Computer Graphics operations. It has been made from scratch, including its low level Computer Graphics libraries like Maccala. Nowadays, most final features produced for this project are released as free online tools available from its official website. This blog talks about Computer Graphics, mainly concerning Picture to People development.

"Only who makes has true knowledge. Knowledge is control. True power depends on total control. Only who makes from scratch has the real power."

Showing posts with label shapes. Show all posts
Showing posts with label shapes. Show all posts

Wednesday, July 13, 2011

Maccala improvement: Curves simplification again

The first implementation I did for curves optimization was good, but not good enough. In very extreme situations, the algorithm could fail, so the result of simplification was a curve with a different shape from its original form.

After some more hard work, I could finally develop an algorithm that I was not able to make fail, even when simplifying the more bizarre font faces I have ever found in my whole life.

Below I show some more tests made using even more weird and complex fonts than the ones tried before. It's never easy, but my vector drawing library is getting more and more powerful.





Subscribe in a reader

Saturday, June 25, 2011

Maccala improvement: Curves optimization

Picture to People Project has the best and biggest set of text effects around the Internet and much more will be released yet. It was possible just because our software haa a strong foundation: our low level libraries are powerful and are constantly upgraded.

These days I have been improving Maccala again. The vector based rendering engine is receiving an important optimization: an algorithm able to make curve simplification with almost zero quality lost. The main advantages this technique will bring are:

- reduced memory usage for curves/fonts representation;
- faster 2D curve drawing;
- faster set operations over polygons;
- faster 2D font rendering;
- faster 3D text rendering.

In fact, my biggest motivation to make this right now is to help to accelerate the realistic 3D text renderer I'm developing, but many vector based P2P tools will benefit from that.

Most time I use the font rendering engine to test this optimization. If the algorithm can simplify strange fonts with no visible quality loss, so I can suppose it's working correctly.

Since I'm very excited about this improvement, I show below some examples about what it can do and how it works. Each image shows the simplification of an "a" letter of a different font. At left, you can see the points representation and at right the generated drawing.

The tiny black dots are the points used to create the character; the black continuous curves regions usually are dozens or even hundreds of points very close to each other and they just happen in the non-simplified (top-left) chars. What is important here is: when a simplified "a" is drawn, it has the same looking than the non-simplified one, so the quality decreasing is negligible. The simplification has been made to be a nondestructive process.





Subscribe in a reader

Saturday, June 18, 2011

Maccala improvement: Adaptive Curves

Picture to People makes vector based drawing using Maccala API. It's very powerful and robust, so P2P has many tools that make/use 2D rendering.

Anyway, there was a small problem when drawing curves. They are more difficult to render when they have these two properties at the same time:
1) to have very strong or sharp curvatures;
2) to be too thick.

In this situation, some curves were not drawn smoothly as they should be. It's what I show you in the first image below. You see a curve skeleton and its version with a thickness of 150. Basically the thin curve shows how smooth it really is, but the thick one is not that smooth.

I improved Maccala and now it has adaptive curve drawing. In practice, it means Maccala can draw perfectly even very thick regions that are too curved. The second image shows the same curve as before, but perfectly drawn using my adaptive rendering algorithm.

Now Picture to People can draw super professional 2D vector curves even in the more unfavorable situations. It can help, for example, to draw in higher quality a thick outline of some very weird and complex True Type fonts.



Subscribe in a reader

Tuesday, June 3, 2008

Thick line styles in action



I'm still having hard work trying to create my models/algorithms for fast anti-aliased drawing. Anyway, I have improved my old renderer as promised.

Now thick lines can have different junction styles depending just on configuration.

For some shapes, the results can be sensibly different. The picture shows a kind of star drawn using all line styles my rasterizer offers.

Wednesday, December 19, 2007

Shapes and paths



Now I can interpret an arbitrary curve like a path. So I can apply arbitrary shapes to curves.

Paths can be used like a vector based reference for position only (left) or really like a directional field (right).

Tuesday, October 23, 2007

The power of shapes

I have spent a few time making code for drawing shapes (see screenshots section).

This functionality along with polygons/curves set operations will help the user to make really complex drawings.

This last programming was funny. Now let's go back to dealing with operations over complex polygons.