This Java tip shows how to query Properties in Java 3D system.

import java.awt.GraphicsConfiguration;
import java.awt.GraphicsEnvironment;
import java.util.Map;

import javax.media.j3d.Canvas3D;
import javax.media.j3d.GraphicsConfigTemplate3D;
import javax.media.j3d.VirtualUniverse;

public class QueryProperties {
public static void main(String[] args) {
VirtualUniverse vu = new VirtualUniverse();
Map vuMap = vu.getProperties();

System.out.println("version = " + vuMap.get("j3d.version"));
System.out.println("vendor = " + vuMap.get("j3d.vendor"));
System.out.println("specification.version = "
+ vuMap.get("j3d.specification.version"));
System.out.println("specification.vendor = "
+ vuMap.get("j3d.specification.vendor"));
System.out.println("renderer = " + vuMap.get("j3d.renderer") + "\n");

GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D();

/*
* We need to set this to force choosing a pixel format that support the
* canvas.
*/
template.setStereo(template.PREFERRED);
template.setSceneAntialiasing(template.PREFERRED);

GraphicsConfiguration config = GraphicsEnvironment
.getLocalGraphicsEnvironment().getDefaultScreenDevice()
.getBestConfiguration(template);

Map c3dMap = new Canvas3D(config).queryProperties();

System.out
.println("Renderer version = " + c3dMap.get("native.version"));
System.out.println("doubleBufferAvailable = "
+ c3dMap.get("doubleBufferAvailable"));
System.out
.println("stereoAvailable = " + c3dMap.get("stereoAvailable"));
System.out.println("sceneAntialiasingAvailable = "
+ c3dMap.get("sceneAntialiasingAvailable"));
System.out.println("sceneAntialiasingNumPasses = "
+ c3dMap.get("sceneAntialiasingNumPasses"));
System.out.println("textureColorTableSize = "
+ c3dMap.get("textureColorTableSize"));
System.out.println("textureEnvCombineAvailable = "
+ c3dMap.get("textureEnvCombineAvailable"));
System.out.println("textureCombineDot3Available = "
+ c3dMap.get("textureCombineDot3Available"));
System.out.println("textureCombineSubtractAvailable = "
+ c3dMap.get("textureCombineSubtractAvailable"));
System.out.println("texture3DAvailable = "
+ c3dMap.get("texture3DAvailable"));
System.out.println("textureCubeMapAvailable = "
+ c3dMap.get("textureCubeMapAvailable"));
System.out.println("textureSharpenAvailable = "
+ c3dMap.get("textureSharpenAvailable"));
System.out.println("textureDetailAvailable = "
+ c3dMap.get("textureDetailAvailable"));
System.out.println("textureFilter4Available = "
+ c3dMap.get("textureFilter4Available"));
System.out.println("textureAnisotropicFilterDegreeMax = "
+ c3dMap.get("textureAnisotropicFilterDegreeMax"));
System.out.println("textureBoundaryWidthMax = "
+ c3dMap.get("textureBoundaryWidthMax"));
System.out
.println("textureWidthMax = " + c3dMap.get("textureWidthMax"));
System.out.println("textureHeightMax = "
+ c3dMap.get("textureHeightMax"));
System.out.println("textureLodOffsetAvailable = "
+ c3dMap.get("textureLodOffsetAvailable"));
System.out.println("textureLodRangeAvailable = "
+ c3dMap.get("textureLodRangeAvailable"));
System.out.println("textureUnitStateMax = "
+ c3dMap.get("textureUnitStateMax"));
System.out.println("compressedGeometry.majorVersionNumber = "
+ c3dMap.get("compressedGeometry.majorVersionNumber"));
System.out.println("compressedGeometry.minorVersionNumber = "
+ c3dMap.get("compressedGeometry.minorVersionNumber"));
System.out.println("compressedGeometry.minorMinorVersionNumber = "
+ c3dMap.get("compressedGeometry.minorMinorVersionNumber"));

System.exit(0);
}
}