Index
About
Share
BOBYE'S HOME

Table of Contents

Computer Graphics

by Bob Ye, University of Science and Technology of China.

General Informations

Project 1: Genetic Programming, Evolution of Mona Lisa

./img/mona_DNA.png

./img/bob_DNA.png

This projects is motivated by Roger Asling. But the differences are

  • I write my program by glut and libpng, and compile it under linux.
  • I choose to intepolate the polygon's RGBA color, rather than choose a pure RGB and static Alpha for polygon.
  • I make several improvement to the algorithm, which I believe it is more efficient. However in order to obtain a high-quality image, hours of time is needed.

Note: To compile and run the code, make sure you have official library 'libpng' installed and have a directory called 'pool' in running directory, the export images will be saved to this directory.

The code currently is really ugly, use at your own risk.

Project 4: Texture Mapping

./img/bob_texture.png

There generally exist two style of texture mapping. The classic method needs to specify the texture coordinate for vertices. Sometimes, it is not an easy work. For example, if we want to map our 2D face photo to an Avatar 3D model(in my understanding to avatarize), we need to determine the correlation between the photo and many polyhedrons(A simplified way is to consider the subdivision model). Another method is automatic texture-coordinate generation.

Graphics Systems and Models

The synthetic-camera model

  • the specification of the objects is independent of the specification of the viewer.
  • image is computed using geometric calculations, just as the pinhole camera.
  • size of clipping window.

The Programmer's Interface

  • pen-plotter model
  • three-dimensional APIs
  • sequence of images
  • modeling rendering paradigm

Graphics Architectures

./img/geo_pipeline.gif




Section of OpenGL

OpenGL and DirectX3D: a brief introduction

  • Direct3D is a proprietary API that provides functions to render three graphics, and uses hardware acceleration if it is available on the graphics card. It was designed by Microsoft Corporation for use on Windows platform.
  • OpenGL is an open standard API that provides a number of functions for the rendering of 2D and 3D graphics and is available on most modern operating systems. If hardware 3D acceleration is present, OpenGL can use it.

OpenGL denotes Open G raphics L ibrary, which is an interface consisting of over 250 different function calls.

Configure OpenGL platform under linux

Generally, almost every system platform has OpenGL module, if you are sure the graphics card is installed correctly, no more efforts are needed to run opengl programs. However, to write a program that builds under opengl architecture, The OpenGL Utility Toolkit (GLUT) is recommended.

There are no binary version of stardard glut library other than Win32. Moreover, GLUT is not open source, Mark Kilgard maintains the copyright. There are a number of newer and open source alternatives. Personally I use FreeGlut.

Notes Keywords and Tips

  • export to x-file
  • matrix tranform
  • GLUT & GLUTI

Author: YE JIANBO <bobye@mail.ustc.edu.cn>

Date: 2010-07-03 07:44:55 CST

HTML generated by org-mode 6.21b in emacs 23