Here I am going to present history of computer graphics and little about computers it selves. For some picture will be submitted so will explanation.
1947
Shockley, Bardeen and Brattain of Bell Labs invent transistors ("transfer resistance")

From this everything started. Transistors have replaced vacum tubes, and thanks to their small sizes making of chips of big number of transistors was succesfuly done
1963
Mouse invented by Doug Englebart of SRI

It is enough to say that we can't imagine todays work with computers without mouse...
DAC-1, first commercial CAD system, developed in 1959 by IBM for General Motors is shown at JCC

CAD(Computer Aided Design) programs - are used in big companies and this one of its first versions developed by IBM especial for GM company. One of most popular ones in todays world is CATIA(IBM).
1965
CADAM developed at Lockheed; CADD developed at McDonnell Douglas - This is one more version of CAD programs. Now we can see how computer graphics industry had slow begining.
1967
Adage real time 3D line drawing system - yet another program that made Adage company which was created in 1965
1969
UNIX developed by Thompson and Ritchie at Bell Labs (in PDP-7 assembly code) - not directly in connection with CG, but this was one of biggest operating systems in the past, and all next operating systems are based on this one(BSD->MacOS, GNU/Linux, Solaris, etc..) or used expiriences from that OS (Windows, OS/2, etc..)
First use of CGI for commercials - MAGI for IBM - yet another step into making CG industry more expansible.
Graphical User Interface (GUI) developed by Xerox (Alan Kay) - I think this is most important for computers at all... The ideas for this GUI are made back in WWII and some of those ideas were redesigned and they get GUI. After, Apple take that idea, after M$ has, and we have it like today. You can notice that it hasn't changed a lot. LINK
SIGGRAPH formed (began as special interest committee in 1967 by Sam Matsa and Andy vanDam) - we all know what SIGGRAPH is today --- biggest CG (3D, producers, artists, etc.. ) event in the world.
1972
Emmy awarded to Lee Harrison for SCANIMATE (star wars) - here we can see another application of 3D
C language developed by Ritchie - Most programs at all are written in C Programming language, so I don't want to make this an exeption.
1973
Barnhill and Riesenfeld introduce the name "Computer-Aided Geometric Design" (CAGD) - Yet another Computer Aided Design program developed, but this time it is for geometry.
1974
z-buffer developed by Ed Catmull (University of Utah) - z buffer is very important in todays games, and real time 3D rendering (3D programs). In programing rendering is done is buffer, and when it is done, action of swaping buffers is called. With this way, apearing of flickering effect is avoid.
1975
Phong shading - Bui-Toung Phong (University of Utah) - I bet that few milions of times a day this type of shading is used in 3D scenes. Enough said.
Bill Gates starts Microsoft - Have you heared about Microsoft ?
Anima animation system developed at CGRG at Ohio State (Csuri) - This and similiar programs maybe aren't big cas today, but we have to respect them because thanks to them and expiriences with those programs, we have todays ones.
1976
Steve Jobs and Steve Wozniak start Apple computer.
1977
Computer Graphics World begins publication (started by Joel and N'omi Orr as Computer Graphics Newsletter)
Academy of Motion Pictures Arts and Sciences introduces Visual Effects category for Oscars - yet another significant point in our history.
1978
Lance Williams curved shadows paper. - Shadow maps are very used today, and they make work a lot easier. LINK
First CGI film title - Superman (R. Greenberg)
Bump mapping introduced (Blinn)

Bump map changes look of textured object from smooth to more bumped. It is very useful and usable option.
1980
Turner Whitted of Bell Labs publishes ray tracing paper - ray tracing is known as one of better techniques for rendering
1982
Tron released - Legendary movie named TRON released. It used a lot of CG.
Sun Microsystems founded (sun := Stanford University Network)
Skeleton Animation System (SAS) developed at CGRG at Ohio State (Dave Zeltzer)
Adobe founded by John Warnock
1983
Particle systems (Reeves - Lucasfilm) - Today particle systems are used for creating simulation such as: rain, snow, liquid, or custom particles.
Non-Uniform Rational B-Splines (NURBS) introduced by Tiller - One of more advanced tools for modeling and shaping objects.
Alias founded in Toronto by Stephen Bingham, Nigel McGrath, Susan McKenna and David Springer - Alias, until recently was one of bigest companies for producing of CG software
1984
Wavefront Technologies is the first commercially available 3D software package with distributed ray tracing
Radiosity born - yet another more advanced rendering technique.
1985
PODA creature animation system developed by Girard and Maciejewski at Ohio State - by now we can se that CG industry expanded a lot.
1986
Softimage founded by Daniel Langlois in Montreal - One of todays best CG programs that has Compositing program integrated.
mental images founded in Berlin - Company that made best rendering software (mental ray) was founded in 1985.
1987 GIF format (CompuServe), JPEG format (Joint Photographic Experts Group) - I'm sure that all computer users are using jpg and almost all gif, pictures.
Side Effects Software established - company that owns one of todays bigest 3D program.
1989
Adobe Photoshop - One of best programs for editing pictures.
mental ray renderer released (integrated with Wavefront (1992), Softimage (1993), Maya (2002)) - awarded AMPAS Technical Achievment Award in 2002 - I mentioned mental ray above.
PIXAR starts marketing RenderMan - Renderman is special rendering software developed inside pixar for pixar needs. It is the only one that could compare with mental ray until recently.
1990
3D Studio (AutoDesk) - More known as 3D Studio Max, as it is called today. Latest version is 8 and it is one of most popular 3D programs.
1991
ILM produces Terminator 2 - we all have seen movie Terminator 2.
1992
OpenGL (SGI) released - I can freely say that this was special year. OpenGL, today is used in every 3D program for real time rendering of scenes. It is used in big number of games also.
1994
Microsoft acquires Softimage - announces Windows 95
1995
Wavefront and Alias merge
1997
Bryce 3D - Program that I worked with for 2 years. Great for landscape design.
1998
Alias Maya released - Maya is program that has been used for creating big number of games, movies, projects, etc... It is very popular and has got lot of abilities.
Google launched - http://www.google.com
Avid purchases SoftImage from Microsoft
1999
Side Effects Houdini ported to Linux - small number of programs (especialy 3D programs) have been ported to GNU/Linux or other systems, but Houdini has even been ported to Solaris.
2000
Maya ported to Macintosh - at that time Macintosh were strong machines and using that hardware with this software was needed like food.
2001
Side Effects Houdini ported to Sun
2003
Alias/Wavefront becomes Alias
2005
Autodesk agrees to purchase Alias for $182M.
2006
Intel Mac released, MacOS ported to PC and Windows ported to Macs.
Softimage|FACE ROBOT released
----------------------------------
There has been a lot of 3D events lately, but I have taken the most imported ones, because, time of 5 years (2000-2006) is not relatively long period.
With this post I didn't want just to give you new informations what happened few or 10's of years ago, but I wanted to take your attention and point to past a little bit, because we must respect that. People in that period have tried to make better programs, technology and because of that we have what we have todayLabels: 3D, featured
Read more!
Vertex - is, simply said, point in 3D world. Its position is determined by 3 axis(x,y,z). Points are connected with other polygons with edges. Minimaly 3 points with 3 edges can create single polygon. One vertex (point) can be "connected" with n edges. Point doesn't have volumic value, meaning that if there is single point or 2 points connected with one edge, they won't be rendered with render software. Acctualy they will be, but they are very thin so you won't see them.
Edges are connections of two vertexes. They are also one of n sides of polygons and they determin final look of polygon with render software in render window or rendered picture.
Polygon - is flat surface made from minimaly 3 points and 3 edges. Usualy that number is 4, but it is unlimited. Every polygon has two faces. Front and back face. Faces are important for light reflection. Face determination is done with vertex normals. If camera is looking at back face of polygon. Rendered from that camera, polygon will be almost black, acctualy we won't get wanted results. If we are rendering with camera looking front face we will get wanted results(textures, etc..)
Vertex normals - are short imaginary lines that show orientation of point. If we have 4 point polygon and 2 points are oriented to one way we would have see well rendered half of polygon in render view.
Object is set of different connected polygons, vertexes, edges that they create recognizable object to a user. Object can be set of connected components mentioned abouve or can be group of few object or meshes. Object are also used for easier manipulating of position of vertexes.
Meshes are similiar to objects but they're not just any group of vertexes, polygons.. They are uniqe group of them. Some meshes are also called objects. Thats what I call, term confusion. Lets take example of 2 cases. If we have group of automobile parts, each one positioned at its place, than every one of them is a mesh because it isn't group of more meshes. If we group these meshes we would get object. If we make uniqe object from these meshes we would get mesh object of a car. Unlike object meshes are uniqe group of only polygons (vertex, edges, not curves or rounded surfaces)
On this picture:

- Polygon is red color
- Edges are yellow color
- Points(Vertexes) are blue
- Normals are blue lines with begining at points
- Two boxes are objects(or meshes) If we apply Unite Boolean operation on those two we would get mesh object.
NURBS are Non-Uniformal Rational B-Splines) way of defining curves and surfaces with CVs (Control Vertexes) and vectors-tangents. NURBS objects and surfaces dont have polygons, so they have ideal rounting.
Selected objects are B-Spline, NURBS curves, and

