I’d like to get a discussion going on the use of rendering APIs.
Here’s some bg: I started looking for an OpenGL rendering framework/API for a CAD/FEM app about 6 months ago. I found the obvious choices: Hoops3D (too expensive), TGS (Open Inventor), Coin3D (Open Inventor) and OpenCascade. I settled on Coin3D.
Before using the API I had a decent amount of experience with OpenGL in C++. What I found was that I spent as much time learning the new API and trying to get it to do things that I knew were easy to do with straight OpenGL as I would have had I just created my own in-house API from scratch. Which is what I am doing now.
The API was good for RAD so in that respect I was happy with it and I think the Coin3D package is a good Windows OI implementation. However, I had to modify almost every “node” I used in Open Inventor and some things were just not available like printing and animation for a windows environment. The API also has no direct support for “rubber band” drawing so I had to modify a node to do this using straight OpenGL calls. I’m sure Open Inventor has a lot of happy users (and I’m sure I’ll catch hell for this) but it feels antiquated to me as it lacks many things that are just not unreasonable for a user to expect in an 3D App.
Maybe I’m not using the API in the way it was intended to be used but when I think of an API I think of a piece of software that will save me time/money by making tedious things easy and difficult things possible.
Has anyone had similar experiences with current APIs? Or, does anyone know of a better API for Windows that is not super expensive (Hoops)?