[prog] General purpose 3d graphics engine

Miriam English mim at miriam-english.org
Sun Feb 1 19:48:10 UTC 2009


Hi Helga,

I have done a lot of 3d programming in the past.

VRML/X3D http://www.web3d.org/
--------
For a long time VRML (now called X3D) seemed like the best choice. It 
was an open language specification that had a number of implementations, 
some even on Linux. Unfortunately the community went through some 
schisms and it hasn't really kept up with modern 3d technology. VRML was 
always aimed largely at the web. Its ability to show 3d worlds inside 
standard web browsers was one of its greatest assets, but is one of the 
things that has repeatedly tripped it up. Web browsers chew up a lot of 
cpu power and they change in unpredictable ways. Old VRML viewers no 
longer work inside some "modern" browsers, and never worked in all of 
their day. Many VRML programs now provide standalone viewers. There are 
two, imperfect, solutions for Linux:
FreeWrl http://freewrl.sourceforge.net/
OpenVRML http://openvrml.sourceforge.net/
Also there is a platform-independent effort to use OpenGL from within 
python. pyOpenGL http://pyopengl.sourceforge.net/ which includes the 
ability to read VRML files. Unfortunately I've had only limited luck 
using it on Linux. It worked well on MSWindows, especially when I ran 
PyODE for physics simulations, but I was never able to compile the ODE 
library on Linux. I've become a little interested in the Bullet physics 
engine and may try it instead...

Blender http://www.blender.org/
-------
Blender began as a brilliant commercial program which got into financial 
trouble. Its programmers and users got together and bought the company. 
It is now a major success and one of the best 3d solutions you can find. 
It is free and open source, and backed by an enthusiastic community. Its 
only drawback (to my way of thinking) is that it doesn't use a 
human-readable language as its file-format, but given its incredible 
flexibility that is not much of a problem. You can specify almost every 
aspect of the program using python because it has hooks into the deepest 
parts of the program. Blender has advanced character animation, 
texturing, lighting, and physics that many other programs just dream of. 
All this in something that is a free download and designed largely for 
Linux is just wonderful. I bought Lightwave some years ago which cost me 
an arm and a leg. Blender now makes that old version of Lightwave look 
pathetic. Blender comes with a player program that lets you distribute 
your 3D animations without people needing to install Blender. Many 3D 
people will advise you that Blender has a weird interface and is 
difficult to learn. While this is true, it is also true of every 3D 
program ever made. If someone thinks some 3D program is intuitive it is 
simply because they have already learned how to use it and it NOW seems 
natural to them. Real-time playback is the fastest and most efficient 
I've seen.

POV-Ray http://www.povray.org/
-------
POV-Ray is another free, open source 3D program that began back in the 
80s, before the open source movement had a name. It has been ported to 
virtually every operating system in existence, including, of course, 
Linux. POV-Ray is not a real-time 3D program. It began as simply a way 
to create photographic-looking renders of 3D worlds. It uses its own 
human-readable scene-description language which makes it both cumbersome 
and unbelievably powerful. It lets you write a simple text file 
containing a few recursive formulas to generate entire mountainous 
landscapes and populate them with trees. Ages ago some effort was put 
into generating animations with POV-Ray and it became a standard part of 
the program, but POV-Ray's animations are generated offline. That is, 
the frames are generated one by one and accumulated to be played back 
later as a movie. Depending on the complexity of a scene, each frame can 
take anywhere from a couple of seconds to many hours. It is not terribly 
unusual for an entry to the POV-Ray Competition to take perhaps a week 
or two to render a single frame. POV-Ray concentrates on using the 
mathematics of reality to model how something genuinely looks. Recently 
people have been working more on the animation side and POV-Ray now has 
some physics capabilities though I think this is only in the MegaPOV 
fork http://megapov.inetart.net also I remember some folks were working 
on a realtime view setting for POV-Ray but I've been out of the loop for 
about a year so I don't know what has happened there.

Let me know if I can help more.

Best wishes,

	- Miriam


Tauscher wrote:
> Hi,
> 
> I'm looking for some advice regarding a general purpose free and open source 3d graphics engine. After doing some research, I found out, that there are some scenegraph APIs on top of OpenGL. Thought this is not Linux specific, I hope someone here has experience in that area and can give hints to me which one to choose.
> 
> My research area is where computer science and architecture / civil engineering overlap. But I'm also interested in 3d video art and more fun stuff like small games. I started 3d programming through the scripting APIs of common 3d modelling and cad tools and went on experimenting with 3d cellular automata, shape grammars and stuff like that using python and the computer graphics kit (cgkit).
> 
> Now I want to switch to some more robust and perhaps language independent - that way learning another language (e.g. java) while using the same graphics engine could be very easy or also porting a scripted experiment to an executable solution. I have found that the main scene graph APIs (Open Scene Graph, Ogre and Open Inventor / Coin3D) mostly are C/C++ libraries, but all have different language bindings. These bindings are maintained to a different extent, e.g. pivy for Coin3D (a swig based python binding) doesn't seem to be developed any more. But perhaps this could also be a possibility to jump in and contribute to the community. Beside these wellknown engines there are also a lot of smaller unknown ones.
> 
> I would be very happy about any hint, also about pointing out other criteria for choosing the right library.
> 
> Thanks a lot.
> 
> Helga
> 
> _______________________________________________
> Programming mailing list
> Programming at linuxchix.org
> http://mailman.linuxchix.org/mailman/listinfo/programming
> 
> 

-- 
My time wasn't completely wasted last year.
I went on a 940 million kilometer journey.
-----
Website: http://miriam-english.org
Blog: http://miriam_e.livejournal.com


More information about the Programming mailing list