Monday, June 7, 2010

B Level Computer Graphic Concepts

GLUT - The OpenGL Utility Toolkit

OpenGL (Open Graphics Library)[2] is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics
The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL was developed by Silicon Graphics Inc. (SGI) in 1992[3] and is widely used in CAD, virtual reality, scientific visualization, information visualization, and flight simulation. It is also used in video games, where it competes with Direct3D on Microsoft Windows platforms

GLUT (pronounced like the glut in gluttony) is the OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL(Graphic Library) programs. It implements a simple windowing application programming interface (API) for OpenGL. GLUT makes it considerably easier to learn about and explore OpenGL programming. GLUT provides a portable API so you can write a single OpenGL program that works across all PC and workstation OS platforms.
GLUT is designed for constructing small to medium sized OpenGL programs. While GLUT is well-suited to learning OpenGL and developing simple OpenGL applications, GLUT is not a full-featured toolkit so large applications requiring sophisticated user interfaces are better off using native window system toolkits. GLUT is simple, easy, and small.
The GLUT library has both C, C++ (same as C), FORTRAN, and Ada programming bindings. The GLUT source code distribution is portable to nearly all OpenGL implementations and platforms. The current version is 3.7. Additional releases of the library are not anticipated.
GLUT is not open source. Mark Kilgard maintains the copyright. There are a number of newer and open source alternatives.

The current version of the GLUT API is 3.
The current source code distribution is GLUT 3.7.


The toolkit supports:
 
• Multiple windows for OpenGL rendering
• Callback driven event processing
• Sophisticated input devices
• An 'idle' routine and timers
• A simple, cascading pop-up menu facility
• Utility routines to generate various solid and wire frame objects
• Support for bitmap and stroke fonts
• Miscellaneous window management functions








What do you mean by morphing? What are the requirements for performing this
operation?

Morphing is a special effect in motion pictures and animations that changes (or morphs) one image into another through a seamless transition. Most often it is used to depict one person turning into another through technological means or as part of a fantasy or surreal sequence. Traditionally such a depiction would be achieved through cross-fading techniques on film. Since the early 1990s, this has been replaced by computer software to create more realistic transitions.






What is an Authoring System?
An Authoring System is a program which has pre-programmed elements for the development of interactive multimedia software titles. Authoring systems vary widely in orientation, capabilities, and learning curve. There is no such thing (at this time) as a completely point-and-click automated authoring system; some knowledge of heuristic thinking and algorithm design is necessary. Whether you realize it or not, authoring is actually just a speeded-up form of programming; you don't need to know the intricacies of a programming language, or worse, an API, but you do need to understand how programs work.

Why should you use an authoring system?
It generally takes about 1/8th the time to develop an interactive multimedia project, such as a CBT (Computer Based Training) program, in an authoring system as opposed to programming it in compiled code. This means 1/8 the cost of programmer time and likely increased re-use of code (assuming that you pass this project's code to the next CBT project, and they use a similar or identical authoring system). However, the content creation (graphics, text, video, audio, animation, etc.) is not generally affected by the choice of an authoring system; any production time gains here result from accelerated prototyping, not from the choice of an authoring system over a compiled language.

It should be noted that a distinction should be made between Programming and Authoring.

Authoring involves the assembly and bringing together of Multimedia with possibly high level graphical interface design and some high level scripting.
Programming involves low level assembly and construction and control of Multimedia and involves real languages like C and Java.

=============================================================================

MIDI

MIDI (Musical Instrument Digital Interface), pronounced /ˈmɪdi/, is an industry-standard protocol defined in 1982 that enables electronic musical instruments such as keyboard controllers, computers, and other electronic equipment to communicate, control, and synchronize with each other. MIDI allows computers, synthesizers, MIDI controllers, sound cards, samplers and drum machines to control one another, and to exchange system data. MIDI does not transmit an audio signal or media — it transmits event messages such as the pitch and intensity of musical notes to play, control signals for parameters such as volume, vibrato and panning, cues, and clock signals to set the tempo. MIDI technology was standardized and is maintained by the MIDI Manufacturers Association (MMA). All official MIDI standards are jointly developed and published by the MMA in Los Angeles, California, USA

A number of music file formats have been based on the MIDI bytestream. These formats are very compact; a file as small as 10 KiB can produce a full minute of music or more due to the fact that the file stores instructions on how to recreate the sound based on synthesis with a MIDI synthesizer rather than an exact waveform to be reproduced. A MIDI synthesizer could be built into an operating system, sound card, embedded device (e.g. hardware-based synthesizer) or a software-based synthesizer

This is advantageous for applications such as mobile phone ringtones, and some video games; however, it may be a disadvantage to other applications in that the information is not able to guarantee an accurate waveform will be heard by the intended listener, because each MIDI synthesizer will have its own methods for producing the sound from the MIDI instructions provided. One example is that any MIDI file played back through the Microsoft MIDI Synthesizer (included in any Windows operating system) should sound the same or similar, but when the same MIDI bytestream is output to a synthesizer on a generic sound card or even a MIDI synthesizer on another operating system, the actual heard and rendered sound may vary. One sound card's synthesizer might not reproduce the exact sounds of another synthesizer.