Computational Aesthetics 2008

Posted by Pedro Ângelo in Aesthetics, Call for papers, Conference @ March 4th, 2008

Although I stopped tracking graphics conferences for a while, sometimes I get a call for papers in my mailbox that sparks my curiosity. I’ve been intrigued by Pat Hanrahan’s concept of Computational Aesthetics ever since I found the online notes from one of his talks on the subject.

And so it happens that this year, there will be a symposium on Computational Aesthetics right here in Portugal, and Pat Hanrahan will be one of the keynote speakers.

The call for papers end in March 15th and the call for artworks, performances and art project presentations ends at 15th of April. If you’d like to know the kind of research these symposiums are about you can check out the past symposium proceedings of 2005 and 2007. You’ll probably need some sort of Eurographics membership to get the full papers, but as always Google (Scholar) is your friend.

Graphbib

Posted by Pedro Ângelo in Archive, Links, Papers, Tools @ March 4th, 2008

Hello,

Although we’ve been quiet for a (long) while, Wireframe isn’t dead. It’s just…resting. You see, we’ve come to learn that the first steps of running your own company usually leave very little time for engaging in pure or even somewhat applied research. But hopefully that will change soon.

In the meantime, I’ve found a search engine for graphics related research papers at the SIGGRAPH website: Graphbib allows you to search on over 21.000 references in computer graphics, animation, geometric modelling and animation.

Meso Gunus

Posted by Pedro Ângelo in Archive, Links, News and Articles @ November 11th, 2006

Yesterday while browsing Wireframe’s referrer logs I came across a backlink from a site that sparked my curiosity.

Meso Gunus is a Web guide that promotes “simple access to computer and technology resources” and one of the fields indexed is precisely Computer Graphics.

The site seems to be a nice source for CG related news and articles and is definitely worth a look around.

Hectorgon - A graphics programming blog

Posted by Pedro Ângelo in Blogs, Links @ September 1st, 2006

Hector Yee, an experienced programmer in the game and film industry recently started his own blog about Computer Graphics programming.

Although only two weeks old, the blog already features very interesting articles on perceptual image metrics, efficient and robust generation of random samples and efficient data structures for CG algorithms.

Projections and OpenGL

Posted by Bruno Oliveira in Math, Realtime 3D, Research Notes @ August 11th, 2006

In order to represent 3d objects or scenes in a computer display it is necessary to transform a 3 dimensional space into a bi dimensional space. This is done via projection.

One can see projection as rays being cast from points in the scene into the plane that represents the display, called the projection plane. The direction these rays take determines the projection. If the rays are parallel the projection is called Parallel projection, if they all converge into the viewer’s position it is called a Perspective projection.

The main difference between perspective and parallel projection is the fact that the former is more natural to the human eye. Objects that are farther appear smaller than those who are nearer. In parallel projection all objects retain their sizes no matter how far they are. This view is more practical for technical drawing while perspective projection is more suitable for displaying physical (real or imaginary) worlds.

Parallel projections are subdivided into two categories: Orthographic and Oblique. The former occurs when the direction of the projection rays is perpendicular to the projection plane and the latter otherwise.

OpenGL has a simple way to handle projections. In the graphic pipeline projection occurs at the final stage, after the world and camera transformations. The projection is stored in the projection matrix. In order to manipulate this matrix it is necessary to set it as the current matrix.

glMatrixMode(GL_PROJECTION);

The simplest projection to setup in OpenGL is the orthogonal projection. It is only necessary to define a cube against which the scene will be clipped. This can be accomplished with the glOrtho function.

glOrtho (xmin, xmax, ymin, ymax, zmin, zmax);

These parameters are also known as left, right, bottom, top, near,far.

Perspective projection requires more information to be set. The parameters necessary for perspective are centre of projection,projection direction, up direction and field of view. Remember that in perspective rays are traced in the viewer’s direction so the first three parameters are related to it. If you are familiar with OpenGL you will recognize these parameters as does for the gluLookAt. The field of view is a pair representing the horizontal viewing angle and the vertical viewing angle. These parameters define a frustrum, which is nothing more than a section of a rectangular pyramid with its tip in the centre of projection, and height along the projection direction. Like in ortographic projection there is a function to set up this frustrum called glFrustrum. This function takes the same arguments as glOrtho.

glFrustrum (xmin, xmax, ymin, ymax, zmin, zmax);

To avoid the burden of the calculation of the coordinates of the frustum points, it is possible to use gluPerspective. This function takes the vertical field of view, the aspect ration between the width and height sizes of the view port and the near and far clip planes (zmin and zmax). This function however does not permit asymmetric frustrums.

