Feature request: DirectX Support for Java3D / JavaFX on Windows & "Take care that OpenGL1 and OpenGL2 are supported by Java3D / JavaFX in a way, that OpenGL1-only computers are not excluded from any function"

Rolf Hemmerling hemmerling at gmx.net
Fri Oct 16 11:54:25 UTC 2015

Hello Java3D / JavaFX core developers!

Feature request:
1. DirectX Support for Java3D / JavaFX on Windows
2. "Take care that OpenGL1 and OpenGL2 are supported by Java3D / JavaFX 
in a way, that OpenGL1-only computers are not excluded from any 
function, and OpenGL2 computers benefit from better look of the visual 
view" ( but have no "exclusive" commands which don´t compile or generate 
runtime errors with OpenGL1 systems ).
3. Let the end user ( not the Java application developer) select between 
DirectX and OpenGL - similar to the choice available with the 3D engine 

1. The Past:
10-15 years ago, standard desktop PCs were used for gaming on Windows 
too, so with state-of-the-art graphics cards ( with 64-256 MB RAM ) the 
graphics card manufacurers provided state-of-the-art graphics drivers 
(OpenGL1, DirectX).

2. Nowadays:
2.1 most PCs running Windows use standard graphics drivers supplied by 
Microsoft ( especially for "legacy" computers, especially after upgrade 
of the operating system, e.g. Vista -> Win7 -> Win8 > Win10, especially 
for busines PCs which are not gamer PCs, e.g. notebooks with 
non-dedicated graphics cards ), and not by the graphics card 
manufacturers AMD & NVidia.
2.2 Microsoft's standard drivers supplied win Win7 / Win8 support still 
OpenGL1 and DirectX ( by installation of a DirectX runtime), but usually 
not OpenGL2. There is no option to upgrade a PC by installing a (newer) 
OpenGL1 or OpenGL2 driver.
2.3 Even with some Macintosh PCs, there is some lack of (advanced) 
OpenGL2 support I was told by the team which develop "Processing" ( see 
below )

3. My observations & opinion:
Directx9 is standard on the Windows platform since 15 years ( works with 
all AGP graphics cards and first generations of PCIExpress graphics 
cards, and any non-dedicated graphics cards of notebooks ), while 
DirectX 10 / 11 / 12 is just upgrade available for gamer PCs.

Request: So if there should be DirectX for Java3D / JavaFX on Windows, 
then it should be full support of DirectX9, and optional use of DirectX 
10 /11 /12.

OpenGL1 is outdated ( does not make use of advanced hardware graphics 
functions,.. ) but supported by almost all PCs.
OpenGL 2.0 is not available with most PCs running Windows, while running 
Ubuntu Linux on the same machine offers such support in some cases even 
on the same hardware.
OpenGL 2.0 is even not available to some current Macintosh PCs

My case:
I installed
, a Java application with special OpenGL1 libraries ( Processing 1.5.1 ) 
and special OpenGL2 libraries ( Processign 2.2.1 and newer )

Processing 1.5.1, using OpenGL1:
The 3D demo applications works fine on all my Windows computers

Processing 2.2.1, using OpenGL2:
The demo applications of the folder “Camera”, “Demos” - and maybe some 
others, but not all - crash by the Java error message

“Framebuffer objects are not supported by this hardware (or driver) Read 
http://wiki.processing.org/w/OpenGL_Issues for help”

, on my
1. “Athlon XP2400” desktop computer with NVIDIA GeForce 6600 graphics 
card and webcam, with Win7 .
2. Notebook “Dell Vostro 1000”, with Win8.1 .
3. Notebook “ASUS Eee PC T101MT”, with Win8.1 .
The demo applications work well on my
1. Notebook “Dell Vostro 1000”, with Ubuntu Linux 14 LTE .
See above, its the same hardware, just other operating system.

The Processing developers gives some explanations about the use of OpenGL ..
and why / that OpenGL2 is not a standard for most PCs, both 
Windows-hardware and even some Macintosh-hardware. And they point to the 
fact, that OpenGL2 support for "older" PCs is not available with Linux 
So they just don´t support all my computers with their new Processing 
2.2.1 version, and its successors Processing 3,..

My statement: Java3D / JavaFX is not for gamers, but also for business 
graphics, so missing "state of the art 3D power" is no reason not to 
provide full 3D support - usual Java applications are not counted by 
"frames / second". And JavaFX is for business menu applications too!

Feature request: Please let check your JavaFX / Java3D API, if it uses 
the OpenGL Framebuffer feature in a way, so that Java error message 
“Framebuffer objects are not supported by this hardware (or driver) Read 
http://wiki.processing.org/w/OpenGL_Issues for help”
might happen too. If so, please fix that.

Find a way to support both:

4.1 OpenGl1 ( for legacy and business PCs, or PCs which were just 
"upgraded" with a new Windows where the graphics card manufacturer 
doesn´t provide specific graphics drivers and so you are stuck to 
Microsoft's standard drivers ),

4.2 and OpenGL2 with the same library - so give full power of Java3D / 
JavaFX even for OpenGL1 computers without need to adopt the software, 
but give more speed or better / prettier view to those users which have 
an OpenGL2 computer.

In case of the "Processing" platform, the small team states that they 
don´t have enough manpower to do that. Ok. But please Java-Developer 
team, don´t use that as excuse for the "big" Java3D / JavaFX development.

5. Warning:
If I should ever see a message
"Java error message “Framebuffer objects are not supported by this 
hardware (or driver) Read http://wiki.processing.org/w/OpenGL_Issues for 
with a business or technical software which by this prevents me from 
using, on my PCs, as end-user of the software on a state-of-the-art 
operating system ( currently Win7, Win8, Win10 ) - even if my PC is 
legacy but properly running this operating system -, I would be very 
dissatisfied, and this would make anger against Java definitely probably 
not just with me.

Remember that it is/was "normal" to exclude people from using software, 
in the Windows world, by claiming "oh it just works on W2k / WinXp / 
Win7, please buy a new computer or upgrade your operating system".
Well this urging doesn´t work with Java, the Java communmity is not in 
the position to demand to buy "openGL2 compatible hardware", if it lacks 
in the shops, especially with budget offers.

 From that point of view, "Processing" is dead for me, though intended 
for education ( of kid, pupils, students ), who cares if the 3D graphics 
doesn´t run on most computers ( owned by the kids, pupils, students,..)? 
Do you want the teacher ask the parents "oh buy another  new computer or 
change the operating system, as the computer with which your child is 
coming to the classroom, doesn´t support OpenGL2, so its a garbage and 
worthless. Without another computer with OpenGL support the pupil can´t 
participate in our computer course" ?!

Yes I want to start a flame.... in the mind of Java3D / JavaFX 
developers :-).
OpenGL is dead.. ist doesn´t just smell funny.

Rolf Hemmerling
SCADA Expertness - Quality Intensification for IT + Automation
Member of Texas Instruments Expert Advisory Panel
CeBIT Competence Store Partner

More information about the openjfx-dev mailing list