between them is NURBS object created by lofting
Loft is process when creating object, surface object from two NURBS curves.
Boolean operations are consisted of 3 operations. Those operations from two object make one. One of operations is uniting, which does uniting 2 objects into new one. Second operations creates new object which is intercepting area of those two objects. 3rd one does cutting first object with second one and creates new object.
Alpha channel -> most of pictures have 3 channels (Red, Green and Blue) but with alpha channel we can show transparency, which is very useful in compositing. Picture that presents alpha channel is black&white.
Antialising - is softing of alised edges that are showed in rendered picture by mixing neighbouring pixels. Most of programs have this ability but there are some programs specialized for that job.
Bounding box - it is 3D object of box with 6 polygons, but it is acctualy presentation of some more complex 3D object. You see a box, in 3D scene but in render, other object will be rendered. These are used when creating complex scenes if your computer can't support scene because of hardware weakness.
Bump was developed in 1978, and it is texture applied on object which gives user, that surface on which bump is applied, is not flat surface, but it has bumping where bump map is white colored. Bump map is black-white picture (NOTE!: not black&white version of texture). Some programs have ability to generate bump map.
Clipping -> This is procedure that does reducing amount of data which are calculate for rendering because for datas out of camera range calculation is not done.
Culling -> Ability that for hidden materials and objects that are in camera range but behind some other object, calculation is not done.
Morphing -> Changing shape of object during animation (shape animation)
OpenGL -> SGI developed GAPI (Graphic Application Programming Interface), that is multiplatform (MacOS, SolarisOS, LinuxOSes, WindowsOS, IRIX). It is advanced version of IRIX GL. It is used in big number of games, and in every more popular 3D program.
Particle -> ojects that are used for simulating rain, steam, water (aldo lately are used special fluid simulators), custom particles, snow, etc...
Refraction -> Inverse of reflection.
Viewport -> window with look to 3D scene (or just scene for compositing programs, video programs, etc..), where you can do translation, scaling, rotating, etc... of polygons, vertexes, edges, objects, meshes, etc....Labels: 3D, featured
Read more!
Sorry for not being posting for a while....
Basics of 3D
------------
Here we are going to present basics of 3D and 3D world theory. We are living in 3 dimensional world. Every position in our world can be presented with 3 coordinates offseted from some imaginary point called coordinate begining. We have it in every 3D program, and that is place where every object is positioned when they are created.
There are 2 standards of coordinate axes.
One of them is where Z axis is representing height and in other one Y axis representing height.
Some people say that first one is europen and second american standard. Now, I don't know is it supported by official, but I think people should look at that this way:
For architects (who are drawing picture from above) they should draw it in X and Y axis and when they want to get height, they extrude it by Z axis, but for usual users of 3D programs they should deal with space where Y is axis for height.
All in all, that doesn't matter, what matter is that you should chose what best fits for you. Newer 3D programs have ability you to chose which standard...
Now we will introduce with some basic terms in 3D world....
Read more!
Here we are going to install GAIM chat program from its source code. Enough talk, get to work :D.
First download its source code from:
http://gaim.sourceforge.net/Open Konsole and in first shell position your self to folder where you have downloaded gaim and untar gaim tar file with command that we learned in previous lesson: tar -xf filename.tar.gz
dir so you can see what is inside download folder, and you will se gaim folder (it will not be called gaim but gaim-1.5.0)
cd position yourself in it and
dir to see what is in there...
Type
./configure and shell will list something and do some checking.
At the end you will see what packages will and be and will not be installed.
We'll take example of tcl package. We will find and download it, then install it and then implement it with installation of gaim. This is just for an example but you will use this a lot, special for configuring apache+php+mysql.

