[java] Java3D

Started by
15 comments, last by jolyqr 17 years, 8 months ago
Quote:
What do you mean with "official support"?. There is a JSR for Java3D 1.3, 5 years old with an 1.4 "maintenance" version JSR, there was a Sun implementation, but Sun has donated the project to open source community and a new and ambitious JSR was dropped a year ago or so. Shader support is limited and no one use it now.

I dont think Java3D is the best Java option talking about games. Its 6 years old and its use has gone down.


With "official support", I mean the same as for jogl: Its an open source project powered by SUN. Btw. daily builds of Java 3D 1.5 are already available on java3d.dev.java.net.

I never said it's the best option for game dev in java, but it's not as bad as mainy think.. and its object oriented architecture make it easier to start with IMHO..
Advertisement
Quote:Original post by Michael Nischt
With "official support", I mean the same as for jogl: Its an open source project powered by SUN. Btw. daily builds of Java 3D 1.5 are already available on java3d.dev.java.net.

I never said it's the best option for game dev in java, but it's not as bad as mainy think.. and its object oriented architecture make it easier to start with IMHO..


If that means a project is "powered" by Sun, then majority of Java projects are. Java3D has passed from Sun active development, to service maintenance, to be dropped in favor of a "community" development. I think nothing interesting can be learnt from Java3D, its a scenegraph API with little support and declining day by day. Its nearer from a 3d scene modelling tool than a 3D graphics API. But dont misinterpret me, i think Java3D is an ok tool if you want to include 3D support in conventional apps, but a bad election to construct a performance one, as a game can be. Its a shame that there isnt a Ogre port for Java under Jogl, could be a fine and learning curve friendly.
Sorry, and addition. There is a ongoing port of Ogre for Java, called Ogre4j (original name, :) ). But seems to be in a very very alpha stage.

http://www.ogre4j.org/drupal/
I would suggest looking into both and try making simple stuff with both. I use LWJGL myself and also find the input handling very useful. Most calls from OpenGL are almost exactly the same, with the except that that Java versions are static methods in classes. Example drawing code for simple openGL and the LWJGL equivalent for drawing a simple triangle strip:

//way earlierimport org.lwjgl.opengl.GL11;                //LWJGL version                GL11.glEnable(GL11.GL_TEXTURE_2D);                GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID);                GL11.glBegin(GL11.GL_TRIANGLE_STRIP);	        GL11.glTexCoord2f(0.f, 0.f);		GL11.glVertex2f(x, y);		GL11.glTexCoord2f(0.f, 1.f);		GL11.glVertex2f(x, y + height);		GL11.glTexCoord2f(1.f, 0.f);		GL11.glVertex2f(x + width, y);		GL11.glTexCoord2f(1.f, 1.f);		GL11.glVertex2f(x + width, y + height);		GL11.glEnd();



                //Cpp version                glEnable(GL_TEXTURE_2D);                glBindTexture(GL_TEXTURE_2D, textureID);                glBegin(GL_TRIANGLE_STRIP);	        glTexCoord2f(0.f, 0.f);		glVertex2f(x, y);		glTexCoord2f(0.f, 1.f);		glVertex2f(x, y + height);		glTexCoord2f(1.f, 0.f);		glVertex2f(x + width, y);		glTexCoord2f(1.f, 1.f);		glVertex2f(x + width, y + height);		glEnd();


Keyboard events in LWJGL also don't work on an event queue, but rather can be polled directly. Example, no MouseListeners or anything, but rather anything can check a key simply like this (more complex ways are also available):

// returns true if RETURN (enter) is pressed// can be put anywhere in your code (e.g. in update method for game objects)Keyboard.isKeyDown(Keyboard.KEY_RETURN);


Keep in mind though, that a lot of which library is better is to look into them yourself. Some things easy in one, will be a pain in the other (e.g. entering names for high scores in LWJGL for my asteroids clone was annoying because i had to do MUCH more work since there was no KeyListener's keyPressed(KeyEvent...) method, but I had to manually check keys. But simply checking for key presses is MUCH easier in LWJGL).
Hi,

If you are looking for a very good API to substitute in place of Java3D. I would suggest jME works very well, easy to develop with and has a good supporting community. Just another option since the Ogre4j has been taking a while to really get things working.

jME is a scenegraph API built on top of LWJGL with model loading support as well as lighting, animation, sound, and much more. I think it is a better choice for a video game API than Java3D but still Runescape was done using Java3D so it's still a viable solution if you don't have very high requirements on the graphics end.
cheers guys i didn't know they were so many 3D api for java...
Quote:Original post by 5MinuteGaming
Hi,

If you are looking for a very good API to substitute in place of Java3D. I would suggest jME works very well, easy to develop with and has a good supporting community. Just another option since the Ogre4j has been taking a while to really get things working.

jME is a scenegraph API built on top of LWJGL with model loading support as well as lighting, animation, sound, and much more. I think it is a better choice for a video game API than Java3D but still Runescape was done using Java3D so it's still a viable solution if you don't have very high requirements on the graphics end.



You're right, that's fantastic. I didn't that doing things like that in Java could be possible...

This topic is closed to new replies.

Advertisement