home search site map
         
         
         
         

{short description of image}

With the continual increase in power and performance of PCs, animation techniques are becoming more and more important for developers to enhance their graphics applications. What are GINO's capabilities regarding real-time graphics and animation and how do I use them?

  • GINO has supported OpenGL graphics for some years now, which provides much faster graphics than GDI and is essential for nearly all types of animation. Assuming that you already have an OpenGL graphics card, the first GINO requirement is to use one of the 3D device-drivers:
    • If using GINO under Windows, use the gWogl() family of drivers
    • If using GINO under Linux use the gGlx() family of drivers.
    • If your application is based on using GINOMENU then you need to use a graphics frame with gmFrameType=GOPENGL
  • Objects that are to be animated should be stored in segments. GINO has always had segment storage facilities and OpenGL cards use segment-storage for retaining objects in memory, so this will keep the performance at the maximum level.
  • Double-buffering should be used where possible to speed up drawing and frame switching:
    • Calling gStartBatchUpdate() at the beginning of a segment will stop any further drawing going to the visible display surface and will only be sent to the backing-store.
    • Calling gEndBatchUpdate() at the end of a segment will then copy the backing store to the display surface usually resulting in a much faster display time.
  • For 2D and 3D animation, GINO's full transformation and matrix-handling functionality is used to create the animation sequence either by segment transformations or use of the viewing functions to alter object position, projection or eye point.

GINOSURF

  • One of the most popular uses of animation is using GINOSURF for viewing 3D surfaces. GINOSURF by nature contains its own 3D viewing capabilities, however for maximum performance and flexibility, these can be turned off using gsSetSurf3D() so that all 3D data is directed through to GINO and GINO's OpenGL device-driver.
  • The other use of gsSetSurf3D() is for GINOSURF to use GINO's facet drawing facilities instead of basic polygons. Once this has been done, GINO's lighting and shading can be applied to the surface to give a much better appearance to the drawing.
  • Again, once the surface has been defined within a segment and with the above settings, it can then be rotated in real-time simply by looping through a sequence of calls to a GINO viewing routine such as gViewRotate().

When using OpenGL, there are guidelines to take into account when trying to achieve maximum performance. These are detailed here together with further information on using GINO and OpenGL

DEMONSTRATION PROGRAMS

There are a number of GINO demonstration programs that show off animation and OpenGL drawing and these are supplied with a new licence or with an evaluation copy. They include the following:

 ginoex10  gino  3D colour-shaded bottles with rotation controlled by mouse-movement.
 ginoex11  gino   Representation of the Moon rotating around the Earth, both rotating around the Sun.
  room3D  ginomenu  A Corridor that can be rendered in wire-frame, flat-shading, gouraud-shaded or Textured with the eye-point being controlled by mouse or arrow-keys and further control given over light sources and fog.
 bottle  ginomenu  3D bottle designer using bezier curves to describe the outline, then 3D rotation to finish the shape
 fan  ginomenu/ginomenu studio   desk fan designed using Bezier Volumes and Ruled Bezier Surfaces. The blades of the fan are stored in a separate segment and the user can control the speed of blade rotation.
 designer  ginomenu/ginomenu studio  3D general-purpose drawing program allowing the placement of 3D objects such as boxes, cones, cylinders and spheres, altering their properites such as size, position, angle and complexity and allowing the objects to be coloured or overlayed with a texture bitmap read in from a file.
 solarsystem  ginomenu/ginomenu studio  3D diagram of the solar system, allowing the user to pan and zoom throughout space, seeing the orbits of each planet.
 surfview  ginomenu/ginomenu studio  Surface display program allowing the reading in of a XYZ datafile, displaying it as a wireframe, shaded or contoured surface, then allowing the user to rotate or zoom.
 snooker  gino - delphi only  Representation of a snooker table with user controls for rotating and zooming
 surfacelighting  ginosurf - delphi only  Surface displayed with OpenGL lighting and shading with user controls for rotating and zooming
 facet  gino - visualbasic only  Colour-shaded facet with rotate and zoom controlled by mouse movement
 openGlsurface  ginosurf - visualbasic / C++.NET  3D surface with user control over rotating and zooming
 humber  CD demo  3D scene of Humber bridge with fly-through viewing controlled by arrow-keys
GINOSURF animation Animated fan using VISI Flow from Vero Software