|
It "feels" like Sun is not committed to making
Java3d a true alternative to other 3d libraries. Why do I say this?
Because you can do so much with Java3d, but when it comes to that final 10
percent, the difference between a product and an intellectual experiment, the
contraints around the implementation stop you.
What are these things:
1) Predictibility : You can't make a product if you
can't write predictible code. The behaviors in Java3d are completely
unpredicable. We all know the saying, use the WakeUpWhenIDarnWellPlease()
behaviors. I just can't figure out the reason why such a wonderful
behavior mechanism is so broken. Not only that, but broken by
DESIGN. Sun actually defends this.
2) Transparencies. Now this still stymies
me. Yes I know the issues and the reasons behind the problems. But
if every single project has to write massive code to continuously sort its
geometries so that the alpha blended shapes are ordered correctly then there is
something wrong. This is something you have to do in opengl, which makes
sense, because it is a low level API. Java3d is a high level
abstraction. A scene graph does not lend itself to perform this nasty
sorting problem. It makes sense that Java3d should solve this problem "in
the general case" and let people override it if it does not meet their
needs.
3) User Interface: Yes I will continue to
harp on this. If Java3d is to be a world class 3d library then they need
to wake up and realize that there is more to 3d than scientific
visualization. Yes I'm talking about games. Games are a huge part of
the 3d world, and almost every innovation in 3d in the last 5 years has been a
direct result of games. Many of us here are working in that arena and find
ourselves having to jump through hoops to produce expected and normal interfaces
to Java3d. A FAST and reliable 2d interface on top of the canvas3d
would be a big step in the right direction.
4) Bug fixes: There are a lot of serious bugs
in the current release. Bugs that can stop a project cold. The
rumors are that the Java3d team has been spending a lot of time porting Java3d
to the platforms of new "technology partners". I don't know if this is
true, but I have read the message board archive history, only to see people have
raised some of these same issues 2 years ago.
5) Technical support: Some of the Sun
engineers do respond every once in a while on this board. But usually it
is to ask us to take time to write a test program to demonstrate a bug, not to
help people solve problems. While the other users are very helpful on this
board, it would go a LONG way to secure Java3d's future to have someone
fulltime at Sun monitor this board and answer technical questions. Every
once in a while they drop some exciting little tidbit about how the engine
works, information desperately needed by all of us.
6) Documentation: Funny, there sure is a lot of it,
but for some reason it "seems" largely unhelpful. I am not sure why.
I can't nail this one down, but all I know is that there are a lot of things
that are learned the hard way or passed down as "lore" on this
board.
7) Marketing: Given that similar strength libraries
which are platform and API dependent can cost $250,000 and up, it is amazing to
me that Java3d is still a practically unknown library out there in the
world. It is truely unique and has the capability of being a big part of
the future of 3d programming. This becomes more true as Java speed issues
melt away in the face of ever increasing CPU speeds and JIT compiling.
Given the time-to-market for a Java3d program can be sugnificantly faster than
an openGL C++ program, I can easily see Java3d becoming a premier player... if
Sun really gets committed to it. If all Sun sees is scientific
visualization and educational uses then Java3d is doomed to be relegated to a
footnote. People come to this site and say "where can I see what this
product can really do?" People point them to the demos and a few user
submitted hacks, (no offense, but the examples under collateral do not show how
Java3d can really shine. I am sure the authors would agree). I
suggest that Sun have a full time engineer build a sexy, sweet demo that
really shows what Java3d is capable of. ( a new engineer, not one that should be
fixing bugs) On an aside, it is the agreement of my development group that
our client application be released as open source some time in the future.
Perhaps some of you might consider such a course, should your various legal and
competative obligations permit.
8) Interfaces : Ok now....what is up with this
total lack of loaders? Sheesh, please employ some college grad right out of
school to sit down and write loaders for EVERY major file format. Complete
loaders that handle normals, materials, grouping, lighting, etc. Its a
crippling blow to Java3d. Half the newbies who come to this board ask, how
can I get XXXX models into Java3d. "Write your own loader" generally sends
them screaming. And how many of those people could have represented
serious companies looking for a solution? The OBJ loader, written by Sun,
is quite good. Goes to show how people on the "inside" can do a good job,
but please apply that skill to the half dozen popular model
formats.
9) Open Source: Something to consider is to
release the source code as open source and let us fix all the bugs (heh).
I think there are lots of evidence to support how effective this is. Sun
could pick and choose what changes and fixes whould be folded back into the main
source tree, so there is no lack of control. While I agree that in the
past this would have been premature, perhaps now is the time to reconsider that
option.
Well there are many other issues along this line, I
would be interested to hear from everyone on this topic. I am pretty sure
we represent the core group of current Java3d projects underway. Your
input might help Sun to focus their efforts.
Last Thought:
Sun is an amazing company. Personally I
consider the work they have done to have revolutionized the entire software
industry. The number of their products is staggering, innovative and
sorely needed in this industry. I assume somewhere the marketing strategy
is to sell more sun workstations, although I have never seen how so many
"free" products could have offset their bottem line. It certainly has
turned Sun from a "workstation" company into a dominant force in the world of
technology. Many of thier products are for sale, some acquired, some home
built. (IPlanet is a good example of a awsome move on their part). I
think many developers using Sun's "free" technologies (Java, Java2d, Java2d,
etc) are stuck between a feeling of awe, respect and admiration for a companty
willing to invest so much into creating technologies, and a feeling that as free
software, you get what you pay for. Would I rather pay for Java3d so that
I could demand production quality support? Well no, because personally I am
pretty sure I could never afford it :) (take a look at the cost of IPlanet
+ Support if you want to realize the cost of licensing technologies like this)
So the basic question is this, is Sun committed to these "free" technologies or
not? If they arn't committed then why make them? Its like dangling a
feast in front of a starving man then feeding it to him one speck at a
time. I bet the Java3d team is completely committed in a personal
way. If anything I bet the "fringe" Sun libraries are just not given the
resources to be all they can be. Hopefully in the future this will
change.
For all I know, you will all think I am way out of line here. Be
greatful David, you may be thinking. Well I am greatful. I love
Java3d, and have staked the success of a huge project on the technology.
My passionate words are only because I want to see this technology flourish and
to see my team's project successfull.
Dave Yazel
|
- [JAVA3D] Behavior and Render thread synchronization problem Shawn Kendall
- Re: [JAVA3D] Behavior and Render thread synchronizatio... David
- Re: [JAVA3D] Behavior and Render thread synchroniz... Shawn Kendall
- Re: [JAVA3D] Behavior and Render thread synchroniz... Shawn Kendall
- Re: [JAVA3D] Java3d issues David
- Re: [JAVA3D] Java3d issues Shawn Kendall
- Re: [JAVA3D] Java3d issues Justin Couch
- Re: [JAVA3D] Java3d issues Neil Henderson
- Re: [JAVA3D] Java3d issues David
- Re: [JAVA3D] Java3d issues Justin Couch
- Re: [JAVA3D] Java3d issues Shawn Kendall
- Re: [JAVA3D] Java3d issues David
- Re: [JAVA3D] Java3d issues Justin Couch
- Re: [JAVA3D] Java3d issues Shawn Kendall
