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 ray tracing. Show all posts
Showing posts with label ray tracing. Show all posts

Thursday, August 18, 2011

Ray tracing: aliased specular reflections

Sometimes it's difficult to model shapes that look really smooth when we use polygons. Depending on the light position and material configuration, the faces can appear very evident in some regions.

Usually we can solve this problem with some extra work on 3D objects modeling, changing the polygons spacial configuration or increasing moderately the number of polygons.

But there is a much bigger problem: the specular reflections are much more sensible to non-continuous surfaces. Reflection tends to spread the original light rays, so it works like a magnifying glass to geometric imperfections.

To solve this situation, many times it's needed to increase exponentialy the number of polygons for 3D objects, so the rendering time is too high. It's really a very big problem and I'm trying to minimize it using some heuristics.

Below I show three images to illustrate what I have just explained. Pay attention to the reflection of the right side object on the left side one.

1) object at left side really has few polygons and produces a very poor reflection;


2) when I model the object with hundreds of polygons, the object itself is already totally smooth, but it still produces an "aliased reflection";


3) to generate a continuous reflection, it was needed to render an object with thousands of polygons.

Subscribe in a reader

Saturday, March 26, 2011

Ray Tracing 2

I'm still working on my ray tracer. For bad or for good, currently I'm very obsessed with my 3D libraries. I can't finish some other graphic effects because I don't stop studying and researching about advanced 3D math and algorithms.

Recently I implemented some nice improvements concerning material properties and configurations. Below I show you the same image as before, but rendered using different materials with finer settings.

Subscribe in a reader

Sunday, March 6, 2011

Ray Tracing

Nowadays, my 3D libraries are very robust. Probably they are almost so mature as my 2D vector based libraries, although they are less than two years old. Some weeks ago, I thought it was already time to create my own ray tracer, a really powerful one.

Well, it is under development. It's already fully functional and has very professional quality. Now I have going through many challenges, because I don't want it the way it is.

I need something very beyond what I already got: I want the same quality, but at least 20 times faster. 3D rendering optimization is a very hard work if you need it in a very deep level. This subject is heavily researched by many people and it has been a very important area of Computer Graphics for at least 20 years. Unfortunately, my experience shows the best algorithms are never published for good.

Anyway, I need to overcome this challenge, or will not be able to publish graphic tools based on ray tracing. My software has NO dependencies, so it uses NO libraries or even hardware acceleration. It needs to be VERY fast in its own essence and I'm working on it.

A text with 20 letters made using a complex font can have several thousands of polygons. To get professional quality, even when rendering a small image, the software needs to test dozens of millions of ray-object intersections. If everything goes as I want, I will be able to render complex shapes like 3D text in a reasonable time, so I can release it at Picture to People site.

Below I show you an image rendered using all power of my ray tracer (there is no background plane).



Subscribe in a reader