[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

K3D some early impressions.




As you may know, I've been looking into the K3D modeller which runs on
both Linux and Windoze, is GPL'ed, and seems pretty much like a finished
product.

On the face of it, that's a unique combination of things that makes it
attractive compared to the Linux alternatives:

  AC3D    - costs $40, crashes a lot, no sources - what I use because
            I don't have a choice.
  PPE     - not finished *yet* - but otherwise ideal.
  Blender - incomprehensible to maybe 60% of it's potential
            audience *loved* by the other 40%.  No source code.

So, here are my impressions of K3D after just a couple of days of use
and from the perspective of someone who wants to build models for realtime
use - rather than raytracing or some such non-realtime activity.

------------------------------------------------------------------------

I grabbed a copy of K3D, I also needed to upgrade GLIB and GTK (it needs
pretty recent versions of both) - and *much* later discovered that I needed
to install a package called 'NetPBM' which contains a bunch of image file
format convertors.

Installation was a problem - they link to OpenGL but don't link to '-lpthread'
- which can sometimes provoke a linker bug - when I nailed that one, it built
flawlessly.  Author is now aware of this - so it should be fixed soon.  If
you need the work-around, let me know.

K3D has a really cute tutorial scheme - so it's easy to run through some
demo's and pick up the basics of the system quite quickly.  However, the
only other significant user documentation is quite out of data and certainly
didn't help me.

K3D is built as a simple core with plugins doing all the actual work - so
it's naturally extensible in both C++ and (I believe) Python.  There isn't
too much documentation on the API - but since there's source code, there
are LOTS of examples!

The K3D modeller looks somewhat like PrettyPoly in that it has a single
fully rendered 3D/perspective window - with the option to open additional
views with other camera angles.  Hence you can emulate the 'traditional'
Top+Side+Front+3D modellers using four appropriately set camera views.

To build something, you'll basically be using it's rich set of basic
primitives (sphere, cube, cone, cylinder, etc) and applying various
operators to them.  There is a mechanism to build single polygons too,
but that's clearly not intended to be the main way to work since it's
quite a lot of mouse strokes to build each one.

The selection mechanism is pretty standard, there is a hierarchical view
of the model as well as the graphical view.

Applying colours and textures is a bit painful.  For each colour and/or
texture combination, you have to create a 'material' in the sense of a
fully programmable, monumentally complex RenderMan shader model.  That's
OK for doing texturing - but it's a pain if you just want a cube with
a different colour for each facet.

I the is no mechanism to set colours per-vertex (grrr) - and even more
seriously (for game modellers), no way to position texture exactly how
you want it.

Texture application is "interesting" - it doesn't seem to be possible to
easily adjust the precise positioning of the texture on the model - but
there are a rich set of texture projection methods to apply it in the
first place.  That may turn out to be a fatal flaw.

Right now, the tool loads and saves in either '.OBJ' (Wavefront) or
it's own XML-based format.  I tried feeding it OBJ files made in other
tools - and also importing K3D's OBJ files into other tools - and without
exception, the result was an unholy mess.  Plan on writing an XML parser
if you want to use K3D...fortunately, the *one* good feature of XML is
that this tends to be reasonably easy.

K3D has a comprehensive multi-level UNDO and REDO.

The project is obviously being actively developed - one small improvement
I mentioned to the author is already in the CVS version.

Conclusion:
~~~~~~~~~~~

  It's certainly a useful modeller - on a par or somewhat better than AC3D.
It has a couple of serious flaws for game-modelling - but so do all of the
alternatives right now.  At least this one is GPL'ed so you can (in principal)
fix it.

  Should this be cause to abandon PrettyPoly?  Well...we should discuss that...
K3D seems to have hit all of the objectives of PPE.  I'd like to prod around
inside K3D for a while and see how easy it actually is to interface to K3D's
internals.  Certainly K3D would benefit greatly from some of the ideas in PPE.

----------------------------- Steve Baker -------------------------------
HomeMail : <sjbaker1@airmail.net>   WorkMail: <sjbaker@link.com>
HomePage : http://web2.airmail.net/sjbaker1
Projects : http://plib.sf.net     http://tuxaqfh.sf.net  http://tuxkart.sf.net
           http://agtoys.sf.net   http://prettypoly.sf.net
           http://freeglut.sf.net http://toobular.sf.net