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."

Saturday, June 29, 2013

An easy way to draw lighting bolts

Recently I was programming some stuff by using Maccala and some other P2P libraries. They are here to make Computer Graphics as easy as possible.

There was a moment when I needed to draw a vector lighting bolt symbol. What a boring task !!! It's harder than we imagine at a first sight. Twenty minutes after beginning this job, it was clear to me: I really wanted an easy way to make that kind of drawings we use to represent bolts.

I spent some time, but I created a method to generate any kind of lighting bolt. I made it so configurable as I could imagine, what turned the mission into something more complicated.

Maybe it doesn't look very interesting for you, but, from now on, I can save my fingers every time I need to render something like the drawings you see below. I prefer to work hard once, so I can be lazy many other times. :)

 Subscribe in a reader

Thursday, June 27, 2013

Character encoding and string representation

I'm used to talk here a lot about texts as graphical entities. Picture to People already has hundreds and hundreds of free online text effects and even a big set of online font effects. I'm always saying something about texts, fonts, typography and everything related, but now it's different.

No matter if, in the end, I will see texts as sets of glyphs to be rendered, they need to come from somewhere and need to be initially represented someway. This representation is what I'm dealing with these days.

This can sound very distant of Computer Graphics, but it's not. Being feature rich and versatile when manipulating string encodes will give an important software foundation to be able to make things that currently are impossible.

Currently my softwares can just deal with a charset vulgarly called "Latin 1". It's pretty enough for many languages (and almost enough for some others), mainly the ones originated in Europe. However, they can't tackle symbols from "stranger" languages, like the ones you usually see in the East.

If I can't understand and decode these symbols, of course I will not be able to properly draw them. That's the point where a new library focused on character encoding/decoding can help me to offer more "internationalized" text effects.

I receive frequent requests to support many different languages. Would you use Picture to People more if it had text effects that can render more unusual characters and symbols?

 Subscribe in a reader

Friday, June 21, 2013

More advanced arrow drawing styles and configuration

Since I released my vector based drawing library for the first time and started using it, there was many ways to draw arrows, because it already had very customizable methods to make it. You can even see a screenshot about it at the web page about Maccala's features.

Anyway, the library had some limitations, as for example: just straight arrows could be drawn and only using a chosen but fixed thickness for arrow body.

I have recently created more methods in my class responsible for drawing 2D vector based objects in a canvas, including methods to draw more configurable and generic arrows. Summing up the old and the new features, now arrow drawing tasks can take advantage of these main features:

- ability to draw straight or curved arrows;
- use of arbitrarily progressive arrow body thickness;
- use of highly configurable arrow head shape;
- ability to draw arrow head in both sides if desired;
- use of any RGB color;
- use of configurable high level anti-aliasing.

Below you see some examples of arrows created by using the new features I have developed.

 Subscribe in a reader

Wednesday, June 19, 2013

Drawing curves with progressive thickness

Here I show you one more recent improvement for my vector based rendering library called Maccala.

Now it's possible to create any kind of curve with an arbitrary progressive thickness. I guess it's kind of strange I have never developed this before, but I have never needed something like this until now.

Surprisingly, it was harder to develop than I imagined initially. It was needed to redevelop my algorithm responsible for creating a thick shape based on a Math curve (conceptually a curve has no thickness at all).

In fact, in a generic algorithm, even drawing operations (in this context, "draw" means "render the contours") are tackled as filling jobs. First an assembling algorithm constructs a shape with an arbitrary thickness, so a filling algorithm can render it.

Below you can see a curve drawn with variable thickness. Now it's possible to make something like this so easily as calling a method. Unnecessary to say, the professional anti-aliased rendering is still there.
 Subscribe in a reader

Monday, June 17, 2013

Fresh online metallic text generators

I have just published several new beautiful metallic text effects in P2P software called Online Text Effects.

By using this software, you can choose among hundreds of high quality text effects, and the metallic ones occupy a prominent position. There already were many different generators for metallic rendering, and now you have some more interesting options.

Below you see two nice metallic text effects created online by using these fresh metallic text generators.

I'm preparing some more surprises for soon, so hopefully in a few days you can read here the news about the publication of new text effects.

 Subscribe in a reader

Saturday, June 15, 2013

Sub-pixel precision drawing for vector based render engines

I'm really impressed with the fine quality increase I got by improving the sub-pixel precision of my 2D render engine, which I use in Maccala library. I don't need to make any more some post-processing operations when rendering some complex text effects.

I have received some emails from colleagues asking about this change after I talked about this improvement here. They are CG developers too and were kind of confused about what I meant in my previous post about this subject called "Subpixel vector drawing with professional antialiasing".

First of all, don't be confused between "sub-pixel positioning" and "sub-pixel precision". In the first one, we know how to properly draw the bodies despite they can be in fractionary positions, but it doesn't mean we can draw bodies smaller in size than one pixel.

As an example, I borrowed an image from the webpage about Maccala's features. You can see many line segments with a progressive thickness. All of them are positioned in sub-pixels positions, but just the first one is thinner than one pixel (its thickness is 0.5).
In fact, the real elegance of my algorithm is that it had always been ready to draw shapes and curves with any precision. To make it really work for unbelievably tiny precision limits, I just needed to improve the Math about some boundary conditions.

Of course, nothing comes really for free. To keep the professional anti-aliased results when using "microscopic" measures, the algorithm must be used with extreme parameters, decreasing its big rendering speed.

 Subscribe in a reader

Friday, June 7, 2013

Text effect tutorials (15)

In the previous month, I have published the text effect tutorials shown below. You can have more information at the Online Text Effects Tutorials blog.

- a glass text effect;
- a bloody horror text effect;
- a furniture text effect;
- a bubble text effect;

If you execute the steps of these tutorials, you get these great effects:

Subscribe to the Text Effect Tutorials feed to know about new tutorials as soon as they are published.

 Subscribe in a reader

Monday, June 3, 2013

More upgrades for the new 3D drawing renderer

I'm still developing the new Picture to People 3D text renderer. It uses Maccala drawing library and I believe the results I got until now are very worthy.

I could finally remove some small bothering bugs and this new render engine already can work with very complex true-type font faces.

I have added several advanced features as planned:

- it can render text with professional anti-aliasing;
- it can create 3D letters with a cleaner look;
- it offers thick outline curves;
- it can draw text with transparent background;
- it can deal with letters overlap.

Below I show you the kind of job this new 3D text generator can make. I will use it as a base to create new graffiti text effects.

 Subscribe in a reader