有没有办法使用Java API检索我的图形卡适配器的信息?
我知道DirectX可以很容易地做到这一点,但是,我只是想知道Java是否可以做到这一点......?
如下图所示..DirectX发现GPU适配器集成到我的硬件,以及其支持的分辨率列表.
我的问题是,有没有一个API,Java会做这种事情?我真的很想知道Java是否能够获得有关视频卡的信息.

谢谢.
我的应用程序需要几秒钟才能显示第一个带有a的窗口Canvas3D.我对它进行了分析,发现存在瓶颈SimpleUniverse.getPreferredConfiguration(); 第一个调用需要三到四秒,并且必须在渲染场景之前调用它.
我正在使用Direct3D渲染器(-Dj3d.rend=d3d),因为OpenGL渲染器在我的显卡上崩溃了.我有一个运行单个显示器的集成ATI卡.
下面的代码将一个多维数据集放在(0,0,0),另一个放在(0,.5,.5),每个多维数据集的维度为(.5,.5,.5).我正在尝试旋转屏幕到达这样的视图
但我得到了这个观点
.而且,我意识到我的颜色向后倾斜.
无论如何,这是我的代码到目前为止:
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class Positioning {
private Color3f lightBlue;
private Color3f aquaGreen;
private Color3f white;
private Color3f teal;
private BranchGroup group;
private SimpleUniverse universe;
public Positioning() {
lightBlue = new Color3f(0.0f, 0.749019608f, 1.0f);
aquaGreen = new Color3f(0.439215686f, 0.858823529f, 0.576470588f);
white = new Color3f(1.0f, 1.0f, 1.0f);
teal = new Color3f(0.196078431f, 0.6f, 0.8f);
universe = new SimpleUniverse();
group = new BranchGroup();
addCube(0.5f, 0.5f, 0.5f, new Vector3f(0.0f, 0.0f, 0.0f), lightBlue);
addCube(0.5f, 0.5f, 0.5f, …Run Code Online (Sandbox Code Playgroud) 尝试使用1.5.2 jar文件(例如,在Java.net http://java3d.java.net/binary-builds.html上找到)来构建javax.vecmath .
试着打电话,比如说Point3d;
public class Foo {
public static void main(String[] args) {
Point3d t = new Point3d(1.0, 1.0, 1.0);
System.out.println(t.getX());
}
}
Run Code Online (Sandbox Code Playgroud)
在64位Windows和Linux(我只试过Ubuntu 10.04,64位)中,这个编译并运行.
在OS X(10.6.7)中,它不会编译:
...: cannot find symbol
symbol : method getX()
location: class javax.vecmath.Point3d
System.out.println (t.getX());
Run Code Online (Sandbox Code Playgroud)
这是使用完全相同的物理vecmath.jar
如果我直接使用源代码,它会在OS X上编译,但不会运行
Exception in thread "main" java.lang.NoSuchMethodError: javax.vecmath.Point3d.getX()D
Run Code Online (Sandbox Code Playgroud)
如果我自己在OS X上编译源代码到jar文件,然后再使用上面示例中的jar,则无法编译.
现在,正在访问的字段位于javax.vecmath.Tuple3d中,这是一个带有x,y和z公共字段的抽象类.所以在OS X上这将起作用(实际上,它似乎随处可用).
public class Foo {
public static void main(String[] args) {
Point3d t = new Point3d(1.0, 1.0, 1.0);
System.out.println(t.x);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我正在开发一个依赖于vecmath.jar的代码库,其中维护者在Windows上并希望继续使用访问器方法,但我在OS X上.
我期待两个:
(1)了解发生了什么(2)根据vecmath.jar文件弄清楚如何使这些源可移植.
我已经设置了我的变量路径以包含j3d的bin和lib文件.当我打开eclipse时,我必须手动构建path-> configure build path-> add jars并为每个项目添加所有.jar文件.然后我必须将他们的本机路径设置为.bin文件夹.这是一个非常繁琐的过程.我想知道是否有一种方法可以将j3D安装到我的eclipse中,因此所有库都已添加到所有项目中.
我有一个用Java 3d编写的场景,其中用户的查看位置使用以下代码设置为某个坐标:
ViewingPlatform vp = simpleUniverse.getViewingPlatform();
TransformGroup steerTG = vp.getViewPlatformTransform();
Transform3D t3d = new Transform3D();
steerTG.getTransform(t3d);
t3d.lookAt(
new Point3d(-5, 10, 25), new Point3d(0, 0, 0), new Vector3d(0, 1, 0));
t3d.invert();
steerTG.setTransform(t3d);
Run Code Online (Sandbox Code Playgroud)
现在我需要在总是可见的场景顶部放置一个叠加层,例如一些文本.我试过以下,但无济于事:
PlatformGeometry pg = new PlatformGeometry();
Text2D text = new Text2D("Text to display", Cell.BLACK, "Verdana", 18, 1);
pg.addChild(text);
simpleUniverse.getViewingPlatform().setPlatformGeometry(pg);
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,我根本看不到任何文本.有人可以帮忙吗?
如果这是一个非常糟糕的问题,请提前抱歉,但我似乎无法找到关于如何在Eclipse 3.6.0 for Mac OSX 10.6.6上安装Java3D的最新教程.如果有人知道好的教程在哪里,或者你能给我指示,请这样做.谢谢!
所以我想开始玩OpenGL以实现我已经有很长一段时间的游戏创意,但我注意到有几个版本的OpenGL.
理想情况下我也想支持旧计算机,所以我想知道OpenGL 2.1是否是最好的版本.OpenGL 4甚至不能在我的台式机上运行:O
游戏的最低规格类型是DX9时代的显卡,所以基本上大多数现代计算机都会运行它(即使是低端的板载显卡).我会看JOGL实现,因为我知道Java是最好的(过去已经完成了Java3D),我想部署到所有3个主要操作系统.
考虑到这一点,你会给我什么样的书?获得一本OpenGL 3或4本书是否毫无意义,因为我读过有很大的变化?我应该选择2.1上的旧书吗?
我正在尝试翻转彩色矩形.是否可以使用rotateTransition来执行此操作?
我试过以下代码:
public void rotateField(){
RotateTransition rt = new RotateTransition(Duration.millis(3000), field[4][4]);
rt.setByAngle(360);
rt.setCycleCount(1);
rt.play();
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会翻转矩形,只是旋转它.我想实际翻转矩形,就像你翻转一张扑克牌一样.
是否可以使用rotateTransition类?
我在 eclipse 中有一个项目,当我单击“运行”时,它在 ide 中运行得很好,但我需要将其导出到可运行的 jar 文件中,该文件也可以正常运行。但是当我尝试运行它时,它会抛出异常:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1856)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:231)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:200)
at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:157)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:987)
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:299)
at javax.media.j3d.GraphicsConfigTemplate3D.getBestConfiguration(GraphicsConfigTemplate3D.java:321)
at java.awt.GraphicsDevice.getBestConfiguration(GraphicsDevice.java:207)
at com.sun.j3d.exp.swing.JCanvas3D.<init>(JCanvas3D.java:228)
at com.sun.j3d.exp.swing.JCanvas3D.<init>(JCanvas3D.java:178)
at mainproject.MainPanel.<init>(MainPanel.java:72)
at mainproject.MainWindow.<init>(MainWindow.java:42)
at mainproject.MainWindow.main(MainWindow.java:23)
Run Code Online (Sandbox Code Playgroud)
我已经用谷歌搜索了两天了,有很多结果,但没有任何帮助。我通过转到导出它file->export->java->Runnable jar file->i bubble extract required libraries into generated jar,选择正确的配置,将文件保存在指定的文件夹中,然后保存就可以了。或者至少我是这么认为的。转到java.library.path,jre lib folder但是当我在 eclipse 中运行它时,它转到 j3d 的 .so ,我尝试使用更改它System.setProperty但没有成功。我有一种感觉,这就是问题所在,但当我尝试解决它时,什么也没发生。我正在使用最新的java3d library (1.5.2 I believe) …