ePlaice / For the Best Software on the Net

Mainly Free and Open Source Software

Graphics Navigation

Axiom Game Engine | DirectX and Brume Game Engine | OpenGL Tao Framework | Bezier Curves | Bifurcation Diagram | Lorenz Attractor |

Valid XHTML 1.1

Latest news

01 Apr 2008: Inkscape 0.46 has been released with major functional improvements.

07 Jun 2007: GLEE version 1.2 has been released with new Aspect ratio feature and some bug fixes.

17 Jan 2008: Stellarium version 0.91 has been released with improved startup and stability. Now runs very smoothly under Windows XP

26 Jan 2008: Horde3D SDK [0.14.0] released

Links:

Graphics

Inkscape

Here are some ideas for using graphics for either educational, hobby usage or anywhere you need to carry out very intensive computational activity. Note this section only deals with vector graphics; raster graphics are covered under the Photo section. Even so, this covers a very broad area and so this can only skim the surface of what is out there.

Some of the categorisations are as follows :-
Vertices and Nodes Graphics,
Drawing (Diagrams, Flowcharts)
Plotting 2D and 3D functions,
Geometric Design

2D Vector Drawing

The scope of 2D Vector Graphics is quite vast and therefore it may well be worthwhile having a look at some other offerings which could provide easier solutions for particular types of problems. Both of the following are free to use for non-commercial organisations and each has its own individual style.

Inkscape

The latest release of Inkscape is also a tremendous addition to the range of free and open vector drawing packages. Why would you pay for a product when there are such good open source products available? This uses SVG and compressed SVGZ as the standard format for vector graphics and supports the normal jpg etc. for raster images. The later releases now support layers but still does not seem to provide a good range of connectors with arrows. However, I suspect the main focus is on Vector drawing (as opposed to diagramming) and here Inkscape does an excellent job. A link to the Open Clip Art Library from the Inkscape website takes you to a large and growing collection of public domain clipart providing an excellent start when building up your own library. The new version 0.46 (currently at pre-release) also features a new method of saving SVG files in XAML format and also has the ability to read XAML files directly. This is a tremendous improvement if you are choosing like me to standardise on XAML because of Silverlight and WPF. It means that you now are able to work with one of the best Vector Drawing packages without having to buy any of the expensive Microsoft WPF drawing tools. This new release of Inkscape has several other major new additions which I will be looking at later. I don't normally like having too many beta and pre-release versions running on my machine but in this case I reckon it's worth making an exception.The following are new features in the 0.46 release :-
* Paintbucket tool
* Tweak tool
* 3D Box tool
* Live path effects
* Color management
* New SVG filters and UI
* Native PDF and AI import
* XAML import/export
* Open Clip Art Library integration (import/export)
* Stock patterns
* Bitmap editing extension effects
* Full on-canvas gradient editing
* Engraver's Toolbox in the Calligraphic tool
* Touch selection
* Dockable dialogs
* Command-line access to verbs
* Snapping made usable
* "3D" / axonometric grid
* Angled guidelines
* Conversion of objects to guidelines
* Significant speed and interactivity improvements
* Hundreds of smaller features and bugfixes

Effects Using Python

Inkscape uses the Python scripting language for some of the effects. You do not need to install Python separately as the default installation already includes the Python executable and necessary DLLs. As an example you can use a Python effect to create an L-System - all very clever.

GTK+ GUI Toolkit

Inkscape uses GTK+ Toolkit for its Graphical User Interface on Microsoft Windows. Again all the necessary libraries for a Windows installtion are complete in the download package. The use of GTK+ becomes apparent when you see the file open and save dialogs which are a different style to the usual Windows dialogs. However, the new 0.46 version definitely seems more stable than the previous version, perhaps even moreso if you have a modern dual or quad core processor.

Microsoft GLEE

Open Office and Microsoft Office provide basic drawing packages that will allow you to draw organisation trees with connectors etc. However, if you need a more specialised tool then you might want to consider Adobe Illustrator or Coreldraw, both of which have a wide following. If you liked the old Netron Project based on NET 1.1 and no longer supported, then you will probably want to try out Microsoft GLEE which comprises drawing dlls for .NET 2.0 together with some examples. This looks like it makes it really easy to create your own trees and networks. There are also a couple of examples to get you started and it is worth a visit to the website link to have a look at the examples with code.

3D Modelling / Animation Software

If you are starting out from fresh and have limited funds then there is only one application package to consider; namely Blender. I had a look at a few of the other Open Source competitors on SourceForge but after a quick trawl I decided to give Blender a go.

Blender

I installed Blender version 2.45 which downloaded to under 30 mb, so fairly low disk usage compared to some of the other modelling packages. This low resource usage is partly explained by its origins having been written in C and having its own Windows Manager. I guess the downside of this must be seen in the high maintenance overhead and the ability to release new functionality. I have to say if I could find a similar open source package in the .NET environment then this would be tempting, but then again performance would probably be a major concern. I have to say using the application is not particularly intuitive, but after a little while you get used to some of the quirky behaviour.

Python Scripts

