Java3d version (opengl/direct3d)

When I’m developing a game, does it matter which binding I use?

If I use the opengl sdk to write a game, can someone with the direct3d jre run the program?

Am I talking about something I don’t understand at all?

SOmewhat,

Lets get our terminology straight.

The JRE is the Java runtime. There is no OGL or D3D JRE. The JRE is the JRE.

There are two versions of Java3D that are currently availabel. One runs ontop of OpenGL and the other ontop of D3D. You can deploy either ontop of the JRE (or JDK). Which you use depends on which your system supports better.

There is one and o nly one difference between the D3D and OGL Java3D APIs. It has to do with vertex shading languages. The OGL version supports glsl and cgl shaders. The D3D version supports only cgl. (You can blame microsoft for this one.)

SO if you write your Java3D program with-out vertex shaders, or with cgl shaders, your users will be able to use either version of Java3D-- whichever is best for them.

BUT if you write with glsl then they will have to use the OGL Java3D.

So why woukld you do that? Well, cgl is very well supported on x86 operating systems (Windows, Linux) but isn’t anywhere else that I am aware of. GLSL is the real OpenGL ARB cross platform standard for vertex shader programs. Technically therefor its the true cross-platform shdaer language, however Microsoft ofcourse is resisting its implementation on Windows…

[quote=“Jeff,post:2,topic:24513”]
Shouldn’t that say that they are resisting implementing it on directx, as your graphics card vendor will do it in opengl, so if you use GLS, it will work on windows, but only using the opengl Java3D. (Just checking :))

Endolf

[quote=“endolf,post:3,topic:24513”]

True that woudl have been more specific and useful :slight_smile:

Okay, thanks for the info.