Ebeid Mohammed Abd al-hadi

Faculty: Computer Engineering and Informatics

Department: Applied Mathematics and Computer Science

Speciality: Software of automated systems.

Theme of master’s work: Development of three-dimensional models based on Google API.

Scientific Supervisor (adviser):Assoc. Anoprienko A.Y. http://aanoprienko.moikrug.ru   or   http://masters.donntu.ru/anoprienko

 
 
 Materials on the topic of final work
                                                                                   Abstract
    

Introduction

What is a Google API?
The Google API stands for " Application Programmable Interface ". As it’s name implies, it is an interface that queries the Google database to help programmers in the development of their applications. At this point, it is important to remember that all of Google API are only available in beta version, which means they are mostly still in their initial trial release and that there could still be a few adjustments required to some of them, although I must honestly say that I am quite pleased with what I saw so far.By definition, Google API consist basically of specialized Web services and programs and specialized scripts that enable Internet application developers to better find and process information on the Web. In essence, Google API can be used as an added resource in their applications.
Google Earth plug-in and its JavaScript API allows you to embed Google Earth, the 3D digital world, into your web page. Using the API you can use the markers and lines, drape images over the terrain, add 3D-models, or to download KML, which allows to build a sophisticated 3D map applications. If you already have a Maps API site, you can 3D-enable your page as a single line of code.
How can Google API be used effectively?
In the real world, application programmers, developers and integrators write software programs that can connect remotely to the Google API. All data communications are executed via the " Simple Object Access Protocol " (SOAP), which is a Web services standards as defined by the industry. The SOAP protocol is an XML-based technology meant to easily exchange information entered into a Web application.Google’s API can better assist developers in easily accessing Google's web search database, empowering them in developing software that can query billions of Web documents, constantly refreshed by Google’s automated crawlers. Programmers can initiate search queries to Google's vast index of more than three billion pages and have results delivered to them as structured data that is simple to analyse and work with.Additionally, Google API can seamlessly access data in the Google cache, while at the same time provide checking in the spelling of words. Google API will in fact implement the standardized search syntax used on many of Google’s search properties. Use of Google API in the real world.
                              

                                                                          Map Google API Shows the Pyramids of Egypt        


Topical issue
 

How to create three-dimensional models?

We can create a 3D model by more programs, but for creating a 3D model for Google earth we prefer Google SketchUp. It's a very powerful.
Google SketchUp is a free, easy-to-learn 3D-modeling program with a few simple tools to let you create 3D models of houses, sheds, decks, home additions, woodworking projects, and even space ships. You can add details, textures, and glass to your models, and design with dimensional accuracy. You can place your finished models in Google Earth, share them with others by posting them to the 3D Warehouse, or print hard copies. Google SketchUp is a great way to discover if 3D modeling is right for you.
This sketch-based 3D-modeling program offers a suite of powerful drawing tools that add an intuitiveness many design programs fail to achieve. On first impression, Google SketchUp may look like it sacrificed function for simplicity, but that's not the case. Despite the extremely user-friendly interface, SketchUp offers a suite of powerful 3D-drawing tools that let you experiment and play with new designs.Using basic shapes in 3D space for your outline, you can then extrude those shapes to make buildings, houses, or really anything. There are actually a number of methods to build models and they're all covered by an excellent tutorial when you get started. You can pick from a number of true-to-life textures to simulate wood, concrete, grass, and several others. When your model is finished, you can save and print it, or you can even see it on a real map in Google Earth.We really like how easy it is to create models using this program and recommend it to anyone from the hobbyist, for experimentation and fun, to the professional, who can use this app for preliminary concepts for larger projects.

 

Creating 3D models

Google SketchUp is a tool for creating, editing and sharing 3D models. The SketchUp "secret sauce" is a unique set of powerful tools that are designed to be easy to learn and use.
 
Features 
 
Edges and Faces : Thats all there is to it
Every SketchUp model is made up of just two things: edges and faces. Edges are straight lines, and faces are the 2D shapes that are created when several edges form a flat loop. For example, a rectangular face is bound by four edges that are connected together at right angles. To build models in SketchUp, you draw edges and faces using a few simple tools that you can learn in a small amount of time. It's as simple as that.
 
Push/Pull: Quickly go from 2D to 3D
Extrude any flat surface into a three-dimensional form with SketchUp's patented Push/Pull tool. Just click to start extruding, move your mouse, and click again to stop. You can Push/Pull a rectangle into a box. Or draw the outline of a staircase and Push/Pull it into 3D. Want to make a window? Push/Pull a hole through your wall. SketchUp is known for being easy to use, and Push/Pull is the reason why.
 
Accurate measurements : Work with precision
SketchUp is great for working fast and loose in 3D, but it's more than just a fancy electronic pencil. Because you're working on a computer, everything you create in SketchUp has a precise dimension.
When you're ready, you can build models that are as accurate as you need them to be. If you want, you can print scaled views of your model, and if you have SketchUp Pro, you can even export your geometry into other programs like AutoCAD and 3ds MAX.
 
