About site: Programming/Graphics/Libraries - Windows Programming
Return to Computers also Computers
  About site: http://www.acm.org/crossroads/xrds6-4/graphicslib.html

Title: Programming/Graphics/Libraries - Windows Programming Comparison of Nugraf Developer's 3D Toolkit and Open GL. Publisthed in ACM Crossroads Magazine.
The_UK_Cybernetics_Club An online collective based in the United Kingdom. Membership is open to anyone interested in intelligent mobile robots.

Eagle_Computer_Systems,_Inc_ Computer store selling new, used, wholesale and refurbished laptops, notebooks and software.

Ecardisland_com Categories include collies, fantasy, holidays, marine life, nature, pets, romance and occasions. Features photos, nostalgia, Java effects and illustrations.

Writing_HTML Basic to advanced HTML topics, with a review quiz at the end of each chapter.

RCS_Tutorial_-_the_Revision_Control_System Frames-based short HTML online tutorial, by David L. Spencer.

Engleking_Consulting Offers site design, hosting, computer repair, and training.


  Alexa statistic for http://www.acm.org/crossroads/xrds6-4/graphicslib.html





Get your Google PageRank






Please visit: http://www.acm.org/crossroads/xrds6-4/graphicslib.html


  Related sites for http://www.acm.org/crossroads/xrds6-4/graphicslib.html
    MEC_Imex_Inc_ Manufacturer of electrical cord sets and cable assemblies. Headquartered in Taiwan.
    Atelier_Web_Software Software development and consultancy firm with a range of products for networks, communications, and programming. Product specifications, screenshots, and downloads.
    RTPatch Generates patches to update software files. (Pocket Soft, Inc.)
    BinaryMoon A personal homepage that includes bits of code and games made with the language.
    Mightyware A showcase for Max Carey's darkBasic creations as well as some tutorials.
    sms2world Provides you with a cost-free newsticker in the Internet, whose content you can easily update by means of SMS from your own cell-phone.
    Focus_Educational_Software [Win] Software designed for people preparing for GCSE Design and Technology and GCSE Science. Downloadable demo.
    Emacs-w3m A simple Emacs interface to w3m.
    Curl_and_Libcurl A tool and a library (usable from many languages) for client-side URL transfers, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. (C) [GNU/Linux, Unix, Windows, VMS, RISC OS,
    Back4Win Continuous backup with versioning, restore, ZIP-64 compression and disk spanning to CDRW (WinXP). [Win32]
    Axiome_Alpha_SA Manufacture of automatic identification devices for OMR, SCANNER, OCR, BARCODE and RF/ID equipment
    Fast_Facts_Software Indian company offering fixed asset and depreciation management software. Client list and contact information.
    Internet_Connection Offers domain name-related services including domain name registration.
    Domain_Name_Center Offers domain name guides.
    Ahmed,_Ramzy_-_Alwaiz_Arts Offers website designing, web promotion and marketing as well as hosting plans. Based in Pakistan.
    Byte_Technology Offers web design packages that include hosting, and network consulting. Based in California.
    Insecure_Inc Offers design, graphics, and Java services.
    Pi_Blue_Software,_Inc_ Developer of OptWorks, a suite of optimization tools. Includes Genetic Algorithms and six other non-gradient based optimizers.
    Interactive_Media_Consulting Offers design, hosting, promotion and internet consulting from Saratoga Springs, NY.
    Systems_Management_Server Systems Management Server (SMS) supports detailed hardware inventory, software inventory and metering, compliance checking, software distribution and installation, network discovery, and remote troubl
This is websites2007.org cache of m/ as retrieved on 2008.10.07 websites2007.org's cache is the snapshot that we took of the page as we crawled the web. The page may have changed since that time.
Graphics Libraries for Windows Programming <b>Crossroads</b> Logo

Crossroads

The ACM Student Magazine

ACM / Crossroads / Xrds6-4 / Graphics Libraries for Windows Programming

Graphics Libraries for Windows Programming

By M. Carmen Juan LizandraArticle Glyph

Introduction

Any new software project, be it a word processor or a high endgraphics rendering software, presents its creator with a multitude ofoptions. Considerations such as code reuse,portability and performance are important to every application. Often, it is impossible to achieve all these considerations, and tradeoffs arerequired. At times, one must chose betweenready-to-use code libraries, SDKs or APIs that can speed up thedevelopment process, eliminate portability problems and ensureefficiency.For those who prefer not to reinvent the wheel, several graphicslibraries are available for 2D and 3D development. After all, it is notefficient to create functions or methods that have already beenimplemented in commercial libraries. This article describes two libraries for use with C and/or C++. The sidebar introduces basic definitions and concepts. The firstsection of the paper discusses the more relevantfeatures of the two libraries. Some sample images createdusing these packages and Visual C++ are included.

Nugraf Developer's 3D Toolkit

Nugraf from Okino [2] is a librarythat allows the user to createhighly realistic scenes that are at times comparable tophotographs. Nugraf provides a C interface. This allows a programmerto easily use Nugraf functions which are themselves written in C. Bypassing the appropriate parameters it is possible to perform anoperation in the hierarchical database that Nugraf uses to store sceneinformation. This library includes functions to specify most of thescene essentials such as a scene camera, lights and options related tothe rendering mode. Functions to define geometric primitives, todeclare the material features and to define a texture are alsoprovided.Geometric primitivesGeometric primitives allow the definition of an object, howevercomplex, using one easy function call with few parameters. They can begeometric structures that are normally combined to create objects(cubes, spheres, etc.) and might get quite frustrating to definevertex by vertex. Complex structures can be divided in severalclasses: straight polyhedrons, curved Polyhedrons, 3D Surfaces andpolygonal primitives.Scene definitionA scene, which later will be rendered, needs to coherently representall the information that is available. At times several geometricstructures could be repeated. Nugraf uses a hierarchical database tostore scene information. This tree is structured in terms ofobjects and instances. Do not confuse the terminology used by Nugrafwith OOP terminology, remember that the package provides a C interface(not C++).An object in Nugraf is a named encapsulation of one or more geometries. This entity isgeneric and can not be directly rendered. To render an object one must create an instance of each object and add these entities to the scene. The instances inherit the geometricstructure of their parent object. However, modifications (scales,rotates, translations) done to an instance will not affect theoriginal object. Instances of an object do not belong to a scene until they are explicitly added to thehierarchical structure. The instance tree is born out of aspecial instance named world. When a scene has to be rendered,the tree is visited starting from the root node world. All accessible instances are rendered in a top down manner.RenderingIn a Nugraf scene many cameras can be positioned, however only onecan be active at a time. Several rendering methods can be used toproduce very different results. One can choose from wireframe orhidden-line wireframe methods. Nugraf also provides a method of its ownin which you can render anything from simple images, composed of fewpolygons with only a few colors, to photographs with high realism ofcomplex scenes composed of thousands of textured polygons and shades.This method performs elimination of hidden surfaces using a hybridalgorithm ( somewhere between scanline-zbuffer and area-buffer.)Finally, flat, Gouraud or Phong shading models can be applied to thescene. The lights can be of four different types: indirect light, sun,light bulb or spotlight (each one simulates: ambient light,directional light, punctual light and spotlight, respectively). Alllights have a parameter, intensity, which expresses the powerof each light.It is possible to simulate a great number of materials using thedefinition of a surface. The attributes of a surface are reflectanceproperties, color of each component of the reflected light, textures,opacity and the reflection map. Features like the reflectance andabsorption of a material are expressed in the Nugraf shading modelusing four components: ambient reflex, diffused reflex, spotlightreflex and environment reflex. Reflection maps can be with planes,spheres or cubes. Several general aspects related to the renderingprocess can easily be defined. Nugraf offers a solution to thealiasing problem. The antialiasing algorithm used is based on atechnique known as over-sampling.The resultant output is always an image. This image can be seen onthe screen or stored in a bitmap file. One or several destinations ofthe rendered image can be specified. When an image is generated, itsresult is stored in all the destinations specified.To sum up, good features of this library are: Excellent realism. Near ray-tracing quality, with shadingand normal interpolation, texture mapping, material features,different kind of lights, thrown shades, reflection calculations,etc. Minimum Temporal Cost. The rendering method has severalcapabilities such as culling, clipping, storing shade information andreflection maps that accelerate the process to a great extent. Scenesthat with non-optimized ray-tracing take several hours, can begenerated by Nugraf within a few minutes. Low Hardware Demand This library works very well withlow-end or mid-level PCs.On the other hand: Non Flexible There is little control over the userinterface. Nugraf works as a black box between the mainapplication and the output device. Only 3D Nugraf deals only with 3D surfaces. No 2Dentities are provided. All the objects in a scene have to be declared with a set ofprimitives included in Nugraf, and sometimes they are not very easy touse.Nugraf examplesFigure 1 shows several examples generated using Nugraf. These havebeen extracted from an application that is used to designhouses. Using this application it is very easy to visualize changedtiles or added furniture. In this application you can design the roomsin 2D, then add furniture, lights, etc. In the next step you canrender the room in 3D using Gouraud or Wireframe rendering. Finallyyou can 'photograph' the scene from any angle. In this case, though,OpenGL has been used to achieve this 3D visualization, allowing thefreedom of navigating through the room. The point of view is selectedbefore the 3D visualization.It can be seen that the quality of the images created using Nugrafis excellent. The disadvantage is that the rendering is not in realtime. That is, you can not use it to navigate through the room. (a)and (b) show some of Nugraf features. (c)-(f) show several scenes fromdifferent houses. Examples use different types of white light sources:ambient, punctual and spotlight. All the images have thrown shades andtexture mapping. A reflection map with maximum index has been appliedin the sphere that appears in (b), and in the mirrors that appear in(a), (c) and (e). These reflection maps are: spherical in (b) and flatin (a), (c) and (e).graphic 1graphic 2(a) (b)graphic 3graphic 4(c) (d)graphic 5graphic 6(e) (f)Figure 1. Different examples created using Nugraf

OpenGL

OpenGL from Silicon Graphics [3] is a software interface used to create objects and operations for interactive,three-dimensional applications. OpenGL also provides a Cinterface. This library includes functions to specify most of thescene essentials such a scene camera, geometric primitives, lights,textures, etc.It would be in order to list the more relevant capabilities forOpenGL:Accumulation buffer A buffer in which multiple renderedframes can be composited to produce a single blended image. Used foreffects such as depth of field, motion blur, and full-sceneanti-aliasing.Alpha blending. Provides a means to create transparentobjects.Automatic rescaling of vertex normals changed by themodeling matrix.BGRA pixel formats and packed pixel formats to directlysupport more external file and hardware frame buffer types.Color-index mode. Color buffers store color indices ratherthan red, green, blue, and alpha color components.Immediate mode. Execution of OpenGL commands when they'recalled, rather than from a display list.Display list. A named list of OpenGL commands. The contentsof a display list may be preprocessed and might therefore execute moreefficiently than the same set of OpenGL commands executed in immediatemode.Double buffering. Used to provide smooth animation ofobjects. Each successive scene of an object in motion can beconstructed in the back or "hidden" buffer and then displayed. Thisallows only complete images to ever be displayed on the screen.Feedback. A mode where OpenGL will return the processedgeometric information (colors, pixel positions, and so on) to theapplication as compared to rendering them into the frame buffer.Level of detail control for mipmap textures to allow loadingonly a subset of levels.Materials lighting and shading. The ability to accuratelycompute the color of any point given the material properties for thesurface.Pixel operations. Storing, transforming, mapping,zooming.Polynomial evaluators. To support non-uniform rationalB-splines (NURBS).Primitives. A point, line, polygon, bitmap, or image.Raster primitives. Bitmaps and pixel rectangles.RGBA mode. Color buffers store red, green, blue, and alphacolor components, rather than indices.Selection and picking. A mode in which OpenGL determineswhether certain user-identified graphics primitives are rendered intoa region of interest in the frame buffer.Specular Highlights. Application of specular highlightsafter texturing for more realistic lighting effects.Stencil planes. A buffer used to mask individualpixels in the color frame buffer.Texture coordinate edge clamping to avoid blending borderand image texels during texturing.Texture mapping. The process of applying an image to agraphics primitive. This technique is used to generate realism inimages.Three Dimensional Texturing. Three-dimensional texturing forsupporting hardware-accelerated volume rendering.Transformation. The ability to change the rotation, size,and perspective of an object in 3D coordinate space.Vertex array enhancements to specify a subrange of the arrayand draw geometry from that subrange in one operation.Z-buffering. The Z-buffer is used to keep track of whetherone part of an object is closer to the viewer than another.OpenGL-related librariesThe OpenGL Utility Library (GLU) [4] contains several routines thatuse lower-level OpenGL commands to perform tasks such as setting upmatrices for specific viewing orientations and projections, performingpolygon tessellation, and rendering surfaces. The OpenGL Extension tothe X Window System (GLX) provides a means of creating an OpenGLcontext and associating it with a draw-able window on a machine thatuses the X Window System. Open Inventor [5] is an object-orientedtoolkit based on OpenGL that provides objects and methods for creatinginteractive three-dimensional graphics applications. Open Inventor iswritten in C++ and it provides pre-built objects and a built-in eventmodel for user interaction, high-level application components forcreating and editing three-dimensional scenes, and the ability toprint objects and exchange data in other graphics formats.Mesa [6] is a free implementation of the OpenGL API for Linux,designed and written by Brian Paul, with contributions from manyothers. Its performance is competitive, and while it is not officiallycertified, it is an almost fully compliant OpenGL implementationconforming to the ARB specifications. You can find more information onMesa home page.The OpenGL Utility Toolkit (GLUT) [7] is a programming interfacewith ANSI C and FORTRAN bindings for writing window system independentOpenGL programs. The toolkit supports the following functionality:multiple windows for OpenGL rendering, callback driven eventprocessing, sophisticated input devices, a "idle" routine and timers,a simple, cascading pop-up menu facility, utility routines to generatevarious solid and wire frame objects, support for bitmap and strokefonts, and miscellaneous window management functions, includingmanaging overlays.OpenGL examplesFigure 2 shows some examples. All of them perform 3D navigation.,(d)-(f) in an interactive manner. (a) presents an OpenGL demo. (b)shows an OpenGL and Visual C++ example. In (c) an application that canvisualize, rotate, move and zoom objects in 3D can be seen. The usercan change the point of view using the mouse. Another application thatcan help you to design your house or add new furniture can be seen in(d)-(f). This application uses shading and textures to achieverealism. Though it does not achieve the quality of the examples showedin figure 1, it allows navigation through the room. (d) shows a scenewith furniture. (e) and (f) present a textured floor.graphic 7graphic 8(a) (b)graphic 9graphic 10(c) (d)graphic 11graphic 12(e) (f)Figure 2. OpenGL examples

Conclusions

There are several libraries that can help save a graphicsprogrammer a lot of work. They help improve the quality of thefinished applications and reduce the time needed to create them. Fromour discussion, it emerges that Nugraf is an excellent library if youwant to create applications that take high realism 'photographs' ofscenes. OpenGL can help you to create 2D and 3D interactiveapplications. In some cases the scenes achieved could be quitereal. For interactive navigation in a 3D textured scene, you couldpossibly need OpenGL accelerator hardware.

References

1Foley, van Dam, Feiner, Hughes.Computer Graphics: Principle and Practice. Ed. Addison Wesley,1987.2Nugraf, Okino. http://www.okino.com, 1999.3OpenGL, http://www.opengl.org, 1999.4GLU, http://www.opengl.org/Documentation/GLX.html?glu#first_hit,1999.5Open Inventor, http://sal.jyu.fi/F/3/TGS_OPENINVENTOR.html,1999.6Mesa, http://www.ssec.wisc.edu/~brianp/Mesa.html,1999.7GLUT, http://reality.sgi.com/opengl/spec3/spec3.html,1999.Copyright 2000 M. Carmen Juan Lizandra Copyright 2004, The Association for Computing Machinery, Inc. W3C XHTML 1.0 W3C CSS 2.0 W3C WCAG 1.0 _uacct = "UA-248272-1";urchinTracker();
 

Comparison

of

Nugraf

Developer's

3D

Toolkit

and

Open

GL.

Publisthed

in

ACM

Crossroads

Magazine.

http://www.acm.org/crossroads/xrds6-4/graphicslib.html

Windows Programming 2008 October

dvd rental

dvd


Comparison of Nugraf Developer's 3D Toolkit and Open GL. Publisthed in ACM Crossroads Magazine.

Rules




© 2008 Internet Explorer 5+ or Netscape 6+

Recommended Sites: 1. Arts - Business - Computers - Games - Health - Home - Kids and Teens - News - Recreation - Reference - Regional - Science - Shopping - Society - Sports - World Miss Gallery - Top Anime Hentai - DVD rental by mail - Electricity - Cheap Car Insurance - Web Advertising - 2008 NFL Draft Information - MPAA
2008-10-07 19:22:12

Copyright 2005, 2006 by Webmaster
Websites is cool :) 219Albergo Brescia - Hotel Goteborg - Albergo Klagenfurt - Hostessy Warszawa Poznań - Zaune