openGL/C/C++ or Java/3D/2D?? please advice.

openGL/C/C++ or Java/3D/2D?? please advice.

Post by mik » Sun, 09 Apr 2000 04:00:00



hi graphics experts,

i am really interested in computer graphics, imager processing and
all that. i bought computer graphics in C book and i am ready to
start coding some things to learn more.

i also noticed java has 2d and 3d API.

i'd like to ask the experts, which way should i go if i want to
get into graphics/image programming? should i study openGL or Java API?
there is so much things to learn so i need to concetrate on
the techonology and tools and library that are best.

i'd like of course that my code to be as portable as possible. any other
standard graphics library people use that are standard in the industry?

i know about qt and gtk, but those are for build GUI stuff, i am talking
more about image processing.

is it easy to get a job doing image processing and computer graphics
programming? is this a good field to specialize in? i know i really
enjoy it.

thanks for any advice.
mike

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Marcin Vorbrod » Sun, 09 Apr 2000 04:00:00


about API, man, C++ rules the earth, and so does OpenGL.

about jobs, i study computer graphisc programming in NCSU... yes, they pay
well in the field.

RE Marcin


> hi graphics experts,

> i am really interested in computer graphics, imager processing and
> all that. i bought computer graphics in C book and i am ready to
> start coding some things to learn more.

> i also noticed java has 2d and 3d API.

> i'd like to ask the experts, which way should i go if i want to
> get into graphics/image programming? should i study openGL or Java API?
> there is so much things to learn so i need to concetrate on
> the techonology and tools and library that are best.

> i'd like of course that my code to be as portable as possible. any other
> standard graphics library people use that are standard in the industry?

> i know about qt and gtk, but those are for build GUI stuff, i am talking
> more about image processing.

> is it easy to get a job doing image processing and computer graphics
> programming? is this a good field to specialize in? i know i really
> enjoy it.

> thanks for any advice.
> mike


 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Barr » Mon, 10 Apr 2000 04:00:00


Yep, OpenGL and C++ are the way to go.  If you want to broaden your
capabilites further you could look at Direct3D too, but it's a little on the
convoluted side.
 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Eduard Blo » Mon, 10 Apr 2000 04:00:00


Am 8 Apr 2000 19:00:23 -0700 schrieb/wrote/a crit

Quote:>i am really interested in computer graphics, imager processing and
>all that. i bought computer graphics in C book and i am ready to
>start coding some things to learn more.

If you want to program nice games in C and still stay portable, you
could try Allegro with the OpenGL interface (AllegroGL). There is IMHO
no need for this f***ing Direct-X, which is highly unportable.

Quote:>i also noticed java has 2d and 3d API.

Sure, but IMHO Java is still to slow for advanced game programming.

Quote:>i'd like of course that my code to be as portable as possible. any other
>standard graphics library people use that are standard in the industry?

>i know about qt and gtk, but those are for build GUI stuff, i am talking
>more about image processing.

Use Gtk. It's realy free for all platforms and there is already one
working Win32 port. The better, POSIX-complian port should be available
very soon, Gtk-1.4 will probably include the Win32-port by default.

Quote:>is it easy to get a job doing image processing and computer graphics
>programming? is this a good field to specialize in? i know i really

Try Allegro, http://sunsite.auc.dk/allegro/

Greetings,
Eduard.
--
=====================================================================

0xEDF008C5(gpg): E6EB 98E2 B885 8FF0 6C04  5C1D E106 481E EDF0 08C5

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by mitc » Mon, 10 Apr 2000 04:00:00



Quote:

>>i also noticed java has 2d and 3d API.

>Sure, but IMHO Java is still to slow for advanced game programming.

will that be the only objection against java for image/graphics
programming? if speed is the only issue, I have heared the latest
JDK's are much faster, almost as fast as C and C++.

given that, why not use java then? I understand Java 3D sites of
top of openGL.

mitch

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by scame.. » Wed, 12 Apr 2000 04:00:00


Almost as fast as C++? That is a blatant lie.

I use Java, C++ and C, the fastest for graphics programming is C, although
there is not a huge difference between C and C++, and most of my code blends
both.

Java is VERY slow, it helps using the Java JAI(Java advanced imaging) API,
and there is GLjava, which alleviates some of the speed problems by using
the native OpenGL API and hence hardware acceleration.

Even so java is still massively slow compared to C/C++, and you have the
overhead of starting the VM every time you want to execute a program.

Java is a very nice clean language, and a joy to program in, but it is not C
or C++, it's not meant to be. The consolation is that it took me about a day
to learn Java, after programming in C++ for three years. So the switch from
C++ to Java is incredibly easy, so easy that most of my C++ code ports to
Java with a bit of tweaking.

Sean Cameron



> >>i also noticed java has 2d and 3d API.

> >Sure, but IMHO Java is still to slow for advanced game programming.

> will that be the only objection against java for image/graphics
> programming? if speed is the only issue, I have heared the latest
> JDK's are much faster, almost as fast as C and C++.

> given that, why not use java then? I understand Java 3D sites of
> top of openGL.

> mitch

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Nigel Stewar » Sat, 15 Apr 2000 04:00:00


Quote:> why not use java then? I understand Java 3D sits on
> top of openGL.

        No, it doesn't.  It's a problem!
        (A bug, a feature, a fact)

--

Research Student, Software Developer
Y2K is the new millenium for the mathematically challenged.

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Robert A. Z » Sat, 15 Apr 2000 04:00:00