Follow Me: Create complex extrusions and lathed forms
You use SketchUp's innovative, do-everything Follow Me tool to create 3D forms by extruding 2D surfaces along predetermined paths. Model a bent pipe by extruding a circle along an L-shaped line. Create a bottle by drawing half of its outline, then using Follow Me to sweep it around a circle. You can even use Follow Me to round off (fillet) edges on things like handrails, furniture and electronic gadgets.
 
Paint Bucket: Apply colors and textures
You can use SketchUp's Paint Bucket tool to paint your model with materials like colors and textures.
 
Groups and Components: Build smarter models
By " sticking together " parts of the geometry in your model to make Groups, you can create sub-objects that are easier to move, copy and hide. Components are a lot like Groups, but with a handy twist: copies of Components are related together, so changes you make to one are automatically reflected in all the others. Windows, doors, trees, chairs and millions of other things benefit from this behavior.
 
Shadows: Perform shade studies and add realism
SketchUp's powerful, real-time Shadow Engine lets you perform accurate shade studies on your models.
 
Sections: See inside your models
You can use SketchUp's interactive Sections feature to temporarily cut away parts of your design, enabling you to look inside. You can use Sections to create orthographic views (like floorplans), to export geometry to CAD programs using SketchUp Pro, or just to get a better view of your model while you're working on it. Section Planes can be moved, rotated and even animated using SketchUp's Scenes feature.
 
Scenes: Save views and create animations
We created Scenes to enable you to easily save precise views of your model so you can come back to them later. Need to create an animation? Just create a few Scenes and click a button.
 
Look around and Walk: Explore your creations firsthand
SketchUp lets you get inside your model with a set of simple navigation tools designed to give you a first-person view. Click with Position Camera to "be standing" anywhere in your model. Use Look Around to turn your virtual head. Finally, switch to Walk to explore your creation on foot; you can even climb and descend stairs and ramps, just like you're playing a video game.
 
Dimensions and Labels: Add information to your designs
You can use the super-intuitive Dimension and Label tools to add dimensions, annotations and other glorious detail to your work.
 
The Instructor: Catch on quickly
SketchUp's Instructor dialog box, which you can choose to activate at any time, provides context-sensitive help.
 
Layers and the Outliner: Stay organized
When you're building a big, complicated model, things can get messy very quickly. SketchUp provides two useful ways to keep your geometry manageable.
 
Google Earth: See your models in context
SketchUp and Google Earth are part of the same product family, meaning you can exchange information between them easily. Need a building site for your project? Import a scaled aerial photograph, including topography, directly from Google Earth to SketchUp by clicking one button.
Want to see your SketchUp model in context in Google Earth? Click another button, and you can. Anyone can use SketchUp to build models which can be seen by anyone in Google Earth.
 
Sandbox tools: Work on terrain
SketchUp's Sandbox tools let you create, optimize and alter 3D terrain. You can generate a smooth landscape from a set of imported contour lines, add berms and valleys for runoff, and create a building pad and driveway.
 
3D Warehouse: Find models of almost anything you need
The Google 3D Warehouse is a huge, online repository of 3D models which you can search through when you need something. Why build something when you can download it for free?
 
Import DXF, DWG and 3DS: Get a headstart on your modeling
You can import DXF, DWG and 3DS files directly into your SketchUp models, which makes it very easy to start with drawings and even other 3D models. Have a floorplan of the space you need to model? Import it in, and start building right on top of it.
 
Import images: Paint walls with photos
With SketchUp, you can import image files like JPGs, TIFFs, PNGs and PDFs. You can use them by themselves (kind of like posters), but you can also stick them to surfaces to create photo-realistic models of buildings, package designs, and more.
 
Export TIFF, JPEG and PNG
SketchUp lets you export raster images up to 10 000 pixels square, so generating an image which you can send in an email, publish in a document, or project on a wall is as easy as choosing a few options and clicking Export.
 
               
                                                            Three-dimensional model of pyramids and sphinx
 
Using API Google earth for 3D models.
 