type:
./configure --help and you will get list of commands that can be written in extension of ./configure command.
REMEMBER: every command has
--help extension which helps you using that command.
With that way we'll list to see our possibilities. Find where it says something about tcl. It is something like this: --with-tclconfig=DIR

Find and download, and untar, and position yourself to tcl folder.
Tcl can be found at:
http://www.linuxfromscratch.org/blfs/view/stable/general/tcl.htmlInstall it with next way (you have it also on link that is above):
copy/paste in shell this:
export VERSION=8.4.11 &&
export V=`echo $VERSION | cut -d "." -f 1,2` &&
export DIR=$PWD &&
cd unix &&
./configure --prefix=/usr --enable-threads &&
make &&
sed -i "s:${DIR}/unix:/usr/lib:" tclConfig.sh &&
sed -i "s:${DIR}:/usr/include/tcl${V}:" tclConfig.sh &&
sed -i "s,^TCL_LIB_FILE='libtcl${V}..TCL_DBGX..so',TCL_LIB_FILE=\"libtcl${V}\$\{TCL_DBGX\}.so\"," tclConfig.sh
Then login as root (su):
and copy/paste this in shell:
make install &&
install -v -d /usr/include/tcl${V}/unix &&
install -v -m644 *.h /usr/include/tcl${V}/unix/ &&
install -v -d /usr/include/tcl${V}/generic &&
install -v -c -m644 ../generic/*.h /usr/include/tcl${V}/generic/ &&
rm -v -f /usr/include/tcl${V}/generic/{tcl,tclDecls,tclPlatDecls}.h &&
ln -v -nsf ../../include/tcl${V} /usr/lib/tcl${V}/include &&
ln -v -sf libtcl${V}.so /usr/lib/libtcl.so &&
ln -v -sf tclsh${V} /usr/bin/tclsh
then do the same with this:
unset VERSION &&
unset V &&
unset DIR

Tcl libraries will be installed in: /usr/lib
We will check it are they there, and yes they are:

Now we are going to add parametar:
--with-tclconfig=/usr/lib in
./configure command

and here you can see that Tcl is supported.
To install program I also recomend you to use parametar: --prefix=/usr/local/gaim because that is location where shell will install gaim.

so whole ./configurate command would look like this:
./configure --prefix=/usr/local/gaim --with-tclconfig=/usr/libTo install it login as root (su), and type:
make && make installmake does compiling
make install does installing
You can also use combination and type:
./configure --prefix=/usr/local/gaim --with-tclconfig=/usr/lib && make && make installTo run gaim, position yourself to its folder, and type:
./gaimUsualy, programs are run by this way through shell:
./NameOfProgram
Read more!
Here I'll present from basic to more advanced shell commands.
Above anything, run shell.
Tip 1: When you start shell than you can see that background is white and color of letters is black. That isn't pleasent for eyes. So go to the Konsole toolbar: Settings -> Schema and chose some. Than do it again if you don't like it until you find one that fits for you.
Tip 2: Press CTRL+SHIFT+F to view shell in full screen mode
Tip 3: If you have more than one shells (tabs) opened in your console (you can open it at right from where says: "Shell" -on the bottom of Konsole window) you can navigate between them with CTRL + Arrow Left or Right
Tip 4: If you have lot of text written in shell than to scroll, beside pgup and pgdown and slider, you can do it with CTRL+Arrow UP or Arrow Down
We will start with making two new folders. There are two ways to create new folder through shell. It is same as in Microsoft Windows.
MKDIR name-of-directory or
MD name-of-directory

type command for listing directories in your current directory:
dirthan you will get list of all directories in your current (home) directory. Between others these two should be there.

Now create two files in that folder from your linux explorer such as Konqueror, just position yourself to folder and do Right Click -> Create New -> Text file...
Now change directory with command:
cd name-of-directory
and type
dir to make sure everything is there...
To get back to previous folder use command:
..Next command is move, command, or cut/paste operation that you usual do. Syntax is: mv from/what to-where
You can see it clearly on the picture. Command in translation says: move from folder test1 file test1 to folder test2
Next few lines of commands in bellow picture is experimenting with explained commands. The only one new thing is using
dir command in one different way.
Type:
dir test1 test2 if you have those two folders of cource, and command will display all files from both folders.

Next trick is making of symbolic links.
Symbolic link is something like shorcut, but is is link to some file, in some folder on your filesystem.
Using symbolic link has much advantages:
1. User doesn't have to deal with complex names for filenames
2. Programs treat Symbolic links as real program files meaning that you can you can apply symbolic link to any file, shell script, execution file, system file, text file, eaven folders, name it...
it is created by
ln command with parametar -s
Syntax is: ln -s full-path-of-file name-of-link
Translation of command would be: Make symbolic link of file /home/mayatitan/test1/test1 and put it in folder test2 and name symbolic link test1
note that when dir-ing files you can recognize syblic links because they are in this-like form:
#: name-of-file -> where it is linked
and it is usualy colored with specific color

now when we have finished with working with our files we'll delete them.
note: you can't delete folders that contain files
to delete files position yourself to folder (cd) and use:
rm file-name1 file-name2
which means that you can delete two or more files at once
go to another folder and do the same thing
get back to home and delete folders test1 and test2 with command:
rd test1 test2 it is synonim for remove directory

Beyond lesson 3 notes
--------------------------
1: You can use
ls command in replace for
dir. Just type in shell
ls2: If you want to install some rpm file through shell then position yourself to folder where is rpm file and login as su (super user, command :
su) and type in:
#: rpm -i filename.rpm
(without #:) (rpm is command, -i is parametar that tells command to do instalation of filename.rpm file)
So if you have problems installing some rpm file you can do it this way and you will see errors that you should and maybe will fix
3: extracting archive from .tar.gz file is done with this command:
#: tar -xf filename.tar.gz
Labels: console, linux, shell
Read more!