javaFX动画不能硬件加速,这不要人命吗?

第三方89 2014-01-07 06:24:47
一个节点,不透明度渐变的动画,运行查看cpu占用比较高。

node......

node.setCache(true);
node.setCacheHint(CacheHint.SPEED);
FadeTransition fadeTransition = new FadeTransition(Duration.seconds(5), node);
fadeTransition.setFromValue(0);
fadeTransition.setToValue(1);
fadeTransition.play();

把第四句的CacheHint类型改成QUALITY、SCALE、ROTATE都不行。
我的机器的显卡你说玩大型游戏不行还可以,但是这点加速是没问题的,操作系统的所有特效都能开。
...全文
523 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
第三方89 2014-01-09
  • 打赏
  • 举报
回复
引用 5 楼 lcf 的回复:
JavaFX必然不能硬件加速。它的界面其实就是个绘图引擎,在操作系统看来JavaFX程序没有控件的概念,那操作系统就不能提供硬件渲染支持,这是第一。如果JavaFX的普通渲染引擎是CPU的,动画渲染引擎一定也是CPU,因为实现起来方便。 虽然加入硬件渲染不是不可能的任务,但是JavaFX是个很年轻的产品,要求不要太高嘛。IE发展了十几二十年才加入了硬件加速渲染,photoshop也不知道几十年了直到CS4才有。所以要么你自己用OpenGl实现界面渲染引擎,要么就要求强悍CPU,要么就放弃动画吧。。
我没有找到英文资料,但是在一些中文资料上,有例如“JavaFX 2.0中的图形渲染引擎Prism可以借助底层操作系统上的DirectX和OpenGL提供的硬件加速支持,因此性能优于传统的使用Java 2D进行软件渲染的做法。”这样的说法。javaone大会上还有个3D项目例子。如果不能使用硬件加速,java不可能加入3D功能。
lcf 2014-01-09
  • 打赏
  • 举报
回复
JavaFX必然不能硬件加速。它的界面其实就是个绘图引擎,在操作系统看来JavaFX程序没有控件的概念,那操作系统就不能提供硬件渲染支持,这是第一。如果JavaFX的普通渲染引擎是CPU的,动画渲染引擎一定也是CPU,因为实现起来方便。 虽然加入硬件渲染不是不可能的任务,但是JavaFX是个很年轻的产品,要求不要太高嘛。IE发展了十几二十年才加入了硬件加速渲染,photoshop也不知道几十年了直到CS4才有。所以要么你自己用OpenGl实现界面渲染引擎,要么就要求强悍CPU,要么就放弃动画吧。。
第三方89 2014-01-09
  • 打赏
  • 举报
回复
显卡驱动不够新导致的,我原来故意用的较低版本的驱动。驱动需要跟上directX的版本。
lcf 2014-01-09
  • 打赏
  • 举报
回复
貌似只有3D的东西才是OpenGL?其余的都是Java 2D
lcf 2014-01-09
  • 打赏
  • 举报
回复
不太像。既然能打游戏,应该就没问题。OpenGL支持也是标准了。倒是可以看看怎样选择使用Prism引擎,或者看一下FadeTransition的源码
第三方89 2014-01-09
  • 打赏
  • 举报
回复
引用 8 楼 lcf 的回复:
[quote=引用 7 楼 u013093402 的回复:] [quote=引用 5 楼 lcf 的回复:] JavaFX必然不能硬件加速。它的界面其实就是个绘图引擎,在操作系统看来JavaFX程序没有控件的概念,那操作系统就不能提供硬件渲染支持,这是第一。如果JavaFX的普通渲染引擎是CPU的,动画渲染引擎一定也是CPU,因为实现起来方便。 虽然加入硬件渲染不是不可能的任务,但是JavaFX是个很年轻的产品,要求不要太高嘛。IE发展了十几二十年才加入了硬件加速渲染,photoshop也不知道几十年了直到CS4才有。所以要么你自己用OpenGl实现界面渲染引擎,要么就要求强悍CPU,要么就放弃动画吧。。
我没有找到英文资料,但是在一些中文资料上,有例如“JavaFX 2.0中的图形渲染引擎Prism可以借助底层操作系统上的DirectX和OpenGL提供的硬件加速支持,因此性能优于传统的使用Java 2D进行软件渲染的做法。”这样的说法。javaone大会上还有个3D项目例子。如果不能使用硬件加速,java不可能加入3D功能。[/quote] 3D和JavaFX的控件不一样吧。不知道哪里能选择渲染引擎?而且像transision这种东西也不一定是由硬件支持,可能对于某些操作才有。具体我不知道,瞎猜的[/quote]可能是我的显卡驱动的问题。
lcf 2014-01-09
  • 打赏
  • 举报
回复
引用 7 楼 u013093402 的回复:
[quote=引用 5 楼 lcf 的回复:] JavaFX必然不能硬件加速。它的界面其实就是个绘图引擎,在操作系统看来JavaFX程序没有控件的概念,那操作系统就不能提供硬件渲染支持,这是第一。如果JavaFX的普通渲染引擎是CPU的,动画渲染引擎一定也是CPU,因为实现起来方便。 虽然加入硬件渲染不是不可能的任务,但是JavaFX是个很年轻的产品,要求不要太高嘛。IE发展了十几二十年才加入了硬件加速渲染,photoshop也不知道几十年了直到CS4才有。所以要么你自己用OpenGl实现界面渲染引擎,要么就要求强悍CPU,要么就放弃动画吧。。
我没有找到英文资料,但是在一些中文资料上,有例如“JavaFX 2.0中的图形渲染引擎Prism可以借助底层操作系统上的DirectX和OpenGL提供的硬件加速支持,因此性能优于传统的使用Java 2D进行软件渲染的做法。”这样的说法。javaone大会上还有个3D项目例子。如果不能使用硬件加速,java不可能加入3D功能。[/quote] 3D和JavaFX的控件不一样吧。不知道哪里能选择渲染引擎?而且像transision这种东西也不一定是由硬件支持,可能对于某些操作才有。具体我不知道,瞎猜的
第三方89 2014-01-08
  • 打赏
  • 举报
回复
引用 3 楼 jintianhen1 的回复:
动画用编程的方式跑,不知道速度会不会受影响
这个api就是用于动画的
静山晚风 2014-01-08
  • 打赏
  • 举报
回复
动画用编程的方式跑,不知道速度会不会受影响
第三方89 2014-01-08
  • 打赏
  • 举报
回复
引用 1 楼 jintianhen1 的回复:
是不是电脑配置的问题呢
什么意思,内存?
静山晚风 2014-01-08
  • 打赏
  • 举报
回复
是不是电脑配置的问题呢

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