glPerspective (fov, aspect, near, far);

There is no function to set up an oblique projection in OpenGL. However oblique projection can be accomplished multiplying the projection matrix, after calling glOrtho,with a shear matrix.

float shear_matrix = { 1, 0, -cot(theta), 0,
                       0, 1,   -cot(phi), 0,
                       0, 0,           1, 0,
                       0, 0,           0, 0 };

glMultMatrix (shear_matrix);

Where theta is the angle between the x plane and the z plane and phi is the angle between the y plane and the z plane.

For technical drawings orthographic projections should use projection planes parallel to the coordinate system’s axes, in order to prevent foreshortening. Foreshortening is an effect caused by the projections of points that lie on planes that are not parallel to the projection plane. However ther eare cases in which is required to see all axes at the same time. This kind of view is called a pictorial. Although this can produce some results similar to perspective projection, the rays are still cast parallel. These pictorials are produced with axonometric projection.This type of projection always displays an axis in vertical. There are three types of axonometric projections: isometric,dimetric and trimetric.

Axonometric projections are defined by the angles between the projected axes. In an isometric projection all projected axes form the same angle between them, which gives the same amount of foreshortening in all axes. This occurs when the normal of the projection plane, n = (nx,ny, nz), has the same angle between all axes therefore |nx| = |ny| =|nz|. This can be accomplished, for instance, rotating 45º along x and y axes.

A dimetric projection is one that two of the axes have the same angle between them. The normal must have two equal components |nx| = |ny| or |nx| = |nz| or |ny| = |nz|. One possible set up is the rotation of 27.94º in x and 48.5º in y.

In a trimetric projection none of the angles is the same. Any rotation angles can produce this effect.

Pictorals can be achieved in OpenGL manipulating the camera’s position. If dist represents the distance of the camera to the scene, centred at the origin, and camerax, cameray, cameraz its position

camerax = dist * cos (phi) * cos (theta); cameray = dist * cos (phi) * sin (theta); cameraz = dist * sin (phi);

Where phi is the rotation along the y axis and theta is the rotation around x axis, places the camera at an axonometric position.

References:

  1. Wikipedia
  2. 3D Shape Representation Outline
  3. PlaneView 3D
  4. CARTESIO

Computer Graphics algorithm wiki

Posted by Pedro Ângelo in Algorithms, Archive, Links @ August 3rd, 2006

For a very long time now, the FAQ for the comp.graphics.algorithms newsgroup has been an unmissable resource for Computer Graphics researchers looking for a solid reference on the more standard algorithms. Several CG textbooks mention this FAQ as a resource to further explore the book’s material.

Yesterday, as I was browsing through the group I found out that the group’s FAQ is now maintained as a wiki for easier maintenance and collaborative editing.

Physics in Graphics

Posted by Pedro Ângelo in Animation, Archive, Links, Open Access, Papers, Simulation @ July 30th, 2006

Computer Graphics is not an isolated field of study. Most of the times, the visual result we are looking for is the result of some underlying simulation process, and this is especially true when we are trying to model the visual appearence of natural phenomena.

Physics therefore plays a very important and varied role in Computer Graphics, as this  comprehensive paper index seems to show.

SIGGRAPH 2006 papers

Posted by Pedro Ângelo in Links, Open Access, Papers @ July 25th, 2006

This year’s SIGGRAPH Conference will only start next week, but the preprints for most of the papers to be presented are already scattered across the Internet. Normally the task of indexing and finding these papers is very daunting, but since 2000, Tim Rowley from Brown University has been indexing online versions of SIGGRAPH papers, providing a wonderful resource for Computer Graphics researchers.

On his website, you can also find links to other online CG paper indexes maintained by Ke-Sen Huang and Markus Hadwiger.

Graphics papers search engine

Posted by Pedro Ângelo in Archive, Links, Papers @ July 22nd, 2006

Paul Nettle’s GraphicsPapers.com is just that quick link that might come in handy when you’re searching online for the reference to that elusive paper that you just can’t find anywhere.

The database seems to be a little outdated (a simple search for the word “GPU” turned out empty), but nevertheless it’s an extremely valuable resource.

Computer Graphics Paper Repositories

Posted by Pedro Ângelo in Links, Open Access, Papers @ July 15th, 2006

Even though the field of Computer Graphics doesn’t have an online e-print repository that works the same way the arxiv works for Physics, Math and Computer Science, there are some companies, laboratories and researchers that keep an online open access archive of their papers.

As far as I know there is no comprehensive list of these small archives, and there probably never will, but since some of these sites come up so often when we search the net for bibliographies, I thought that at least could share the ones I keep in my bookmarks: