I wish to build an image viewing application in which the images are scattered over a 2D plane, and the user hovers over them, clicking on one in order to view it full sizeview its details.
I want to do this thing in Java, and am looking for the best framework for it.
This app does not need to be a web-app, and it does need to handle large amount of images concurrently.
I ended up in the Java 2D3D game engine scene, thinking this would be a good way about it (want to stay away from FlashJavaFX).
My needs are quite modest, 2D will suffice.
I checked out Slick2D which looks appropriate, but has VERY little documentation.
I checked out PulpCore which looks cool as hell, but doesn't target desktophardware accelerated apps.
I checked out quite a few other things, and finally thought about using a 3D engine such as jMe.
My questions:
Do you think jMe is a good choice for this kind of app, seeing that jMe is oriented towards 3D games, and I need a specialized image viewer? If not, any other suggestions?
How hard will it be to implement the above with jMe? Feeling kinda outta scope here, and wish to know how far away am from base…
Can jME support having hundreds of images scattered over the plane?
In order to direct my learning curve towrads my target: Can you give a general outline of how such an app will be implemented via jME, i.e. will the images be textures over polygons is there a dedicated Image2D class for this or something similar… ?
I think that jME could be an interesting choice because it gives you functionality that you sometimes have to fake with 2D engines… You can explore slight variations with a 3D engine that straight 2D doesn't allow!
But all in all, I think some hundreds of Quads should be perfectly fine. (Try to share the Quad Mesh though ;-])
I have a feeling that the last half of that may be a bit confusing to someone who hasn't done much work with 3D graphics. Please don't be offended if you already know what I'm about to say! What he means by 'sharing' the mesh is that the same mesh data is used to render the objects. I, personally, wouldn't worry too much about doing this until you're up in the range of thousands of different objects in the scene. Most integrated graphics cards today are more than able to handle hundreds of simple 3D objects floating (or sitting) around a scene.
Is there a way to accomplish my goal (image viewer hovering over the plane of images), with jME ?
A part of that would be the ability to display .jpg images in their exact arbitrary sizes, with whatever video card or no video card… i.e. is there a workaroundreduction to 2Dspecial Image classsomething ?
… cause I wanna use jME, it looks highly capable and well documented, but I still kinda dunno if what I'm after is possible… thanks.
Cards made during [or after] 2005 will generally support non-power of two textures… You could also change the images in java to add some blank space around the edges to bring it to a n^2 x n^2 size (while simply creating the jME quad to be the size of the image you want to show)