This is inside PC world called second PC bus generation, because ISA is considered first generation. Usualy bus is designed to last for 10-15 years which ISA accomplished. Intel made big mistake with VLB bus, it was orientated to one type of mircoProcessors, so they suggested universal solution that is connected to intern bus over microProcessor with Host Bridge, which is actually adjusting unit. That means that bus is phisicaly and logicaly and electricaly separated from microProcessor, so type of microProcessor doesn't jeopardise bus. Standard was promoved in 1992 and held until today, even if has been extended. Standard PCI bus is 32-bit and runs on 33,3 MHz nad is present at 99,9% PC MotherBoards (MB). Besides, there are numberous variants that work on 66, 100 and 133 MHz, like 64-bit version of PCI, but this soulutions are used ostly on server computers and graphics work stations.

PCI bus brins much better performanses according to VLB bus, beforeall thanks to specific improvements like:
- Burst Mode, possibility of data transmition into burst mode, which presents block transfer of data array
- Bus Mastering, possibility of PCI device to take control over bus and to make data transmission direct. This is first bus that popularised Bus Mastering, before O.S. and applications could use that advantage.
PCI bus allows same time bus mastering of more devices, with kind of work that non device on bus can block other device.
- High bandwidth PCI 2.1 specification (64-bit), which works on 66 MHz, makes first standards bandwidth 4 times larger. But this specification is mostly used on professional systems, on this specification AGP was based.
With grow of bus frequency, problem of signal synhronization on bus becomes complex. Extendion of work frequency is negatively reflect on signal wave form on bus and advent of late because capacitive character comes to expression of bus load and nus-capacity of semiconductor units. PCI bus allows up to 10 standard capcacity duty loads, 5 plugged modules into PCI slots (1 PCI modul treat as 2 capacity duty loads).
Read more!
With bus development, specific graphics cards appeared on marked, so today we can find:
PCI graphics cards
AGP graphics cards
PCI-E graphics cards
PCI graphics cards, today are very little in use, 'cause of relatively weak bandwidth of PCI bus, but they used very good, and may be still in use for users that use only office application, and other graphicaly low-requirement softwares. But, with appearence of "realistic" 3D games, which made first 3D objects, not 2D pictures,hardware acceleration was invented, which means 3D rendering directly through hardware not with software emulation. First cards, then called 3D accelerators, PCI bus was just about enough. When new tecnologies were found, and with speed acceleration, there was need for faster bus. Therefore AGP was developed
AGP cards usualy posses hardware acceleration, and also larger amounts of memory then PCI graphics cards, and with that, they are faster. AGP graphics cards today have bigger part of market, but AGP bus is reached its maximum, like other buses that use parallel datatransmission. Therefore it is expected that PCI Express bus, that is serial, in near future stoppes being primary and only, so AGP graphics cards today are eaven not produced, they started making only PCI-E versions.
Read more!
Pipeline
Pipeline coud be described as production line. Therefore, production of something is devided into phases of production which get united and at the and final product is there. Similiar example of pipeline is production line of cars. At first production of body, then paintjob, then installing parts, and all that on one production line, or pipeline.
Pipeline speed depends upon slowest phase. For example, when producing cars, if installing of parts lasts 3 minutes and all other phases take 2 minutes, then all other phases must wait that one minute before they come to the next phase. Therefore in pipeline example parts installing is bottleneck because this determins speed of whole production.
This pipeline as described in example is located also in computer graphics. Graphics pipeline performed in real-time can be devided into 3 basic phases shown here:

Basic GPU pipeline lookThose phazes are Application, Geometry and Rasterizer. Every each phase is actually pipline for itself because it is consisted of few subphases. Slowest phase of pipeline determines picture drawing speed, fps (frames per second).
Application phase
Like named, application phase is started by software (application). This phase has collision detection, accelerator algorithms, animacion & stuff. Here user can have influence on models (ex. game characters). Also, developer (person that develops some software) has total control about application events because it is after all his developing product.
Geometry phase
Geometry phase can be software or hardware, depending on arhitecture, and it deals with geometric transformation - rotations, translations, scaling, projections, lightning etc. This phase actually calculates what will be drawn, how should it be drawn and where should it be drawn.
Geometry phase is devided to several subphases (those subphases are actually numbers of coordinate systems):

Subphases inside geometric phaseModel coordinates
- every object is modeled in its coordinate system
- It is mostly supposed that objects are presented with triangle, square or polygon
- objects can be modeled with "splines" or with NURBS (Non-Uniformal Rational B Splines, mathematic technique with using polinoms to describe smooth surfaces) but within drawing phase (render time) they are being converted to polygons.
3D world Coordinates
- integration place
- all objects have to be moved to same coordinating system
- at every moment lightning parametars must be specified
Eye/Camera/View coordinate system - coordinated system of camera/viewer
- at this moment scene viewing point is being chosen
- coordinates are being converted so persone watches upstream of specific axis
- Usualy this is z-axis with x-axis on right side, and y-axis upwards. This transformation ease later transformation 3D picture to 2D screen.
Clipping Coordinate System
- this is projection transforming phase
- determins view volume, viewable part of space. Every points must be transformed according to projection. Normalization is necessary, because all coordinates must be between 0 and 1 (DirectX) or -1 and +1 (OpenGL)
Normalized Device Coordinates
- cutting is being done
- it is being projected from 3D to 2D, from already normalised cube, z-axis is remembered for deph determination
2D screen Coordinate system
- vectors are converted to pixels
- at this moment texturing and elimination of hidden surfaces is being done
- anti-aliasing also can be done after this phase
Rasterizer phase
This phase draws, renders (rendering), picture onto screen based on data generated in previous phase.
Pipeline is just like at CPU, basic working method of graphics processors. Pipeline phase can also be paralel so execution speed is higher.
Parallelism
Other way for getting fast graphics is parallelism which can be made in geometry phase and raster phase. Idea of this kind of work is that at the same time, is made more results and then in later phase, to be combined. Parallelism working method of graphics is presented here:

Bsic GPU parallel arhitectureOn picture datas from application phase come into geometry phase where are application phase results shared to minor graphics units (G), and eash geometric unit process graphics part (ex. projection). Then those results are sent to rasterizer units (R) for further processing.
But, as more results is parallel processed, some kind of hierarchy is needed so parallel units together give image that user wanted. This hierarchy can execute anywhere in pipeline which gives 4 different sorts of hierarchy, which are: Sort-First, Sort-Middle, Sort-LastFragmentt, Sort-Last Image.

Parallel graphics arhitectureRaster phase is consisted with two inner phases: Fragment generation (FG) and Fragment merge (FM). FG does real location within basic elements and pass them to FM that compounds results into one. Texturing is mostly done either at the begining of FG or at the end of FM
Sort-first
- pile basic elements before entering into geometry phase
Sort-middle
- after geometry phase location on every basic screen element is known and can be passed to raster units (FG and FM)
Sort-last image
- after raster phase everything is compounding
Sort-last fragment
- compounds fragments after FG before FM fragment compoundation
Labels: architecture, pipeline
Read more!
All graphics cards have RAMDAC, chip that converts digital signals to analog. CRT monitors work with analog singlas. PC works with digital signals, that are sent to graphics card. Before these signals are forwarded to monitor they need to be converted to analog output signals, which is RAMDACs job. That is process of conversion digital signal in analog signal of specific voltage, which is defined for every color. There is D/A (DAC) convertor for each of basic colors, which monitor uses for creation of color palette. Result is correct "mixture" of colors neded for creating of every each pixel. Speed that RAMDAC would work, and also as design of graphics processor, dictate which max frequency of refresh rate will graphics card support, as number of colors that will be able to show on specific rezolution.
Read more!
Memory that stores datas which are shown and which will be presented on screen are called video memory and it is usualy implemented on graphics card itself. First graphics cards used standard dynamic memory, but that requested constant refresh of memory content. Consequences were reducition of performances, which could be seen with slight increase of frequencies of GPU and GPU.
Advantage of video memory implementation is very high possibility of adjusment for specific purpuses, which resulted with creation of new memory technologies. Video RAM is special type of dynamic memory that allowed momental reading and writing of datas. It also doesn't demand big refresh rate, like standard dynamic memory, which gives much better work performanses like standard dynamic memory, which can give better performances.
EDO RAM is like ordinary DRAM, with exception that it gives better throughput and can work on higher frequencies. It also accelerates read/write cycle, which execute more efficient then standard dynamic memory.
SDRAM/SGRAM memory is also used on graphics cards. SDRAM allows that memory and graphics processor work on their own frequencies and it is used for efficient gathering and data process, that allows more efficient work then EDO memories. SGRAM is just variation of SDRAM, but is used only as video memory, and it supports read/write blocks and data processing on bit level, which resulted with higher performances. Graphics cards use this memory, but haven't registered significant use.
Today, DDR memory is mostly used in this purpose, aldo there exist modules that use GDDR3 memory which we can find on high end graphics cards where work frequences are higher, so is bigger bandwith for aproximatting of high performanses.
DDR memory for graphics cards we can find in 2 different packages:
-TSOP-II, 66-pin (with 33 pin with both sides), this package is relatively cheap, easy to embedd and manufacture process is fast, thanks to technology improvements.
-FBGA, 144 pin. These memories usualy can have speeds from DDR350 MHz or 400 MHz (effective 700 MHz and 800 MHz). Memories with this package are also embadded on high end graphics cards. It is familiar that DDR memory can work up to maximum frequency of 500 MHz (effective 1 GHz), but those models is very difficult to produce so price of these memories is pretty big.
Because of these reasons, graphics cards that use DDR memory, working frequences memory is set up at 350 MHz, or max 400 MHz as upper limit.
Example of GDDR3 memories on newest graphics cards is pretty universal. GDDR3 technology is equal to DDR2 technology of system memories, and it uses 4-bit preprocessing of datas, which cause for effective frequency to be 4 times bigger then real work frequency, and that is twice as double then equalent DDR memory, and it makes data transmition easier.
Starting work frequencies GDDR3 memory is 500 MHz, and theortethicaly in this moment it is able to reach working frequencies up to 800 MHz. Using only FBGA package, and modules are phisicaly small and don't get heated to much, which allows them to work on bigger frequencies without need for coolers
Therefore, strongest graphics memories today are separated to DDR and GDDR3. Though, future could be XDR and GDDR4 memories that sould offer not just bigger working frequencies, but also bigger memories bandwith that would go up to 100GB/s.


Read more!
GPU - Graphics Processing Unit
These are chips that very efficiently manipulate and show computer graphics, and thanks to their extraordinary structure, they are more efficent from CPUs (Central Processig Units) when are questioned komplex graphics algorithms.
GPU implements numberous simple graphics operations with a way that is possible to execute them much faster then CPU could do. The most basic operation of first 2D oriented graphics cards included BitBLT (Bit Block Transfer), it is acctualy operation that combine 2 images into 1, then operations of drawing of square, triangles, arcs and circles. Modern graphics processors have implemented support for 3D computer graphics. At the beggining they were used for acceleration of intenzive memory requests, like mapping of textures and rendering polygons, later there were added elements that speedup geomethric calcucations like replacing lines into other coordinate systems. Latest improvements on graphics processors includes support for programmabile shaders that can manipulate with lines and textures with many, same operations that CPU supports, like various interpolation techniques that are used for enchancing picture quality.
Graphics processors produced after 1995 support "YUV color space" (today YUV presents the most used system of colors in TV reproduction which is used on PAL and NTSC systems, and its based on better luminance of colors unlike RGB, which YUV was based on (the one that is mostly used in computer graphics) like hardware attachment that is very importante for reproduction of digital video. Meny graphics processors produced after year 2000 support MPEG coding that allowes for better and more efficiant video compression. Newesr graphics cards even can decode video content in real-time by card itself, and with taht they reduce CPU use.
Typical, modern graphics card is connected with CPU and system memory over motherboard, and bus (PCI, AGP, PCI-E). Graphics processor has limmited access to amount of video mamory which is located directly on card, and gives support for lot larger speeds then dynamic RAM. Thats why price of these memories is bigger. Today graphics cards have about 256 MB, 512 MB, even 1 GB video memory, which is sometimes more than amount of system RAM.
Read more!
Graphics cards are important almost as screen (nothing is more important than screen because, it is at the and of chain and can ruin everything). During last decade, graphics cards made tremendous progress when quality comes into question.
Graphics card is acctualy adapter, that is installed on motherboard like swap module. It also can be integrated part on motherboard, which is case in laptops, but there is also relativly big number of desktop computers with integrated graphics card.
Performances of those cards are much weaker then changable module cards, because, after all they use system memory that is much slower then video memory.
Every graphics cards, module or integrated is consisted of 3 components:
Set of video chips, GPU (Graphics Processing Unit) by some manufacture (ATI, nVidia..). Video chips make signal that monitor has to recive so it could format a picture.
Memory can be(EDO, SGRAM, SDRAM, VRAM...), and all these memories are variations of system RAM memories, spcialy optimized for this application. Memory is neccesary, because graphics card must remember all screen image in every moment.
RAMDAC is chip that convets digital/alalog signals.
Read more!
For last 25 years, graphics cards made unbelivible progress. First graphics card was produced in 1981 by IBM, named MDA (Monochrome Display Adapter) and it could draw only text with white or green color on black screen. Today minimum of standards for new graphics card is VGA (Video Graphics Array) which can draw 256 colors.

VGA is standard designed by IBM and which cloned every other manufactures. It presents minimum that all graphics cards should support, so their drivers could enable their functioning.
SVGA designed VESA (Video Electronics Standards Association) as fulfil of VGA standards allowing bigger resolutions and color number:
800 pixels × 600 pixels = 480,000 pixels
480,000 pixels × 8-bits = 3,840,000 bits
3,840,000 bits ÷ 8 bits per byte = 480,000 bytes = 0.5 MBs
XGA also designed IBM but it is often binded with resolution 1024x768 and support of drawing 65,536 colors, and requires 1.5 MB of video memory:
1024 pixels × 768 pixels = 786,432 pixels
786,432 pixels × 16-bits = 12,582,912 bits
12,582,912 bits ÷ 8 bits per byte = 1,572,864 bytes = 1.5 MBs
SXGA made better XGA standard and brings support for resolutions over 1280x1024 in 24-bit color (16,7 mil colors). Requires minimaly 4 MB of video mamory:
1280 pixels × 1024 pixels = 1,310,720 pixels
1,310,720 pixels × 24-bits = 31,457,280 bits
31,457,280 bits ÷ 8 bits per byte = 3,932,160 bytes = 3.9 MBs
UXGA brings support for resolution of 1600x1200, also presents improvements of XGA standard.
For improving quality of presentation isn't enough just to make resolution larger, but also color number must be larger
Za poboljšanje kvalitete prikaza nije dovoljno samo povećavati rezoluciju, već i broj boja koje se mogu prikazati na monitoru. Number of bits that color information is coded presents maximum number of colors that can be shown on monitor. From color number depends picture qualiy. Standards are:
8 - bitna boja (256 boja) - Pseudo Color
16 - bitna boja (65650 boja) - High Color
24 - bitna boja (16,7 miliona boja) - True Color
32 - bitna boja (4,3 milijarde boja) - Pure Color
Read more!
In next posts I will write about graphics cards.
Graphics card is computer component rensposible for creating image shown on monitor screen. On first text-based computers that was simple, and microprocessor could do most of work and even then there was chip that generated output signal for screen.
However, with development of graphics operating systems, amount of informations needed to process for screen increased enormaly. Increasing got to that level that it was inpractical for main processor to process. Solution was to unload mainprocessor from all screen presentation activities, by making purpuse-made, graphics card.
While requirements of multimedia and 3D graphics were growing, importance of graphics card became bigger and bigger. It reached level of high efficiant processor units, and we can reffer to it with high specialized co-processor. Today, some graphcs cards have more transistors than CPU (Central Processing Unit), and they process far more complicated operations, and acctualy presents so called computer inside computer.
At the end of last century, production of graphics card chips reached levels unbeatable by any other PC and technology area. Leading companies are ATI, nVidia, Matrox, S3, 3Dfx (after some time nVidia bought this one). Lifetime of these graphics chips should be 6 months, which is the least comparing with any other area of PC technology. One of consequences of this is survival and strengthening ony few of main manufactures of graphics cards.
Read more!
Best and biggest resource for finding out OpenGL details are from:
wikipediaNehe OpenGLGoogle BooksLabels: 3D, graphics, opengl
Read more!
Fahrenheit was or should have been project that would make uniqe multiplatform API, made by Microsoft, SGI and HP, with plan that would unite OpenGL and Direct3D. Orginal project is now totaly abandoned and Microsoft and SGI quit of trying to work together.
Before end of 1997. Microsoft and SGI agreed for delivery of their solution and their parts in project. SGI should deliver soulutions for Fahrenheit Scene Graph and solutions used in CAD applications for Fahrenheit Large Model, while Microsoft should deliver low-level solutions for Direct3D replacement. Project was presented at SIGGRAPH in 1998 and shoud be completed in 1-2 years period. Fahrenheit stopped to be primary in development in SGI because their mainframe computers MIPs were loosing on performanses because of global development of PCs. Until 1999 SGI realized that Microsoft doesn't attent to fulfil their part of deal. Without low-level solutions, Fahrenheit couldn't exist and their project stopped. SGI was found itself in worse position and couldn't watch how Microsoft is ruing their buissnes plans so SGI gave up part of ownership and gave it to Microsoft. Everything left of Fahrenheit is XSG which was Scene Graph and pubblished by Microsoft with note that it wouldn't be supported.
Read more!
Direct3D is API (Application Programming Interface) developed by Microsoft and only competition to OpenGL. Direct3D is primary made for single operating system, and the one developed by Microsoft, and some other Microsoft entertaiment consoles like Xbox. Attempts for switching Direct3D to other platforms with specific emulators weren't successful and that can produce some violation of copyrights so trying to do so is quited.
Microsoft started to develop Direct3D for Apple PowerPC computers, but that project started pretty badly, so it was abandoned. So Apple has been without graphics support for a while while it hasn't standardize OpenGL.
On the other hand OpenGL is implemented in all modern operating systems, like Microsoft Windows, Unix-based and Unix-like operating systems, Linux, Mac OS X, and entertaiment consoles like Nitendo and Sony (Playstation 3).
Smaller manufactures of graphics cards like Intel Extreme Graphics Line, have better support for Direct3D then OpenGL but 2 biggest ones, ATI and Nvidia, have very good equivalent support for both, OpenGL and Direct3D for all platforms (Windows and non-Windows) and they bind that they will support OpenGL standard in future.
Until 1998 Direct3D considered itself as unsabile API, but since version Direct3D version 5 situation has changed and Direct3D got significant improvements. Direct3D and OpenGL when executing their code, they do it with 2 different logics. Direct3D is closer to hardware unlike OpenGL. When we are starting minimized Direct3D application our computer again does loading of all components (textures, model geometry, etc...) unlike OpenGL where is almost everything allready loaded so period of waiting time to maximize application is much smaller.
Read more!
Today we can see that CG is used for playing games, graphic presentation of science works, for special effects in movies and other different places. 15 years ago, using of CG was very rare and only in professional purposes, and those who created had to develop hardware access code by them selves, so SGI (Silicon Graphics Inc.) decided to build API (Application Programing Interface) which would standardize hardware access code, and resposibility for developing it, swich to graphics card manufactures nvidia, ati, etc...
Because, back then, there were lots of manufactures, making it possible for anyone to have their access interface, every user in different programming language could make simple graphic program without complications about hardware access. In 1992 SGI led to formation of OpenGL ARB (Architectural Review Board), which was consisted of groups of companies that will in future standardize OpenGL for different software and hardware platforms.
OpenGL eveluated from earlier and very similiar SGI 3D interface, IrisGL.
IrisGL had hardware restriction, programs made in IrisGL could work only on specific hardware platforms. OpenGL bypassed that problem with software way, and made it possible for advance graphics to be used in non proffesional systems.
When in 1995 Microsoft published its Direct3D, Microsoft, SGI, and HP (Hewlett-Packard) decided to run Fahrenheit project which sould make API that would unite OpenGL and D3D good characteristics so there would be no competition in that area, and that uniqe API would exist. Because lots of tensions this project was abandoned and SGI and Microsoft quit working together.
Labels: 3D, graphics, opengl
Read more!
okey, next few posts will be about opengl. What is it, how it works, basic commands, etc..
OpenGL (Open Graphics Language - Ogl) is multiplatform union of functions and procedures for making real time 3D graphics on computer monitor, which is drawn in 3 dimensions (3D), including 2D graphics in real time. It is popular because it is used in big number of games for drawing graphics, and its competition is Direct3D (also reffered as D3D) by Microsoft, which is one platform, made only for Microsoft Windows. OpenGL is used in: 3D applications, and scientific applications for visualization. It is consisted with about 250 commands that enables drawing of complicated 3D scenes.
Labels: 3D, graphics, opengl
Read more!