>> why not use java then? I understand Java 3D sits on
>> top of openGL.
>    No, it doesn't.  It's a problem!
>    (A bug, a feature, a fact)

Java3D provides a scene graph, that can, in theory, do all sorts of
neat things for you --- like automatically support head mounted
displays.  

OpenGL provides a really nice abstract interface to 3D hardware.

The two libraries have very different goals.

Robert

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Courageou » Mon, 17 Apr 2000 04:00:00


Quote:> >       No, it doesn't.  It's a problem!
> >       (A bug, a feature, a fact)

> Java3D provides a scene graph, that can, in theory, do all sorts of
> neat things for you --- like automatically support head mounted
> displays.

> OpenGL provides a really nice abstract interface to 3D hardware.

> The two libraries have very different goals.

Java developers using the Microsoft implementation can, of course,
simply use J/Direct to talk directly to DirectX, Direct 3d, or even
OpenGL. J/Direct is really a very nice feature, and superior to
JNI, imo.

C/

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Rune Braath » Mon, 17 Apr 2000 04:00:00



>Java developers using the Microsoft implementation can, of course,
>simply use J/Direct to talk directly to DirectX, Direct 3d, or even
>OpenGL. J/Direct is really a very nice feature, and superior to
>JNI, imo.

This is of course possible, but due to the rather hairy nature of the
DirectX APIs, you quickly run into loads of typemarshalling trouble if you
try to do some real work... My experience is that it is better to introduce
your own layer of abstraction (in the shape of a DLL) on top of
Direct3D/OpenGL or whatever, to provide a cleaner interface to use from
J/Direct.

This gives you the ability to write the highlevel gameengine logic in java,
and hand the rendering over to fast native code. If some effort is put into
designing the layer between java and the underlying libraries, it is
possible to write very nice rendering-independent code...

Although very good results can be achieved with this technique, it feels a
bit messy. I would like to see Microsoft handing out some javabindings to
DirectX7. Or 8. That would surely open up some possibilities.

--
runeb

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Jim William » Tue, 18 Apr 2000 04:00:00


I thought one of the touted features of Java was it's platform-independance?
How can you maintain platform-independance if you have bindings to DX7 or 8?
(I don't know Java, so please explain if my conclusion is in error?)

>Although very good results can be achieved with this technique, it feels a
>bit messy. I would like to see Microsoft handing out some javabindings to
>DirectX7. Or 8. That would surely open up some possibilities.

>--
>runeb

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Hydr » Tue, 18 Apr 2000 04:00:00




Quote:> I thought one of the touted features of Java was it's platform-independance?
> How can you maintain platform-independance if you have bindings to DX7 or 8?
> (I don't know Java, so please explain if my conclusion is in error?)

Java in itself is platform independant. But that doesn't mean you have to
write platform independant code. Java has JNI (Java Native Interface,
pronounced as Jini) which lets you bind your Java code to native code
contained in .DLLs (Or .SOs or whatever the platform uses).

Writing a 3D game in Java useing DirectX of OpenGL while keeping the
program platform-independant is perfectly possible, you only have to
rewrite the native (DLL) part for every platform you are developing for.
Just as you would when you would develop a C++ program for both Win9X and
Linux.

Niels
--

Page: http://home.conceptsfa.nl/~hydra/
"One Ring to rule them all, One Ring to find them,
 One Ring to bring Them all and in the darkness bind them
 In the Land of Mordor where the Shadows lie."

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by John Bastia » Tue, 18 Apr 2000 04:00:00


Hello,



>Java in itself is platform independant. But that doesn't mean
you have to
>write platform independant code. Java has JNI (Java Native
Interface,
>pronounced as Jini) which lets you bind your Java code to
native code
>contained in .DLLs (Or .SOs or whatever the platform uses).

but, java is NOT platform independent.    NOT.  the JVM *ALLOWS*
java byte code to run on different archictures, but at the end
of the day, java is JUST a language... just a set of EBNF rules
with appropriate semantics.  A subtle point, but one that drives
me insane.  If I was to write a virtual mahcine for C, I could
make C platform independent. True: this is a LOT harder to do
than Java, because C makes heavy use of pointers and
programmer's have long been required to acknowledge this.  (For
insance, the code unsigned char *screen=(unsigned char *)
0xA0000000L to index the VGA screen would severely fall to
pieces on any other h/w).

Feh!

cheers,
John

* Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
The fastest and easiest way to search and participate in Usenet - Free!

 
 
 

openGL/C/C++ or Java/3D/2D?? please advice.

Post by Christian Froeschli » Thu, 20 Apr 2000 04:00:00



> Java in itself is platform independant. But that doesn't mean you have to
> write platform independant code. Java has JNI (Java Native Interface,
> pronounced as Jini) which lets you bind your Java code to native code
> contained in .DLLs (Or .SOs or whatever the platform uses).

Is it really common to pronounce it as Jini ? This is likely to
create confusion together with the real "Jini"
(Java Intelligent Network Infrastructure).

Quote:> Writing a 3D game in Java useing DirectX of OpenGL while keeping the
> program platform-independant is perfectly possible, you only have to
> rewrite the native (DLL) part for every platform you are developing for.

I thought the point of using OpenGL would be that it is platform
independant (in the sense that it is available on many platforms) ?

--
   __/  __/   -  Christian Froeschlin  -
  /    /
 /     _/     * If you eliminate the impossible, whatever remains, *
___/ _/       * however improbable, must be the bug !              *