[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