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
"Unity3d".
Reason:
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:
3.1
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.
3.2
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
http://www.processing.org/
http://www.github.com/processing/
, a Java application with special OpenGL1 libraries ( Processing 1.5.1 )
and special OpenGL2 libraries ( Processign 2.2.1 and newer )
3.2.1
Processing 1.5.1, using OpenGL1:
The 3D demo applications works fine on all my Windows computers
3.2.2
Processing 2.2.1, using OpenGL2:
3.2.1.1
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 .
3.2.1.2
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 ..
https://github.com/processing/processing/wiki/OpenGL-Issues
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
too...
******************
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!
4.
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
help”
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.
Sincerely
Rolf Hemmerling
--
http://www.hemmerling.com
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