It seems that Python is the language of choice for these type of applications. However, you have to download and install Python separately; which actually is a step forward, since previously the free version did not allow you to run scripts. Thankfully, this is all in the past and now for example you can make use of the Import and Export scripts for a number of formats, including COLLADA, 3D Studio, Direct X and MD2 to mention just a few. I used the export functionality to export a .blend file to .dae (Collada 1.4 format). I was then able to use this in the Horde 3D package for scene rendering.

3D Scene Rendering

There are two main interfaces used to program graphics applications; namely DirectX and OpenGL. Direct X is an SDK developed by Microsoft and is only available for Microsoft Operating Systems and as such it is the most widely used for commercial games. On the other hand OpenGL is an API that can be used cross platform and is reckoned to be easy to use. The following gives some packages that are open source and by coincidence happen to be based on OpenGL.

Tao Framework

Recently, I had a look at the 2.1.0 release and just the C# NET Windows libraries. There are some useful examples showing implementations of some of the Nehe lessons. I had a look at these and decided it was worthwhile revising these to make more use of the SharpDevelop environment. In particular I adapted Nehe Lesson 28 for this environment and found several interesting ways of making it work. This is aimed at the developer who wants to get in at the fairly low end of OpenGL. If you want to use C# and OpenGL, then somewehere along the way you are likely to run into Tao; in fact Axiom uses several Tao libraries in the construction of the OpenGL implementation. I had a more detailed look at Tao and even converted some of the Nehe Tutorials to run under Tao - see my Tao webpage for more details.

C# Wrapper for OpenGL

As I decided to concentrate on C#, I have been looking for alternatives to the Delphi based GLScene. So just when I had almost given up hope I came across this which was updated on 9th August 2008 called C# Wrapper for OpenGL I have only just tried out one sample in SharpDevelop and so far looks impressive. I downloaded the software and was pleased to see that one of the demos had been set up to compile with SharpDevelop 2.2 (along with Mono, MS SDK command line, MS Visual C# Express and MS Visual Studio). This worked very well on my XP system (although I did use SharpDevelop 3.0 to compile), so I am looking forward to trying out some more examples. At the moment this just acts as a wrapper to OpenGL, so you need to have a fair degree of programming competence to make use of this.

Axiom Game Engine

This is a rather heavy implementation of the Ogre C++ Game Engine, converted to C# and .NET (and I believe Mono). If this wasn't enough it caters for DirectX, OpenGL and XNA as well as being multi-platform for Windows and Linux. However, once you give it a chance it is surprisingly easy to produce good results. It also looks as this has now been giveng added impetus so that it will start to come to fruition with the full version 0.8 release. The more I use it the more this becomes my Game Engine of choice. I have only looked at this seriously in a Windows XP, DirectX mode - the OpenGL side seems a lot slower on my setup and does not produce such clean results in my experience. Linux won't have a chance with me unless Windows 7 is another flop like Vista. See my separate webpage for a more detailed impression.

Brume Game Engine

This is a C# .NET implementation using DirectX which just works on one platform. The setup and everything about it is the opposite end of the spectrum to Axiom. In fact this would suit me very well except that there doesn't seem to be much going on with the project. I like the streamlined approach and the demos which come with it - it just doesn't seem to be going anywhere. See my webpage for further details or go directly to the Brume website.

Horde3D

Along with my declining interest in Delphi I started to look for some other open source alternatives. I looked at Axiom 3D Engine, Mg3d Engine Project and Irrlicht.NET CP, but I found these all to be rather heavyweight and what's more I could not get a demo to work out of the box. This was probably down to me not having sufficent patience to work it out, but then I always found the GLScene 3D environment always had plenty of examples most of which worked first time. So eventually I came across Horde 3D which gave me many of the features I was needing. It is modern and lightweight, it does not require a Windows fix such as Gtk and the examples worked first time. It has a Windows Editor that allows you to build scenes and there were some handy tips on how to build your own scenes. Although not directly written for .NET there is a Horde 3D .NET Wrapper which I have yet to try out, but should mean that you will be able to develop in C# or any other .NET language. Also it seems that it can be integrated with Bullet Physics.

Stellarium

Stellarium is a real time sky rendering system, showing planets and deep space objects. It uses the GL open library and is absolutely free to download from either Sourceforge or the Stellarium website. The newest version 0.10.1 running under Windows XP has amazingly improved graphics and has lost a lot of the previous sluggish feel it had in previous versions. I have only tried the Windows version but there are also versions for the Mac and Linux. It is possible to customise if you have your own photographs that you wish to add. This is a marvellous application both for the amateur and professional alike.

3d Photo-Realistic

POV-Ray (Persistence of Vision) Ray Tracing program has been around for a very long time and in its latest version can produce quite realistic 3D graphics, using shading, reflections and colour.

What Does It Do?

This is cribbed from the POV-Ray Web Site. "The Persistence of Vision Ray-Tracer creates three-dimensional, photo-realistic images using a rendering technique called ray-tracing. It reads in a text file containing information describing the objects and lighting in a scene and generates an image of that scene from the view point of a camera also described in the text file. Ray-tracing is not a fast process by any means, but it produces very high quality images with realistic reflections, shading, perspective and other effects."