History - Four Generations of 3D APIs
The steady advance in hardware technology has facilitated the development of a number of 3D APIs and standards. In the mid-seventies a growing awareness of the need for graphics standards led to the first generation of 3D APIs such as Core
(short for, 3D Core Graphics System), produced by an ACM SIGGRAPH Committee in 1977. The 2D component of Core was later expanded and cleaned up to be the first officially standardised graphics specification called the
Graphical Kernel System (GKS)(Foley, 1996).
During the early eighties, several 3D API standards were developed to cater for the newly emerging workstations. These second generation APIs allowed for networking and basic hardware acceleration (Mohan, 1998). Two of these APIs
were later standardised in 1988; GKS-3D and a far more sophisticated and complex system called the Programmer’s Hierarchical Interface Graphics System (PHIGS).
As the name suggests PHIGS supports nested hierarchical groupings of 3D primitives called structures (Foley, 1996). These groupings, referred to as display lists, have the advantage of only having to describe a complex object once even if
displayed several times. This ability is especially valuable where object data to be displayed must be transmitted via a low bandwidth network. One disadvantage of the display list is the difficulty in re-specifying an object if it is continuously being updated due to user interaction (Segal, 1994).
The latest incarnation of PHIGS is PHIGS+ which is designed with an additional set of features for modern, pseudorealistic rendering of objects on raster display systems (Foley, 1996).
However, a major drawback on all these APIs is that they lack support for a number of the more advanced rendering features such as texture mapping (Segal, 1994).
Another API released around this time was PEX, which is an extension to the X Windows system, used for manipulating and drawing 3D objects. While it is based on PHIGS, PEX allows for immediate mode rendering. This means that objects are displayed as they are described rather than first having to complete a display list.
While PEX does not support advanced rendering features and is only available to X windows users, its methods used to describe and render objects are similar to those provided by OpenGL (Segal, 1996).
The late 1980s saw the release of the OpenGL standard, based on IRIS GL by Silicon Graphics. It took the high-end 3D graphics market by storm.
Like PEX before it, OpenGL offered immediate mode graphics along with enhanced lighting capabilities and advanced features like texture mapping and antialiasing (Mohan,1998). OpenGL also allowed for hardware acceleration if the hardware supported
the precision conformance requirements. This, however, tended to be high-priced hardware (until recently when cheaper OpenGL supported hardware has become available) and so OpenGL tended to be more directed towards CAD and CAE workstations (Microsoft, 1995).
The low-priced, PC market had relied on 2.5D (3D in appearance but using 2D techniques like Doom and Hexen) and basic 3D (like Ultima Underworld) DOS based graphics engines for games (De Goes, 1996). With the advent of Windows
95, Microsoft also released DirectX which included Direct3D with the goal of producing an API that was aimed at providing most of the advanced features of OpenGL specifically for the 3D gaming environment (Microsoft, 1995). Initially, the API was a poor imitation that was limited and difficult to use.
Unlike OpenGL though, it has been repeatedly revised and been a lot more innovative in the introduction of new features (anon (a), 1999).
Most recently a fourth generation of APIs has begun to emerge using scenegraph- based systems. This flexible tree structure is similar to the display list techniques used in PHIGS and other early APIs but is much more robust.
The system incorporates a number of previous ideas such as back- facing polygon removal and BSP trees. These new APIs include extensions to existing APIs such as OpenGL Optimizer by SGI and Fahrenheit by Microsoft.
One problem with these APIs is that the programmer still needs some understanding of the underlying low- level API. However, one completely new API in this group is Java 3D and because it was built using the scene-graph-based system from the outset, it does not require as steep a learning curve, allowing new users easy access into the 3D-development environment (Mohan, 1998).
 
API Requirements
 
There are a number of fundamental considerations for interactive 3D graphics APIs to address. To render a 3D scene of only modest complexity requires numerous calculations and when used in an interactive application must do this several times per second. Therefore, the API would ideally need to be able to access the capabilities of the graphics hardware (Segal, 1994).
The interface should also provide versatility in the form of allowing the programmer to switch on or off the various rendering features. This allows the programmer to tailor the application’s performance to the system it is running on. It also means that during times of high interactive rates, such as adjusting the camera position, performance-degrading combinations of features can be switched off. The camera can then be moved without loss of performance and the viewer will not notice the decrease in detail on a moving image. When the movement is complete the features can be switched back on for the final frame (Segal, 1994).
All APIs come with a large array of functions in their library. Therefore, the functions in each of the APIs discussed in this paper will be divided into six groups according to their functionality:
1. The primitive functions, which define low-level or atomic entities that can be displayed.
2. Attribute functions that allow operations to be performed on those objects such as colour, shading and texturing.
3. Viewing functions that the API provides such as positioning, orienting and selecting the equivalent of a lens.
4. The types of transformation functions available for the programmer to manipulate objects.
5. What input functions are provided, allowing versatility with various external devices.
6. The control functions that allow us to be able to work in a multi-processing, multi- window and networked environment along with  
      initialisation and error handling functions.
 

 
      Ëèòåðàòóðà  
     -   http://www.rankforsales.com/google-api-s-and-their-uses.html
           The Google API's and their uses
     -  http://download.cnet.com/Google-SketchUp/3000-6677_4-10257337.html
           Publisher's description of Google SketchUp, 3D models made simple
     -  http://www.4all2all.net/2008/11/google-sketchup-creating-3d-models.html
           Google SkechUp - creating 3D models
     -   http://uob-community.ballarat.edu.au/~rdazeley/Papers/SelfStudy.pdf
           3D APIs in Interactive Real-Time Systems: Comparison of OpenGL, Direct3D and Java3D.
           Written by: Richard Dazeley , Supervised by: Peter Vamplew
     -    http://earthurl.org/#0sv-2Fm3h-FAyjBu4FwtB-gH
           earthurl.org