In reference to some issues pointed out in this thread - I’ve compiled a list of features to display on the main website .
Please help me compile the list to be as complete as possible - and correct me if anything seems wrong. Any help is much appreciated!
Supported Platforms
Windows
Linux
Mac OSX
Raspberry Pi 3 (OpenGL ES 2.0)
Raspberry Pi 4 (OpenGL ES 3.2)
Android
Supported Model Formats
Audio
Support for WAV, MP3 and OGG file formats.
Buffered and Streaming support.
Global, directional and positional sounds.
Input
Mouse and Keyboard
Touchscreen
Joystick/Joypad/Wheel
SceneGraph
Batching
Instancing
2D and 3D scene support
Level of Detail
Light Culling
Single Pass Lighting
Animation
Tween API with out of the box support for spatial, bone and morph animations
Stock Tweens availble:
Sequence tween: a tween that plays tweens in sequence.
Parallel tween: a tween that plays tweens in parallel.
Delay tween : a tween that just waits…
Stretch tween: a tween that wraps another tween and change its duration.
Camera tween: moves the camera…
CallMethod: calling a method on an object …
Animation Blending
Animation interpolation (interpolors for rotation, position, scale and time)
Hardware Skinning
Graphics
OpenGL support up to OpenGL 4.5
OpenGL ES support up to 3.0
LWJGL2 and 3
Post Processing
Stock Post Processors
Water
Screen Space Ambient Occlusion
Supports Approximate Normals (50% faster)
Bloom
Cartoon Edge
Color Overlay
Cross-Hatch
Depth Of Field
Fast Approximate Anti Aliasing
Fog
Light Scattering
Posterization
Radial Blur
ToneMap
Unshaded Materials
Phong Lighting Materials
PBR Materials
Sphere and OrientedBox Probe areas
Light Probe blending (up to 3 light probes)
Supports both Roughness/Metallic & Roughness/SpecularGloss workflow
Vertex, Fragment and Geometry shader support
Texture Atlas support
Particles
Language
Support for Java 1.8+
Use Kotlin, Groovy or any combination all in one project.
Physics
Bullet Physics
Minie Physics - A high-powered improved and up-to-date binding around Bullet with “soft body” support.
Networking
Networking API supporting UDP/TCP either with low-level Messaging or high-level RMI.
SimEthereal - A high performance library for real-time networked object synching
GUI
Lemur - a fast and efficient Jme-Native 2D and 3D GUI Toolkit.
JME-JFX-11 - A bridge to create a 2D GUI in JME using JavaFX 11.
Entity System
Zay-ES - A high-performance entity-component-system
Profiling
DetailedProfiler - Displays timing information for various areas of your game to determine bottlenecks
6 Likes
Off the top of my head
SceneGraph
Supported Formats (works flawlessly)
Animation
Tween API with out of the box support for spatial, bone and morph animations
Stock Tweens availble:
Sequence tween: a tween that plays tweens in sequence.
Parallel tween: a tween that plays tweens in parallel.
Delay tween : a tween that just waits…
Stretch tween: a tween that wraps another tween and change its duration.
Camera tween: moves the camera…
CallMethod: calling a method on an object …
Animation blending
Animation interpolation (interpolors for rotation, position, scale and time)
Networking
Networking API supporting UDP/TCP either with low-level Messaging or high-level RMI.
Graphics
OpenGL ES 3.0
LWJGL 2 and 3
And in case of popular extensions:
GUI
Physics
ES
3 Likes
Ali_RS:
Physics
This should probably have a note that Minie is a high-powered binding around Bullet - that’ll look the most impressive to someone who’s not familiar with it, as Bullet & PhysX are the industry standard in physics engines.
4 Likes
Better to use the term Hardware Skinning under animation
1 Like
Maybe mention that there are also plenty of helpful demos and Hello— tutorials available in order to help new people get started using these features.
2 Likes
I should probably put that in our “getting started” page.
1 Like
Yeah, and probably a note on Minie “soft body” supporting as well.
4 Likes
I’ve updated the main post - starting to look pretty impressive
2 Likes
Note, I just updated my post, added “CallMethod” in Stock Tweens section
1 Like
Ali_RS
May 10, 2020, 4:58pm
10
I think this one is also very well deserved to be included under
Networking
SimEthereal : A high performance library for real-time networked object synching.
2 Likes
Yeah. I agree. I also forgot Lemur. Are we still actively promoting nifty, or should I just quietly not mention it…?
2 Likes
Ali_RS
May 10, 2020, 5:00pm
12
Yes, not mention it, please…
2 Likes
Ali_RS
May 10, 2020, 5:15pm
13
jayfella:
Support for Java 1.7+
Note, JME 3.3 is 1.8+ actually.
Gltf loader in JME 3.3 uses Base64
decoder added in Java 8
addToCache("buffers", bufferIndex, data, buffers.size());
return data;
}
protected byte[] getBytes(int bufferIndex, String uri, Integer bufferLength) throws IOException {
byte[] data;
if (uri != null) {
if (uri.startsWith("data:")) {
//base 64 embed data
data = Base64.getDecoder().decode(uri.substring(uri.indexOf(",") + 1));
} else {
//external file let's load it
if (!uri.endsWith(".bin")) {
throw new AssetLoadException("Cannot load " + uri + ", a .bin extension is required.");
}
BinDataKey key = new BinDataKey(info.getKey().getFolder() + uri);
InputStream input = (InputStream) info.getManager().loadAsset(key);
data = new byte[bufferLength];
DataInputStream dataStream = new DataInputStream(input);
2 Likes
Ali_RS:
JME 3.3 is 1.8+ actually
I did not know that. This list is more useful than I thought it would be.
2 Likes
Ali_RS
May 10, 2020, 5:37pm
15
Scene Graph
Light Culling
Single Pass Lighting
a brief explanation I copied that from nehon’s article for anyone interested
It’s based on the observation that rendering a light that is not in the camera frustum or rendering an object for a light that doesn’t affect it is a waste.
jME now has a way to sort that out. On each frame, each light is checked once against the camera frustum and not rendered when it’s outside. Also each geometry is checked against each light in the frustum and only renderer if the geometry is in the area of effect of the light.
SINGLE PASS
The idea behind single pass is to send a list of light information to the shader and to compute all the lights contribution while rendering the geometry once.
1 Like
Oh yeah. And we have light batching. Good one.
tlf30
May 10, 2020, 5:50pm
17
Wow, since when did JME become such a powerful engine! ( Just kidding, it has been amazing for a long time!)
This is a very impressive list, even I am learning things about what features are available.
I’m updating them as they are posted and adding the ones I remember as I go. @Ali_RS you are pretty well versed on what the engine can do!
1 Like
Zay-ES - really awesome entity system
1 Like