+ 1

How to 3D in Java?

My goal is to render my generated 3D models in perspective projection by faces or the wireframe of them. There are several 3D API's for Java, but most seem dead, outdated or look like too big bite for a small purpose. I only want it to be portable within the JAR file, however as far as I know Minecraft uses LWJGL under the hood and it is pretty much portable. The question is, what 3D API does worth learning for Java (not for gaming, but for experimental purposes)? What would you suggest and why?

11th Sep 2018, 10:07 AM
Magyar DĂĄvid
Magyar DĂĄvid - avatar
4 Answers
+ 1
In my real opinion, Java isn't the language for this.
11th Sep 2018, 8:26 PM
Alexander Santos
Alexander Santos - avatar
+ 1
Please, don't understand me wrong. I said that Java isn't the language for this, not that it isn't capable for 3D rendering. I have some experience in Java, mostly focused on servlets/web development. It's same as using GUIs with pure C (not including C++ with this). It's possible? Yes, it is. It's worth it? Totally not. C is not made for this. And that was why i explained the reason those APIs were dead, Java is not made for making those kind of graphics you want. One language that i see whose supports this a lot more is C#. As a suggestion, maybe it would be good for you to migrate to other languages, so you can fit the best resources where you want. I reinforce that i am not saying that Java is bad or anything like this, Java is my preferred language. But, everything has it own applications, i see Java as something more near to enterprise needs. Sorry if i offended you in any way, it was not what i wanted. Just willing to help
12th Sep 2018, 1:55 AM
Alexander Santos
Alexander Santos - avatar
0
There are plenty of working Java 3D API's, and OpenGL is supported from Java. I see nothing in the way to use OpenGL from Java, especially, when there are popular examples of its usage. Check Minecraft with ultra shader mods and come back saying Java is not capable for 3D rendering, or simply type Java OpenGL examples into Google. I ask those who have some experience or a bit of view on the topic, not sceptics. I ask about which API is worthwise for a small scale rendering, not about whether it is possible or not. I know right it is possible and Java is a language capable of doing that.
11th Sep 2018, 10:55 PM
Magyar DĂĄvid
Magyar DĂĄvid - avatar
0
Sorry for my reaction, I really not prefer short replies with no information or any suggestion, not even explanation why. I understand that there are languages with more support for 3D (C++ especially), but I am not familiar with the usage and portability of such code. I use both Java and C#, but Java is always portable, Mono for C# is far from that atm imo. (I won't use Unity3D+Mono for a single desktop app.) I've seen renderings in Java which are perfect for me, I want nothing special, but the same or less. Other suggestions, like C# API's are welcomed, BUT are not topic of this Java related question. As for GUI, C is not an OO language, which makes it truly difficult to write something like GUI. On the other hand Java and C# are fairly similar for reasons and the only handicap of Java is that it is incapable of handling memory directly. On the other hand there is JNI and other workarounds, which solve it, usually on the bottom of a given API. I would not say it is the same situation. I would be fine with other solutions too, like using different languages, but portability is a concern of mine using both Linux and Windows simultaneously. Having my knowledge about Java and that it is capable of rendering leaves little room for anything else. Being flexible and able to adopt is always good, but as for me, the easier way is not the better.
12th Sep 2018, 10:01 AM
Magyar DĂĄvid
Magyar DĂĄvid - avatar