[JAVA3D-676] JAVA application crashes when tried to open 3D canvas Created: 09/Oct/14  Updated: 09/Oct/14

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.5.2
Fix Version/s: None

Type: Bug Priority: Major
Reporter: kwang Assignee: kcr
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows 7 professional 32bits, Java 1.7.0_60



 Description   

DefaultRenderingErrorListener.errorOccurred:
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context
graphicsDevice = Win32GraphicsDevice[screen=0]
canvas = com.vassolinc.i.i[canvas0,0,0,494x488]
shut down Java virtual machine.






[JAVA3D-660] Compatibility with JOGL v. 2 Created: 26/Mar/11  Updated: 06/Aug/13

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2, current, 1.6.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: schnied Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 4 weeks
Time Spent: Not Specified
Original Estimate: 4 weeks
Environment:

All


Tags: gluegen, jocl, jogl

 Description   

Java developers are increasingly interested in using OpenCL - this will require compatibility between Java3D and Gluegen, JOGL and JOCL.

For example, Java3D 1.5.2 and 1.6.0 depend on the following JOGL v. 1.1.1 class:
javax/media/opengl/AbstractGraphicsDevice

However, this class has been replaced in JOGL v.2 by:
javax/media/nativewindow/AbstractGraphicsDevice



 Comments   
Comment by harveyh [ 06/Aug/13 ]

Java3d has been ported to use JOGL2 as the backend, code can be found here:

https://github.com/hharrison/vecmath
https://github.com/hharrison/java3d-core
https://github.com/hharrison/java3d-utils

You can get prebuilt jars from here:

http://jogamp.org/deployment/java3d/1.6.0-pre8/

There's a forum at forum.jogamp.org is you have any questions.

Harvey





[JAVA3D-674] Offscreen rendering is missing geometry/content branch (sometimes) Created: 04/Apr/12  Updated: 10/Oct/12

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: None

Type: Bug Priority: Major
Reporter: sstevenson638 Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows XP, NVIDIA graphics card



 Description   

When I do a screen capture using an offscreen canvas, the View does not always render the content branch of my scene graph. It seems to work when I run from Netbeans in debug mode and am breaking to look at code, but it almost never works when I run in non-debug mode.

The onscreen canvas always draws correctly. The offscreen canvas always draws the background correctly, but not the other content in the scene.

I use the same offscreen canvas component used in two different applications. One application uses a SimpleUniverse, the other I create my own Universe and View objects manually. The one using SimpleUniverse seems to capture images correctly, the one I created manually does not. Is there something about the View created by SimpleUniverse that could effect the behavior? I've looked all over the source to see if it does anything special, but haven't found anything.

Source to some of my components is listed below. The idea is to print Components that contain Java3D scenes using the normal Component.print() methods. They also support "Actors" that can draw on the Canvas3D after rendering is complete.

Please help! I've been working on this for a week and have no idea what is wrong. It's almost like a threading issue, but I think that I'm following all the rules.

class OffScreenCanvas3D extends MarkupCanvas3D {
private static Logger logger = Logger.getLogger(OffScreenCanvas3D.class);

volatile boolean waitingForRender = false;
int maxWaitTimeForRender = 3000;

/**

  • @param gc
    */
    public OffScreenCanvas3D(GraphicsConfiguration gc, int maxWaitTimeForReder) { super(gc,true); this.maxWaitTimeForRender = maxWaitTimeForRender; }

@Override
public void preRender()

{ super.preRender(); }

@Override
public void postRender()

{ super.postRender(); }

@Override
public void postSwap()

{ super.postSwap(); waitingForRender = false; }

public void renderOffScreenBufferAndWait() {
waitingForRender = true;

View view = this.getView();
view.repaint();
// Tell Java3D to render this canvas
if(!view.isViewRunning())

{ view.renderOnce(); }

else

{ super.renderOffScreenBuffer(); }

// Wait for rendering to finish.
// The Canvas3D.waitForOffScreenRendering does not seem to work and can cause thread deadlocks.
// It never re-sets is rendering flag while waiting.
int count = 0;
while(waitingForRender) {
try

{ Thread.sleep(2); }

catch (InterruptedException ex)

{ break; }

count+=2;
if(count>this.maxWaitTimeForRender)

{ logger.error("Failed to print 3D image. Rendering seems to be taking a long time."); break; // Give up and return if still have not rendered }

}
}

}

public class PrintableCanvas3DContainer extends Container {

private static Logger logger = Logger.getLogger(PrintableCanvas3DContainer.class);
private MarkupCanvas3D onScreenCanvas;
private OffScreenCanvas3D offScreenCanvas;
BufferedImage offScreenImageBuffer = null;
private transient List<Java2DActor> actors = new ArrayList();

/**

  • Creates a PrintableCanvas3DContainer with specified GraphicsConfiguration.
    *
  • @param gc
    */
    public PrintableCanvas3DContainer(GraphicsConfiguration gc) { super(); super.setLayout(new BorderLayout()); onScreenCanvas = new MarkupCanvas3D(gc, false); super.add(onScreenCanvas, BorderLayout.CENTER); }

/**

  • Creates a PrintableCanvas3DContainer with default GraphicsConfiguration obtained
  • from SimpleUniverse.getPreferredConfiguration().
    *
    */
    public PrintableCanvas3DContainer() { this(SimpleUniverse.getPreferredConfiguration()); }

/**

  • Returns the on-screen canvas displayed in this container.
  • This canvas is owned by this container and should never be added to an outside
  • component. Add this container to your containers instead.
  • @return
    */
    public final Canvas3D getOnScreenCanvas() { return this.onScreenCanvas; }

/**

  • Override all add and remove methods to prevent them.
  • @param comp
  • @return
    */
    @Override
    public Component add(Component comp) { throw new UnsupportedOperationException("PrintableCanvas3DContainer hardwired to contain only 1 Canvas3D object."); }

    @Override
    public Component add(String name, Component comp) { throw new UnsupportedOperationException("PrintableCanvas3DContainer hardwired to contain only 1 Canvas3D object."); }

@Override
public Component add(Component comp, int index)

{ throw new UnsupportedOperationException("PrintableCanvas3DContainer hardwired to contain only 1 Canvas3D object."); }

@Override
public void add(Component comp, Object constraints) { throw new UnsupportedOperationException("PrintableCanvas3DContainer hardwired to contain only 1 Canvas3D object."); }

@Override
public void add(Component comp, Object constraints, int index)

{ throw new UnsupportedOperationException("PrintableCanvas3DContainer hardwired to contain only 1 Canvas3D object."); }

@Override
public void setLayout(LayoutManager mgr)

{ throw new UnsupportedOperationException("PrintableCanvas3DContainer has hardwired LayoutManager."); }

/**

  • Print this component to make image captures.
    *
  • @param g
    */
    @Override
    public void print(Graphics g) {

View view = this.onScreenCanvas.getView();
if (view == null)

{ return; }

BufferedImage img = captureImageInternal();
if (img != null) { g.drawImage(img, 0, 0, null); }

}

@Override
public void printAll(Graphics g) { print(g); }

/**
* Capture the current display image.
*
* @return
*/
public BufferedImage captureImage() { BufferedImage image = captureImageInternal(); return image; // TODO make a copy of the image to return }

private BufferedImage captureImageInternal() { this.attachOffScreenCanvas(); View view = this.onScreenCanvas.getView(); Rectangle rect = this.onScreenCanvas.getBounds(); this.offScreenCanvas.setBounds(rect); Screen3D offScreenScreen = offScreenCanvas.getScreen3D(); Screen3D onScreenScreen = onScreenCanvas.getScreen3D(); offScreenScreen.setPhysicalScreenHeight(onScreenScreen.getPhysicalScreenHeight()); offScreenScreen.setPhysicalScreenWidth(onScreenScreen.getPhysicalScreenWidth()); offScreenScreen.setSize(onScreenScreen.getSize()); Point loc = onScreenCanvas.getLocationOnScreen(); offScreenCanvas.setOffScreenLocation(loc); offScreenCanvas.invalidate(); offScreenCanvas.renderOffScreenBufferAndWait(); BufferedImage img2 = offScreenCanvas.getOffScreenBuffer().getImage(); // offScreenCanvas.setOffScreenBuffer(null); // Must free off screen canvas ID for next use. return img2; }

public void attachOffScreenCanvas() {
if (offScreenCanvas != null) {
// Create a new off screen canvas if the size has changed.
if (!offScreenCanvas.getSize().equals(onScreenCanvas.getSize())) { // Re-size only seems to work for the 3D part, but the actors // don't render correctly in the first screen shot. // Must create a whole new offscreen canvas to get this to work when the window size changes. resizeImageBufferIfNeeded(); return; // this.detachOffScreenCanvas(); }
else {
// Size not changed so we can re-use the existing offscreen canvas.
// However,
// Detach and re-attach current offscreen canvas for each snapshot.
// This is the only thing that seems to fix the blank image issue that
// occures if this component is not visible or active.
// This step is not needed if the current component is always visible and active on the screen.
View view = this.onScreenCanvas.getView();
if (view == null) { return; }
boolean started = view.isViewRunning();
if (started) { view.stopView(); }
view.removeCanvas3D(offScreenCanvas);
view.addCanvas3D(offScreenCanvas);
if (started) { view.startView(); }
return; // no need to re-create the offscreen canvas
}
}
// If offscreen canvas is null, create, size, and attach the offscreen canvas
// offScreenCanvas = new OffScreenCanvas3D(this.onScreenCanvas.getGraphicsConfiguration(), 3000);
GraphicsConfiguration gconfig = SimpleUniverse.getPreferredConfiguration();
offScreenCanvas = new OffScreenCanvas3D(gconfig, 3000);
resizeImageBufferIfNeeded();
offScreenCanvas.setBounds(onScreenCanvas.getBounds());
for (Java2DActor java2DActor : actors) { offScreenCanvas.addActor((Java2DActor) java2DActor.clone()); }
View view = onScreenCanvas.getView();
boolean started = view.isViewRunning();
if (started) { view.stopView(); }
view.addCanvas3D(offScreenCanvas);
if (started) { view.startView(); }
}

private void resizeImageBufferIfNeeded() {
boolean resize = false;
Rectangle rect = onScreenCanvas.getBounds();
if (this.offScreenImageBuffer == null) { resize = true; }
else {
if (offScreenImageBuffer.getWidth() != rect.getWidth()) { resize = true; }
if (offScreenImageBuffer.getHeight() != rect.getHeight()) { resize = true; }
}
if (!resize) { return; }

if(rect.width<=0) return; // Not sized yet
offScreenImageBuffer = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB);
ImageComponent2D comp = new ImageComponent2D(ImageComponent.FORMAT_RGB, offScreenImageBuffer, true, false);
offScreenCanvas.setOffScreenBuffer(comp);
}

/**

  • Get preferred configuration for Canvas3D.
  • This method is the same as SimpleUniverise.getPreferredConfiguration().
  • For dual monitor situations, it only works if the main application window
  • is on the primary monitor.
    *
  • @return
    */
    public static GraphicsConfiguration getPreferredConfiguration() {
    GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D();
    String stereo;

// Check if the user has set the Java 3D stereo option.
// Getting the system properties causes appletviewer to fail with a
// security exception without a try/catch.

stereo = (String) java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction() {

public Object run()

{ return System.getProperty("j3d.stereo"); }
});

// update template based on properties.
if (stereo != null) {
if (stereo.equals("REQUIRED")) { template.setStereo(template.REQUIRED); }
else if (stereo.equals("PREFERRED")) { template.setStereo(template.PREFERRED); }
}

// Return the GraphicsConfiguration that best fits our needs.
return GraphicsEnvironment.getLocalGraphicsEnvironment().
getDefaultScreenDevice().getBestConfiguration(template);
}

/**
* Get a GraphicsConfiguration configured for Java3D for the target
* GraphicsDevice.
* The device should be the screen device for displaying the intended Canvas3D.
*
* @return
*/
public static GraphicsConfiguration getPreferredConfiguration(GraphicsDevice device) {

GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D();
String stereo;

// Check if the user has set the Java 3D stereo option.
// Getting the system properties causes appletviewer to fail with a
// security exception without a try/catch.

stereo = (String) java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction() {

public Object run() { return System.getProperty("j3d.stereo"); }

});

// update template based on properties.
if (stereo != null) {
if (stereo.equals("REQUIRED"))

{ template.setStereo(template.REQUIRED); }

else if (stereo.equals("PREFERRED"))

{ template.setStereo(template.PREFERRED); }

}

// Return the GraphicsConfiguration that best fits our needs.
return device.getBestConfiguration(template);

}

/**

  • Get preferred configuration for Canvas3D for Canvas3D objects intended to be
  • added to the provided Window.
  • In multiple monitor situations you should pass the window to this method
  • and it will figure out the correct GraphicContext for the monitor holding the
  • target window.
    *
  • @return
    */
    public static GraphicsConfiguration getPreferredConfiguration(Window window) { GraphicsDevice device = window.getGraphicsConfiguration().getDevice(); return getPreferredConfiguration(device); }

/**

  • Adds a Java2DActor class to the Canvas3D components in this container.
  • Java2DActors perform post render drawing or other interactions on top of the
  • Canvas3D.
  • @param actor Adds this actor (not a clone) to the onScreenCanvas.
  • Adds a clone of this actor to the offscreen canvas.
    */
    public void addActor(Java2DActor actor)
    Unknown macro: { this.actors.add(actor); this.onScreenCanvas.addActor(actor); if (offScreenCanvas != null) { offScreenCanvas.addActor((Java2DActor) actor.clone()); } }

/**

  • Removes a Java2DActor class to the Canvas3D components in this container.
  • Java2DActors perform post render drawing or other interactions on top of the
  • Canvas3D.
  • @param actor
    */
    public boolean removeActor(Java2DActor actor)
    Unknown macro: { this.actors.remove(actor); boolean result = this.onScreenCanvas.removeActor(actor); if (offScreenCanvas != null) { offScreenCanvas.removeActor(actor); } return result; }

/**

  • This method detaches and removes the offscreen canvas. The offscreen
  • canvas is used for making screen shots of the view. It will be automatically
  • re-created when needed for a screenshot.
  • Due to issues in Java3D, this method must be called to
  • explicitly delete the offscreen canvas whenever certain view properties are changed
  • such as the projection policy, screen size, etc.
    */
    public void detachOffScreenCanvas() {
    if (offScreenCanvas != null)
    Unknown macro: { View oldView = offScreenCanvas.getView(); if (oldView != null) { oldView.removeCanvas3D(offScreenCanvas); } offScreenCanvas = null; offScreenImageBuffer = null; }

    }
    }



 Comments   
Comment by harveyh [ 10/Oct/12 ]

I've got a fork of the Java3d code up on github that has a JOGL2 backend, maybe you'll
have better luck with those:

https://github.com/hharrison/java3d-core
https://github.com/hharrison/java3d-utils
https://github.com/hharrison/vecmath

I'm working with the people at jogamp.org to get binary builds going again, feel free to
inquire in the java3d forum there if you have any questions...or if you have success.

Harvey





[JAVA3D-675] j3d-1_5_2-windows-amd64.exe does not install the files into JRE folder Created: 19/Jun/12  Updated: 19/Jun/12

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.5.2
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: darwinjob Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows Enterprise 7 64 bit, java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)



 Description   

If I run the installer j3d-1_5_2-windows-amd64.exe it installs the files into C:\Program Files\Java\Java3D only, not into C:\Program Files\Java\jre7 where I have my default and only Java installation. So, when I run my Java3D application "it says "No Java3D installed" (obviously).






[JAVA3D-619] Maven2 bundle for Java3D 1.5.2 Created: 16/Jun/09  Updated: 08/Jun/12

Status: Open
Project: java3d
Component/s: www
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Improvement Priority: Major
Reporter: azeari Assignee: java3d-issues
Resolution: Unresolved Votes: 6
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://maven.apache.org/guides/mini/guide-central-repository-upload.html


Issuezilla Id: 619

 Description   

The Maven2 central repository http://repo1.maven.org/maven2 has version 1.3.1 of
the following:

j3d-core
j3d-core-utils
vecmath

Maven2 bundles of more recent versions should be built automatically and synced
with the central repository, so that developers who use Java3D with Maven2 don't
need to hunt down these jar files manually and download them.

Instructions for doing this are available at the following URL:

http://maven.apache.org/guides/mini/guide-central-repository-upload.html



 Comments   
Comment by jussenadv [ 08/Jun/12 ]

My project could use this.





[JAVA3D-672] AWT/ GUI Issues on Core i5/ Intel HD Graphics Workstations Created: 20/Jan/12  Updated: 26/Mar/12

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.5.1
Fix Version/s: None

Type: Bug Priority: Major
Reporter: tomzwicker Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows 7, Intel Core i5 Processors 2430/ 2467, Intel HD 3000 and Radeon HD6630M (Samsung Slate PC 700T and Dell Vostro 3350)
Java 6 and Java 7


Attachments: JPEG File IMAG0212.jpg    

 Description   

While Java3D and AWT works fine on older hardware, the newest workstations show flickering and distorted AWT components.

Java3D canvas shows OK. However, after editing e.g. AWT combobox in a neighbouring panel the AWT components are no longer displayed correctly. They show partially distorted, partially normal with strong flickering on every action/ update in the Java3D canvas. Other windows (non-Java applications like start-menu and web-browser) also get distorted and flicker.

It is not possible to work with the Java3D application for a user due to these effects.

Screenshots do not show the distortions.

The error occurs on Java 7 and Java 6.



 Comments   
Comment by tomzwicker [ 26/Mar/12 ]

Screen-photo (not a screenshot, as the screen shot does NOT show the distortions) of the windows environment running office in the background and the Java3D app in the foreground.

Distortions are seen left of the Java/ Java3D window in the office-background. Farther distortions are shown in the lower left-hand corner of the windows screen.

Notice that all areas of the screen, also the Java3D window, get distorted.

Taking a screenshot did not store the distortion to the file. So it may be well possible a driver issue in windows.

Comment by tomzwicker [ 26/Mar/12 ]

Tried Java 32 bit/ 64 bit, Java Version 6 and 7 (latest), Java3D 1.5.1 and 1.5.2 on Windows 7 - all caused the same issue





[JAVA3D-590] Add to central maven repo Created: 11/Aug/08  Updated: 28/Feb/12

Status: Open
Project: java3d
Component/s: www
Affects Version/s: current
Fix Version/s: not determined

Type: Task Priority: Major
Reporter: bengtmansson Assignee: java3d-issues
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://maven.apache.org/guides/mini/guide-central-repository-upload.html


Issuezilla Id: 590

 Description   

The version of java3d in the repository is 1.3.1, which is quite old.
Please add the current version to it (and add it to the release process for the
future releases).
/Bengt

(http://maven.apache.org/guides/mini/guide-central-repository-upload.html)



 Comments   
Comment by joakimerdfelt [ 28/Feb/12 ]

Sonatype is the steward for Maven Central now.
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Other_Projects

They have vastly improved the steps to get content onto maven central.
http://www.sonatype.org/central/participate

They provide the means to get from your own personal development space to http://oss.sonatype.org/ which syncs with maven central roughly every 2 hours.
The instructions at the link above are nice and clear.

java.net has many projects already using this service.





[JAVA3D-673] AWT/ GUI Issues with Windows 7 on Core i5/ Intel HD Graphics Workstations Created: 13/Feb/12  Updated: 13/Feb/12

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.5.1
Fix Version/s: None

Type: Bug Priority: Major
Reporter: tomzwicker Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows 7, Intel Core i5 Processors 2430/ 2467, Intel HD 3000 and Radeon HD6630M (Samsung Slate PC 700T and Dell Vostro 3350)
Java 6 and Java 7



 Description   

While Java3D and AWT works fine on older hardware, the newest workstations show flickering and distorted AWT components.

Java3D canvas shows OK. However, after editing e.g. AWT combobox in a neighbouring panel the AWT components are no longer displayed correctly. They show partially distorted, partially normal with strong flickering on every action/ update in the Java3D canvas. Other windows (non-Java applications like start-menu and web-browser) also get distorted and flicker.

It is not possible to work with the Java3D application for a user due to these effects.

Screenshots do not show the distortions.

The error occurs on Java 7 and Java 6.






[JAVA3D-671] Multiple clip Created: 11/Nov/11  Updated: 11/Nov/11

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.6.0
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: mejlango Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Multiple clip of model could be allowed. Group with child groups (or shapes) then could allow clip each child using child's own clip and also clip itself and all childs using its clip.






[JAVA3D-670] java3d needs to load Created: 23/Oct/11  Updated: 23/Oct/11

Status: Open
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: 1.4.0-dev
Fix Version/s: None

Type: Task Priority: Minor
Reporter: riddle Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[JAVA3D-669] Antialiasing causes fatal error Created: 10/Oct/11  Updated: 10/Oct/11

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.5.2
Fix Version/s: None

Type: Bug Priority: Major
Reporter: mejlango Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

linux x86 - debian 5, Windows 7 x64 (sun java 1.6.27)



 Description   

jvm crash randomly occurs when implicit antialiasing is set to true, or line's LineAttributes has antialiasing set to true. Works fine on NVIDIA, but not on mobility ATI HD 4500/5100 or ATI HD 3200






[JAVA3D-668] LineAttributes setting line width Created: 10/Oct/11  Updated: 10/Oct/11

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.5.2
Fix Version/s: None

Type: Bug Priority: Major
Reporter: mejlango Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

linux x64, debian 5 (sun java 1.6.27)



 Description   

Setting the line width > 10 sets the line width to 10 on NVIDIA (but works correctly on ATI) (I tried it with custom patterned line style)
Documentation does not say anything about restriction of line width.






[JAVA3D-667] Unsigned entry in resource: http://download.java.net/media/java3d/webstart/release/j3d/1.5.2/j3dcore.jar Created: 19/Sep/11  Updated: 21/Sep/11  Resolved: 21/Sep/11

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: darwinjob Assignee: kcr
Resolution: Won't Fix Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Webstart


Attachments: JPEG File screenshot-1.jpg    
Issue Links:
Duplicate
is duplicated by J3D_CORE-1 Unsigned entry in resource: http://do... Resolved
is duplicated by J3D_WEBSTART-1 Found unsigned entry in resource: htt... Resolved

 Description   

Webstart does not work.



 Comments   
Comment by kcr [ 21/Sep/11 ]

As posted to the forum, this was an intentional change. See the following post for more information:

http://www.java.net/forum/topic/javadesktop/java-desktop-technologies/java-3d/unsigned-entry-j3dcorejar#comment-818570





[JAVA3D-315] OffScreen Canvas3D rendering issue. Created: 01/Jun/06  Updated: 26/Aug/11

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.4.0
Fix Version/s: 1.6.0

Type: Bug Priority: Minor
Reporter: otelo Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: All


Attachments: Zip Archive offscreen.zip    
Issuezilla Id: 315

 Description   

Changing the visibility attribute in RenderingAttributes of an Apearance
doesn't cause the Shape3D to re-appear when rendering to an off-screen
canvas3D. Reseting the off-screen buffer remedies the visibility problem, which
is observable in the attached test case after resizing the window.



 Comments   
Comment by otelo [ 01/Jun/06 ]

Created an attachment (id=182)
issue #315 test case

Comment by otelo [ 01/Jun/06 ]

as demonstrated in the test case, this issue doesn't involve geometry
by_reference.

Comment by kcr [ 01/Jun/06 ]

Evaluate for 1.5.0.

Comment by kcr [ 21/Nov/06 ]

P4 bug for 1.5.1 release.

Comment by kcr [ 05/Jan/07 ]

We verified that this bug happens in both 1.4.0 and 1.5.0.

Comment by kcr [ 23/Mar/07 ]

Too risky for 1.5.1. Set target milestone to 1.6.0.

Comment by kcr [ 31/Jan/08 ]

Mark issue as unassigned.

Comment by jedwards1211 [ 26/Aug/11 ]

A workaround I've found for similar issues with ViewPlatform transform changes is to stop and restart the view.





[JAVA3D-410] Nondeterministic display behavior in JCanvas3D Created: 11/Dec/06  Updated: 26/Aug/11

Status: Open
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: 1.6.0

Type: Bug Priority: Major
Reporter: petroslj Assignee: pepe
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Java Source File BugJCanvasExample.java    
Issuezilla Id: 410

 Description   

Certain objects fail to display when the canvas in initially drawn if they are
added to the scene immediately after the window is set visible. The display
behavior is random, although adding a sleep after the setVisible() reduces the
frequency of occurance. Objects will always display after the canvas is
resized. The attached demo of three lines fails to draw about 50% of the time,
but as a heavyweight canvas it always works.



 Comments   
Comment by petroslj [ 11/Dec/06 ]

Created an attachment (id=246)
Example of drawing failure.

Comment by kcr [ 11/Dec/06 ]

Need to evaluate for 1.5.1

Comment by kcr [ 18/Dec/06 ]

Assign to pepe.

Comment by kcr [ 20/Jun/07 ]

Set target to next release.

Comment by jedwards1211 [ 26/Aug/11 ]

I'm having this problem. However, the problem seems to be that the view is not properly updating the scene structure whenever it's attached to an offscreen canvas. For example, in my application there are camera position bookmarks. If I click on one of the bookmarks to go to it, nothing changes on screen. However, if I move the camera by dragging the mouse around on the JCanvas3D (we have our own non-behavior orbit utility that updates the ViewPlatform transform) it suddenly jumps to the new camera position. However, I have used print statements to verify that the JCanvas3D is in fact being repainted whenever I click on a bookmark! Which means the geometry structure must be out-of-date.

In other words, I think the real problem is JAVA3D-315.





[JAVA3D-79] Java3D freezes on removeChild(), no error msgs Created: 15/Oct/04  Updated: 26/Jul/11  Resolved: 23/Mar/06

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Trivial
Reporter: yomeng Assignee: java3d-issues
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC


Issuezilla Id: 79
Status Whiteboard:

incomplete


 Description   

Not to be mistaken with http://bugs.sun.com/bugdatabase/view_bug.do?
bug_id=4355332. My program is multi-threaded and java3d frequently freezes (the
rendering stops and turn grey) at the method removeChild(). As you can see
below, there are printouts "A" "B" "C". When everything work perfectly, I can
see "A" and "B". However, when j3d freezes, I only see "A" thus i conclude it
stops at removeChild(). I am using Java3D 1.3.1 opengl.

for(int i = 0; i < charBranch.numChildren(); i++) {
BranchGroup targetBranch = (BranchGroup)charBranch.getChild;

if(targetBranch.getUserData().equals(_dataTag)) {
System.out.println("A");
try

{ charBranch.removeChild(targetBranch); System.out.println("B"); }

catch(Throwable e)

{ System.out.println("C"); e.printStackTrace(); }

return true;
}
}



 Comments   
Comment by kcr [ 22/Oct/04 ]

Lowering the priority to P5 until a test program is attached.

Comment by kcr [ 19/Jul/05 ]

Updated status

Comment by kcr [ 23/Mar/06 ]

Unable to reproduce without a test program.

Comment by LCID_Fire [ 26/Jul/11 ]

This happens to me when I try to call addChild(BranchGroup) or removeChild(BranchGroup) on a live TransformGroup.





[JAVA3D-666] null-pointer or indexoutofbound crash in GeometryAtom::getRenderAtom Created: 18/Jul/11  Updated: 20/Jul/11

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2, current, 1.6.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: harveyh Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows XP and Windows 7 32 and 64bit



 Description   

The locking of the renderAtoms array is not correct and can allow multiple
threads to overwrite the array during concurrent calls.

The problem arises due to using renderAtoms as the object to synchronize on
and then updating the renderAtoms reference inside the synchronized block.

Patch to follow after a bit more testing.



 Comments   
Comment by harveyh [ 19/Jul/11 ]

From: Harvey Harrison <harvey.harrison@gmail.com>
Date: Tue, 19 Jul 2011 10:08:43 -0700
Subject: [PATCH] java3d: use consistent locking when updating the renderAtoms array

You cannot lock updates to a member variable using itself if the reference is
ever changed. The renderAtoms array in GeomtryAtom is resized when it does not
have enough room for all the open views. This leads to crashes similar to the following:

Exception in thread "J3D-RenderStructureUpdateThread-6" java.lang.ArrayIndexOutOfBoundsException: 5
at javax.media.j3d.GeometryAtom.getRenderAtom(GeometryAtom.java:236)
at javax.media.j3d.RenderBin.removeNodes(RenderBin.java:6848)
at javax.media.j3d.RenderBin.processMessages(RenderBin.java:1374)
at javax.media.j3d.StructureUpdateThread.doWork(StructureUpdateThread.java:97)
at javax.media.j3d.J3dThread.run(J3dThread.java:270)

Use the existing lockObj in this class to synchronize access. This lock is already
being used to protect updates to the centroid update calculation, but both locked
sections are relatively short, if contention ends up being a problem, renderAtoms
could be changed to an ArrayList instead which can be resized or another lockObj could be added.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>

src/javax/media/j3d/GeometryAtom.java | 2 +-
1 files changed, 1 insertions, 1 deletions

diff --git a/src/javax/media/j3d/GeometryAtom.java b/src/javax/media/j3d/GeometryAtom.java
index 235f549..6ec0ab8 100644
— a/src/javax/media/j3d/GeometryAtom.java
+++ b/src/javax/media/j3d/GeometryAtom.java
@@ -159,7 +159,7 @@ class GeometryAtom extends Object implements BHLeafInterface, NnuId {
// If renderAtom is not scoped to this view, don't even
// bother creating the renderAtom

  • synchronized (renderAtoms) {
    + synchronized (lockObj) {
    index = view.viewIndex;
    if (index >= renderAtoms.length) {
Comment by mcneillk [ 20/Jul/11 ]

Thank you Harry. If we can get that test case, I can proceed to validate the issue.

However, I'm a little confused as to why the line number (236) that you site in GeometryAtom.java does NOT match the current Java 3D source from SVN...

Ken

Comment by harveyh [ 20/Jul/11 ]

Sorry about the line-number confusion, I was running with some debugging code while tracing this issue and kept the stacktrace from one of those runs.

I'm afraid it's going to be a bit difficult to distill a testcase for this as it comes from an
internal engineering app I'm not at liberty to distribute.

Comment by harveyh [ 20/Jul/11 ]

OK, I went back and verified the steps I took to track this bug down and found I was
missing one hunk in my patch....thanks for questioning it!

On an unpatched svn checkout (dev-1_6) branch I see the following (within about 10 seconds):

Exception in thread "J3D-RenderStructureUpdateThread-6" java.lang.ArrayIndexOutOfBoundsException: 5
at javax.media.j3d.GeometryAtom.getRenderAtom(GeometryAtom.java:242)
at javax.media.j3d.RenderBin.removeNodes(RenderBin.java:6843)
at javax.media.j3d.RenderBin.processMessages(RenderBin.java:1369)
at javax.media.j3d.StructureUpdateThread.doWork(StructureUpdateThread.java:102)
at javax.media.j3d.J3dThread.run(J3dThread.java:275)

This part is due to the final return renderAtoms[index] not being inside the synchronized
block, moving the return inside the synchronized block then reliably produces the following:

Exception in thread "J3D-RenderStructureUpdateThread-4" java.lang.ArrayIndexOutOfBoundsException: 4
at javax.media.j3d.GeometryAtom.getRenderAtom(GeometryAtom.java:179)
at javax.media.j3d.RenderBin.removeNodes(RenderBin.java:6842)
at javax.media.j3d.RenderBin.processMessages(RenderBin.java:1369)
at javax.media.j3d.StructureUpdateThread.doWork(StructureUpdateThread.java:102)
at javax.media.j3d.J3dThread.run(J3dThread.java:275)

Which occurs as multiple threads can run through this section as each thread updates renderAtoms.

The second part of the patch then uses the lockObj to synchronize all of these accesses
and has run for > 12 hours now without fail. It has pointed out another bug in OrderedBin
which uses the same bad locking pattern.

Turns out the tool FindBugs has a pattern for exactly this locking pattern, and finds 4 instances in Java3d, which I'll submit as separate reports.

The full patch:

src/javax/media/j3d/GeometryAtom.java | 7 ++++---
1 files changed, 4 insertions, 3 deletions

diff --git a/src/javax/media/j3d/GeometryAtom.java b/src/javax/media/j3d/GeometryAtom.java
index e7286db..191468f 100644
— a/src/javax/media/j3d/GeometryAtom.java
+++ b/src/javax/media/j3d/GeometryAtom.java
@@ -165,7 +165,7 @@ class GeometryAtom extends Object implements BHLeafInterface, NnuId {
// If renderAtom is not scoped to this view, don't even
// bother creating the renderAtom

  • synchronized (renderAtoms) {
    + synchronized (lockObj) {
    index = view.viewIndex;
    if (index >= renderAtoms.length) {

@@ -237,9 +237,10 @@ class GeometryAtom extends Object implements BHLeafInterface, NnuId {
}
}
}
+ return (renderAtoms[index]);
}

  • return (renderAtoms[index]);
    +
    +
    }
    // If the renderAtom is transparent, then make sure that the
    // value is up-to-date

    • 1.7.4.msysgit.0




[JAVA3D-665] SimpleUniverse.getPreferredConfiguration() should throw an exception when no supported configuration is found Created: 03/Jul/11  Updated: 03/Jul/11

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.5.2
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: laeubi Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

At the momment SimpleUniverse.getPreferredConfiguration() returns null when no suitable configuration is found .

The API states:

Returns:
The best GraphicsConfiguration object for the system.

Either it should be made clear that it might return null or preferable throws an exception with the actual cause why no suitable configuration could be found (e.g. invalid GLX Version, unsupported driver/card, ...)






[JAVA3D-664] SIGSEGV while rendering Created: 03/Jul/11  Updated: 03/Jul/11

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: None

Type: Bug Priority: Major
Reporter: laeubi Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux/Debian JDK 1.6


Attachments: Text File hs_err_pid17728.log     Text File hs_err_pid18120.log     Text File hs_err_pid19284.log    

 Description   

When resizing the window Java sometimes crash with a SIGSEGV (see attatchments).

It is then stuck and must be killed to terminate the VM.






[JAVA3D-663] Forgotten comment in MouseBehavior Created: 20/May/11  Updated: 20/May/11

Status: Open
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: None

Type: Bug Priority: Trivial
Reporter: peci1 Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 1 minute
Time Spent: Not Specified
Original Estimate: 1 minute
Environment:

Java3D 1.5.2, but I've found out that this bug is in Java3D since 2005...


Tags: comment, mousebehavior

 Description   

com.sun.j3d.utils.behaviors.mouse.MouseBehavior
Line 341 should have been commented out (a System.out.println()), but the author forgot to do so.

Nothing horrible, just overriding the mouseWheelMoved() will workaround the prints to sysout, but it's obviously a bug.






[JAVA3D-662] Fatal NullPointerException in ViewSpecificGroup Created: 27/Apr/11  Updated: 27/Apr/11

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.5.2
Fix Version/s: None

Type: Bug Priority: Major
Reporter: IanGee Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows XP, JOALMixer 1.5.2



 Description   

Further to issue 661.

Added a ViewSpecificGroup to isolate sounds meant for the on screen canvas View object.

Following error occurs on scene initialization:

Exception in thread "J3D-SoundSchedulerUpdateThread-1" java.lang.NullPointerException
at javax.media.j3d.SoundStructure.isSoundScopedToView(SoundStructure.java:640)
at javax.media.j3d.SoundScheduler.changeNodeState(SoundScheduler.java:553)
at javax.media.j3d.SoundScheduler.processMessages(SoundScheduler.java:221)
at javax.media.j3d.StructureUpdateThread.doWork(StructureUpdateThread.java:102)
at javax.media.j3d.J3dThread.run(J3dThread.java:275)

This seems to occur irrespective of the sound mixer being used...and even occurs when a sound mixer is not running.






[JAVA3D-661] sound rendering on view with single off screen canvas Created: 26/Apr/11  Updated: 26/Apr/11

Status: Open
Project: java3d
Component/s: None
Affects Version/s: 1.5.2
Fix Version/s: None

Type: Bug Priority: Major
Reporter: IanGee Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows XP, J3D 1.5.2, JOAL 1.1.1 and JOALMixer 1.5.2



 Description   

I'm developing a driving simulator for road safety training purposes.

I have created a multi-view universe (based on mirrordemo150.jar) to allow for the normal driver forward view to be rendered to the screen plus a rear view mirror image to be rendered to an off screen buffer, which is then copied to a texture and displayed in the mirror's position. This is all working fine.

However, the sound renderer is rendering sound from the rear view perspective. I do not seem to be able to set/reset this to the correct driver's view using the sound mixer setView() method. It appears the setView() method is being called by the J3D rendering loop - this also seems to be causing a non-fatal nullpointer error when it encounters the off screen canvas View object.

I'm not sure why the sound is not being rendered from the perspective of the on-screen active view. Indeed, I'm not sure why its continually rendering sound from the off screen rear view perspective, which is only rendered when the renderOffScreenBuffer() method is invoked.

I don't believe sound should ever normally be rendered for an off screen canvas/view - it simply makes no sense as the user is very unlikely to see the world from this perspective. In my experience, rendering to an off screen buffer is usually done to produce an image for a real-time texture or environment map - e.g. a reflection, or an in-game CCTV image...

Is this a bug? Is there a way to disable sound rendering on a particular View object?
Is maintaining two separate universes, one for on-screen Views with sound and one for off-screen Views with no sound, the only way to overcome this issue?






[JAVA3D-659] Diferent Texturerendering Created: 07/Mar/11  Updated: 08/Mar/11

Status: Open
Project: java3d
Component/s: None
Affects Version/s: not determined
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Schreck Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File resultA.jpg     JPEG File resultB.jpg     JPEG File resultC.jpg     JPEG File resultD.jpg     Java Source File Universe.java    
Tags: Direct3D, OpenGL, Texture

 Description   

Hi,
I'm a new Java3D developer. I found some diferences und varios Machines and Rendering methodes. The sourcecode is a Democode from "Virtual Worlds Productions / Michael Pfeiffer". Here are the results:

Hardware Machine 1:
Mobile Intel(R) GMA X3100
Video-RAM: 358 MB

Software
Windows 7 (32Bit)
Java 1.6.0_23 (32Bit)

j3d Version 1.3.2 + 1.4.0.1
OGL: Result A / D3D: Result D

j3d Version 1.5.0 + 1.5.1 + 1.5.2
OGL: Result A / D3D: Result C

Linux 2.6.32 (Ubuntu 10.04)
Java 1.6.0_24
j3d Version 1.5.2

OGL: Result A

==========

Hardware Machine 2:
Intel(R) 82852/82855 GM/GME Graphics Controller
Video-RAM: 64 MB

Software
Windows XP (32Bit)
Java 1.6.0_20 (32Bit)
j3d Version 1.5.2

OGL: Result C / D3D: Result C

==========

Hardware Machine 3:
ATI Radeon 9600 Series AGP (0x4150)
Video-RAM: 128 MB

Software
Windows XP (32Bit)
Java 1.6.0_?? (32Bit)
j3d Version 1.5.2

OGL: Result A / D3D: Result B

==========

Hardware Machine 4:
ATI Radeon X1200 Series (Microsoft Coorperation - WDDM)
Video-RAM: 831 MB

Software
Windows 7 (64Bit)
Java 1.6.0_23 (32Bit)

j3d Version 1.3.2
OGL: Result A / D3D: Result D

j3d Version 1.4.0.1
OGL: ERROR / D3D: Result D

j3d Version 1.5.0
OGL: ERROR / D3D: Result C

j3d Version 1.5.1 + 1.5.2
OGL: Result C / D3D: Result C

==========

Hardware Machine 5:
ATI Radeon 2100 (Microsoft Coorperation - WDDM)
Video-RAM: 1407 MB

Software
Windows 7 (64Bit)
Java 1.6.0_23 (32Bit)
j3d Version 1.5.2

OGL: Result C / D3D: Result C

==========

Hardware Machine 6:
NVIDIA GeForce 8400 GS
Video-RAM: 1023 MB

Software
Windows 7 (64Bit)
Java 1.6.0_23 (32Bit)
j3d Version 1.5.2

OGL: Result A / D3D: Result C

==========

Hardware Machine 7:
NVIDIA Quadro FX 550
Video-RAM: 383 MB

Software
Windows 7 (64Bit)
Java 1.6.0_23 (32Bit)

j3d Version 1.4.0.1
OGL: Result A / D3D: Result D

j3d Version 1.5.2
OGL: Result A / D3D: Result C



 Comments   
Comment by Schreck [ 08/Mar/11 ]

I am Sorry for my bad english...

The text above is not correct. I'm a new USER from Java3D. I need some help to use Java3D on all my computers with the same result. When you need more tests, please write me. When I can help you by another way, please write me. But I don't have knowlege about pure OpenGL or Direct3D... I'm sorry.





[JAVA3D-657] Text2D should allow for TextureUnitState Created: 09/Feb/11  Updated: 01/Mar/11  Resolved: 01/Mar/11

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: current

Type: Bug Priority: Minor
Reporter: mcneillk Assignee: mcneillk
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: 15 minutes
Original Estimate: 15 minutes


 Description   

Text2D should allow for using a TextureUnitState, instead of a plain texture. Fix is brief and does not affect existing code.

public void setString(String text) {
...
Texture tex = getAppearance().getTexture();

// permit using a TextureUnitState
if (tex == null)

{ tex = getAppearance().getTextureUnitState(0).getTexture(); }

...
// ken
if (getAppearance().getTexture() != null)

{ getAppearance().setTexture(newTex); }

else

{ getAppearance().getTextureUnitState(0).setTexture(newTex); }

 Comments   
Comment by mcneillk [ 01/Mar/11 ]

Simple fix.





[JAVA3D-658] This is a test issue.... Created: 28/Feb/11  Updated: 01/Mar/11  Resolved: 01/Mar/11

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: None
Fix Version/s: current

Type: Bug Priority: Minor
Reporter: kcr Assignee: mcneillk
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: 5 minutes
Original Estimate: Not Specified


 Description   

This is a test...



 Comments   
Comment by kcr [ 28/Feb/11 ]

Ken: please feel free to close this out (or anything you'd like to do to it to test your ability to edit issues).

Comment by mcneillk [ 01/Mar/11 ]

Test





[JAVA3D-608] Patch for issue 575: false SceneGraphCycleException raised when Node.checkForCycle() is called from 2 threads Created: 20/Nov/08  Updated: 25/Jan/11

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Task Priority: Major
Reporter: lamer77 Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Dependency
depends on JAVA3D-575 false SceneGraphCycleException raised... Open
Issuezilla Id: 608

 Description   

This is a patch for issue 575: false SceneGraphCycleException raised when
Node.checkForCycle() is called from 2 threads.

We have a collaborative application where the server sends non live graphs to
clients. It also writes the graph to disk at an interval. Serialising a large
graph using the SceneGraphIO will quite often cause the getBounds method to be
called from two threads at the same time. Which in turn provokes this bug. The
only disadvantage with this patch is that it will create an ArrayList every time
checkForCycle() is called. Mostly when the graph is compiled or from
getBounds(). But I consider correctness to be more important and that you accept
this patch.

  1. This patch file was generated by NetBeans IDE
  2. This patch can be applied using context Tools: Apply Diff Patch action on
    respective folder.
  3. It uses platform neutral UTF-8 encoding.
  4. Above lines and this line are ignored by the patching process.
    Index: j3d-core/src/classes/share/javax/media/j3d/Node.java
      • j3d-core/src/classes/share/javax/media/j3d/Node.java Base (1.7)
        +++ j3d-core/src/classes/share/javax/media/j3d/Node.java Locally Modified (Based
        On 1.7)
        @@ -31,9 +31,9 @@

package javax.media.j3d;

+import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Enumeration;
-import java.lang.reflect.Constructor;

/**

  • The Node class provides an abstract class for all Group and Leaf Nodes.
    @@ -815,15 +815,15 @@
  • checks for cycles in the scene graph
    */
    void checkForCycle() {
  • if (visited) {
    + ArrayList visitedNodes = new ArrayList();
    + Node parent = this;
    + while (parent != null) {
    + if (visitedNodes.contains(parent)) { throw new SceneGraphCycleException(J3dI18N.getString("Node15")); }
  • visited = true;
  • Node parent = getParent();
  • if (parent != null) { - parent.checkForCycle(); + + visitedNodes.add(parent); + parent = parent.getParent(); }
  • visited = false;
    }
  • }



 Comments   
Comment by lamer77 [ 20/Nov/08 ]

This patch will fix issue 575

Comment by aces [ 20/Nov/08 ]

Isn't the method synchronization enough to fix it ?
The ArrayList creation & gc, as well the contains() method calls are expensive.
For large scene graphs it can be a performance hit.

Comment by lamer77 [ 20/Nov/08 ]

Yes, synchronizing the method will also fix it. Although, I'm worried there
could be a deadlock if the there is a cycle.

Lets say we have two nodes A and B where A is child of B and B is child of A.
Thread1 calls A.checkForCycle()
Thread2 calls B.checkForCycle()
A.checkForCycle tries to call B.checkForCycle() but must wait on Thread2
B.checkForCycle tries to call A.checkForCycle() but must wait on Thread1

Unless we synchronize on a static mutex. Or am I wrong?

Comment by lamer77 [ 28/Nov/08 ]

Here is different patch that synchronizes the checkForCycle method on a static
mutex. The advantage is:
1) No garbage will be created
2) There is no chance of deadlock

The only disadvantage this method has is that if two threads try to invoke
checkForCycle at the same time, one of the threads has to wait. Even if they are
working on two completely different graphs. However in real life I don't think
it will be an issue.

Also note that checkForCycle is rarely invoked, so I don't think performance is
a big problem. It is only called when:
1) cloning a not live node
2) calling getBounds on a not live node or shape
3) when compiling a BranchGroup or SharedGroup

  1. This patch file was generated by NetBeans IDE
  2. This patch can be applied using context Tools: Apply Diff Patch action on
    respective folder.
  3. It uses platform neutral UTF-8 encoding.
  4. Above lines and this line are ignored by the patching process.
    Index: j3d-core/src/classes/share/javax/media/j3d/Node.java
      • j3d-core/src/classes/share/javax/media/j3d/Node.java Base (1.7)
        +++ j3d-core/src/classes/share/javax/media/j3d/Node.java Locally Modified (Based
        On 1.7)
        @@ -31,9 +31,9 @@

package javax.media.j3d;

+import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Enumeration;
-import java.lang.reflect.Constructor;

/**

  • The Node class provides an abstract class for all Group and Leaf Nodes.
    @@ -164,7 +164,10 @@
    // for checking for cycles
    private boolean visited = false;

+ // is used to synchronize checkForCycle
+ private static final Object checkForCycleMutex = new Object();

+
/**

  • Constructs a Node object with default parameters. The default
  • values are as follows:
    @@ -815,6 +818,7 @@
  • checks for cycles in the scene graph
    */
    void checkForCycle() {
    + synchronized (checkForCycleMutex)
    Unknown macro: { if (visited) { throw new SceneGraphCycleException(J3dI18N.getString("Node15")); }@@ -825,5 +829,5 @@ }

    visited = false;
    }

  • }
    +}





[JAVA3D-575] false SceneGraphCycleException raised when Node.checkForCycle() is called from 2 threads Created: 17/Mar/08  Updated: 25/Jan/11

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: 1.6.0

Type: Bug Priority: Minor
Reporter: lamer77 Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Java Source File SceneGraphCycleBug.java    
Issue Links:
Dependency
blocks JAVA3D-608 Patch for issue 575: false SceneGraph... Open
Issuezilla Id: 575

 Description   

Calling Node.checkForCycle from two threads at the same time will throw a
SceneGraphCycleException. Even though there is not a cycle in the scenegraph.

The bug lies in Node.checkForCycle():

void checkForCycle() {
if (visited)

{ throw new SceneGraphCycleException(J3dI18N.getString("Node15")); }

visited = true;
Node parent = getParent();
if (parent != null)

{ parent.checkForCycle(); }

visited = false;
}

The member variable "visited" is set when entering and cleared when exiting the
method checkForCycle. If a second thread enters the method the flag will be set
and the exception raised.

This bug can be fixed by either synchronizing the method, or rewrite it to not
use a member variable:

synchronized void checkForCycle() {
Vector visitedNodes = new Vector();
Node parent = this;
while (parent != null) {
if (visitedNodes.contains(parent))

{ throw new SceneGraphCycleException(J3dI18N.getString("Node15")); }

visitedNodes.add(parent);
parent = parent.getParent();
}
}

I'll post a test case that will try to reproduce the bug. Although it may not
always work since because of the threading.



 Comments   
Comment by lamer77 [ 17/Mar/08 ]

Created an attachment (id=351)
Class that tries to reproduce the SceneGraphSycle exception

Comment by kcr [ 13/May/08 ]

Yes, this is a bug, similar to other MT bugs such as issue 192 and issue 193.
Until these bugs are addressed, the safest thing to do is to not do concurrent
operations to a node and any of its descendants.

Set to post-1.5.2 and lower priority to P4.





[JAVA3D-324] Lockup Java3D program and throw exception using JOGL renderer Created: 30/Jun/06  Updated: 25/Jan/11  Resolved: 28/Oct/06

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.0
Fix Version/s: 1.5.0

Type: Bug Priority: Major
Reporter: yowmhong Assignee: jada
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC
URL: http://forums.java.net/jive/thread.jspa?threadID=16495&tstart=0


Issue Links:
Dependency
blocks JAVA3D-336 Unable to redraw when resizing using ... Resolved
Issuezilla Id: 324

 Description   

Original discussion thread:

http://forums.java.net/jive/thread.jspa?threadID=16495&tstart=0

Using the test program from issue #98
https://java3d.dev.java.net/issues/show_bug.cgi?id=98

Use the following command the run the test program.
java -Dj3d.rend=jogl TestCanvasPanel

The exception can be reproduced everytime on my machine
usually within 3 iterations.

OS : Windows XP Media Center
HW : Core Duo Dell Inspiron 1505
Graphics Card : Intel GSM945

The same hardware runs very stable using the two normal
Java3D renders.

-----------------------------------------------------------------------------
Java 3D [dev] 1.5.0-build4-experimental 28 Jun 2006 09:30:26 PDTException in
thread "J3D-Renderer-1" java.lang.RuntimeException: Unable to make new context
current
at javax.media.j3d.JoglPipeline.createNewContext(JoglPipeline.java:6613)
at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:4474)
at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:2248)
at javax.media.j3d.Renderer.doWork(Renderer.java:737)
at javax.media.j3d.J3dThread.run(J3dThread.java:256)



 Comments   
Comment by kcr [ 10/Jul/06 ]

Set target milestone to 1.5.0

Comment by kcr [ 28/Jul/06 ]

Assign to kbr for evaluation.

Comment by jada [ 20/Sep/06 ]

We were able to reproduce this bug on an Intel(R) 82865G Graphics Controller
system with the latest driver (Version PV14.17 :
http://www.intel.com/support/graphics/intel865g/
This is also the same driver for Intel(R) 945G Express Chipset.

From our investigation, we have concluded that this is a driver bug, and it is
reproducable, intermittently, on both jogl and native ogl pipeline.

Lower bug to P3, but we plan to look for a possible workaround in beta2.
Since this bug affect ogl and jogl, kbr don't have to be the responsible engineer.

Comment by jada [ 05/Oct/06 ]

Added a work around to the JOGL pipe that seems to fix the problem when
SetPixelFormat() fail. Our stress test program is now able to run much longer
but will eventually hard crash the system. We believe this is caused by yet
another bug in the driver, probably a driver resource bug.

Reassign to jada

Comment by jada [ 28/Oct/06 ]

This bug is consider fixed as descibed in the issue's summary. Fixed in Java 3D
1.5.0 beta2. Any new problem pertaining to driver should file as an new issue.

Comment by jada [ 28/Oct/06 ]

This bug is consider fixed as descibed in the issue's summary. Fixed in Java 3D
1.5.0 beta2. Any new problem pertaining to driver should file as an new issue.





[JAVA3D-336] Unable to redraw when resizing using JOGL pipeline Created: 25/Jul/06  Updated: 25/Jan/11  Resolved: 23/Oct/06

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.0
Fix Version/s: 1.5.0

Type: Bug Priority: Major
Reporter: yowmhong Assignee: kbr
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC


Issue Links:
Dependency
depends on JAVA3D-324 Lockup Java3D program and throw excep... Resolved
Issuezilla Id: 336
Status Whiteboard:

incomplete


 Description   

When an existing Java3D application using JOGL pipeline, Canvan3D
fails to redraw after Canvas3D is resized. Sometimes, the resized Canvas3D
is all in Grey and sometime the bottom portion of the Canvas3D is white or
with ghost image.

Java3D Runtime:
Java 3D [dev] 1.5.0-pre5-0607250103-experimental 25 Jul 2006 01:03:02 PDT

JOGL: Latest daily build - 2006-07-25

System Information:
Dell E1505 - Windows XP with Core Duo and Intel 950 Chipset.



 Comments   
Comment by yowmhong [ 25/Jul/06 ]

The latest Java3D + JOGL still throw the following exception quite often.

[MyApp] Exception in thread "J3D-Renderer-1" java.lang.RuntimeException:
Unable to make new context current
[MyApp] at
javax.media.j3d.JoglPipeline.createNewContext(JoglPipeline.java:6846)
[MyApp] at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:4465)
[MyApp] at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:2248)
[MyApp] at javax.media.j3d.Renderer.doWork(Renderer.java:737)
[MyApp] at javax.media.j3d.J3dThread.run(J3dThread.java:256)

Comment by kcr [ 28/Jul/06 ]

The intermittent exception is a duplicate of issue 321, which is still open.

The resize problem may or may not be related to 321, since it happens only on
the same HW (intel graphics chipset). Can the resize problem be seen with any
app (e.g., HelloUniverse or the TestCanvasPanel from issue 98)? If not, please
attach a test case. Thanks.

Comment by kcr [ 28/Jul/06 ]

Assign to kbr for evaluation.

Comment by kcr [ 08/Aug/06 ]

I mistakenly identified the rendering exception as a duplicate of 321, when in
fact it is a duplicate of issue 324.

I am adding issue 324 as a dependency of this bug. We will evaluate this bug
after 324 is fixed.

Comment by jada [ 20/Sep/06 ]

We were able to reproduce this bug on an Intel(R) 82865G Graphics Controller
system with the latest driver (Version PV14.17 :
http://www.intel.com/support/graphics/intel865g/
This is also the same driver for Intel(R) 945G Express Chipset.

From our investigation, we believe this is likely to be a driver bug, This bug
is reproducable, intermittently, on jogl pipeline, but not on native ogl; this
could be we have not try long enough.

See also issue 324 on Exeception in J3D-Renderer-1 observation.

Comment by kcr [ 23/Oct/06 ]

With the beta1 build of Java 3D we are unable to reproduce this. I am marking it
as "incomplete" pending more information from the submitter of this bug. Does
this bug still happen on your system?

Comment by kcr [ 23/Oct/06 ]

Fixed in 1.5.0-beta1.





[JAVA3D-330] Writable geometry should use "frequently changed" for display list criteria Created: 14/Jul/06  Updated: 25/Jan/11

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.0
Fix Version/s: 1.6.0

Type: Bug Priority: Major
Reporter: kcr Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Dependency
blocks JAVA3D-329 Consider changing default of j3d.opti... Open
Issuezilla Id: 330

 Description   

Writable geometry should use the "frequently changed" attribute
(capabilityIsFrequent) as the criteria to determine whether it is put into a
display list for rendering. Currently, it erroneously uses the optmizeForSpace
system property, which is unrelated. The reason for this is that there is a bug
in the way the capabilityIsFrequent flag is propagated to the rendering code.
This must be fixed before we can change the default of j3d.optimizeForSpace to
false (issue 329).



 Comments   
Comment by kcr [ 14/Jul/06 ]

Set target milestone to 1.5.0 and assign to kcr.

Comment by kcr [ 08/Aug/06 ]

Set target milestone to 1.6.0, since issue 329 has been deferred until then.

Comment by kcr [ 09/Jan/07 ]

Unassigned.





[JAVA3D-329] Consider changing default of j3d.optimizeForSpace to false Created: 14/Jul/06  Updated: 25/Jan/11

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.0
Fix Version/s: 1.6.0

Type: Improvement Priority: Major
Reporter: kcr Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Dependency
depends on JAVA3D-330 Writable geometry should use "frequen... Open
depends on JAVA3D-110 D3D optimizeForSpace failed render ge... Resolved
Issuezilla Id: 329

 Description   

The j3d.optimizeForSpace system property controls whether by-reference geometry
is placed into a display list or rendered as a vertex array. It is currently
true by default, meaning that vertex arrays will be used. This takes less space,
but will render more slowly. For performance, especially in the JOGL pipeline,
we should consider changing the default value of optimizeForSpace to false.



 Comments   
Comment by kcr [ 14/Jul/06 ]

Note that this issue depends on issues 330 and 110.

Comment by kcr [ 14/Jul/06 ]

Assign to kcr and set target milestone to 1.5.0.

Comment by kcr [ 14/Jul/06 ]

Fix will be in 1.5.0-build5

Comment by kcr [ 14/Jul/06 ]

Oops, wrong issue (I hate the feature of issue tracker where it automatically
goes to the next issue after a "submit").

Comment by kcr [ 08/Aug/06 ]

We are deferring this to 1.6.0, since we aren't otherwise addressing geometry
performance in the 1.5.0 release, and there is a trivial workaround (the app can
set the system property).

Comment by kcr [ 09/Jan/07 ]

Unassigned.





[JAVA3D-110] D3D optimizeForSpace failed render geometry with large date set. Created: 03/Mar/05  Updated: 25/Jan/11  Resolved: 20/Dec/06

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.3.2-dev
Fix Version/s: not determined

Type: Bug Priority: Trivial
Reporter: yowmhong Assignee: java3d-issues
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: PC


Issue Links:
Dependency
blocks JAVA3D-329 Consider changing default of j3d.opti... Open
Issuezilla Id: 110
Status Whiteboard:

incomplete


 Description   

There is a bug that is related to D3D
implementation with the following two options:
-Dj3d.rend=d3d -Dj3d.optimizeForSpace=false

When a large data set is rendered with all the triangle
arrays constructed with by-reference vertex format,
only a certain number of geometry arrays are rendered.
The OGL version works very well while the D3D version fails
to render properly with the following property set
to false

-Dj3d.optimizeForSpace=false

Releate discussion thread.
http://www.javadesktop.org/forums/thread.jspa?threadID=8665&tstart=30

Large data set is in terms of number of geometries.
Not in terms of single large geometry. It is verified
that for a 500K TriangleArray can be displayed properly
with or without optimizeForSpace under D3D.

Reported here to be able to track it.



 Comments   
Comment by kcr [ 19/Jul/05 ]

Updated status

Comment by aces [ 22/Jul/05 ]

Accept issue.

Comment by kcr [ 02/Nov/05 ]

Lower to P5. Workaround is to leave optimizeForSpace set to true.

Comment by kcr [ 02/Nov/05 ]

Lower to P5

Comment by kcr [ 23/May/06 ]

Need to evaluate for 1.5.0, since we are seriously considering making
optimizeForSpace=false by default.

Comment by kcr [ 10/Jul/06 ]

Raise priority to P3 – at the very least, we must ignore the optimizeForSpace
flag in D3D pipeline.

Comment by aces [ 17/Jul/06 ]

Do you have test case for this issue ?

Comment by kcr [ 08/Aug/06 ]

Given that we don't have a test case, I am lowering to P5 and marking as
"incomplete". In any case, this bug isn't as important, since we have pushed
issue 329 back to the 1.6.0 release.

Comment by kcr [ 04/Oct/06 ]

Any chance we can get a test case? If not we will eventually close the issue,
since we can't reproduce it. We will leave it open for at least another month.

Comment by aces [ 05/Oct/06 ]

I'll check what is possible to fix D3D native code side.

Comment by kcr [ 05/Oct/06 ]

Since there is no test case, I don't think it is worth spending any time on this
one. There are other, higher priority bugs that need to be addressed.

Comment by kcr [ 20/Dec/06 ]

Closing as not reproducible.





[JAVA3D-656] MediaContainerState tries to save/restore null field, causing NPE Created: 10/Jan/11  Updated: 17/Jan/11  Resolved: 17/Jan/11

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: mcneillk Assignee: mcneillk
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 656

 Description   

public void writeObject(DataOutput dataoutput)
throws IOException

{/* 62*/ super.writeObject(dataoutput); /* 64*/ dataoutput.writeBoolean(((MediaContainer)node).getCacheEnable()); /* 65*/ dataoutput.writeUTF(((MediaContainer)node).getURLString()); }

public void readObject(DataInput datainput)
throws IOException

{/* 69*/ super.readObject(datainput); /* 71*/ ((MediaContainer)node).setCacheEnable(datainput.readBoolean()); /* 72*/ ((MediaContainer)node).setURLString(datainput.readUTF()); }

 Comments   
Comment by mcneillk [ 10/Jan/11 ]

MediaContainerState.java tries to read and write the URLString field on the
MediaContainer object, but this field can, and often is, NULL.

From the javadoc:

"Only one type of sound media data specified using setURLString, setURLObject,
or setInputStream may be non-null (or they may all be null). An attempt to set
more than one of these attributes to a non-null reference will result in an
exception being thrown."

Best fix is to test which field is set, and save / restore that field. in the
case of InputStream, the data can be saved in a byte[].

Comment by mcneillk [ 10/Jan/11 ]

Assigned

Comment by mcneillk [ 10/Jan/11 ]

Started

Comment by mcneillk [ 17/Jan/11 ]

Checked-in.





[JAVA3D-655] Text2D doesn't override cloneNode() or duplicateNode() Created: 21/Dec/10  Updated: 22/Dec/10  Resolved: 22/Dec/10

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: 1.3.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: mcneillk Assignee: mcneillk
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 655

 Description   

Text2D doesn't override cloneNode() or duplicateNode(). As such, certain
attributes won't clone correctly. Fix is to call Shape3D methods, then add
particulars for Text2D.



 Comments   
Comment by mcneillk [ 21/Dec/10 ]

Easy, low-risk fix.

Comment by mcneillk [ 22/Dec/10 ]

Fixed:

Line 142
// issue 655
private Text2D()

{ setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); setCapability(Shape3D.ALLOW_APPEARANCE_READ); setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); }

// issue 655
public Node cloneNode(boolean forceDuplicate)

{ Text2D t2d = new Text2D(); t2d.color.set(color); t2d.fontName = fontName; t2d.fontSize = fontSize; t2d.fontStyle = fontStyle; t2d.text = text; t2d.duplicateNode(this, forceDuplicate); return t2d; }




[JAVA3D-642] Method GeometryInfo.getIndexedGeometryArray(...) javadoc params inversed Created: 18/Mar/10  Updated: 22/Dec/10  Resolved: 22/Dec/10

Status: Resolved
Project: java3d
Component/s: docs
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Minor
Reporter: mcneillk Assignee: mcneillk
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 642

 Description   

In GeometryInfo.java, the last 2 params in method 'getIndexedGeometryArray
(boolean compact, boolean byRef, boolean interleaved, boolean
useCoordIndexOnly, boolean nio)' as documented in javadoc are inversed. If you
look at the implementation, the second to last parameter is passed in as
the 'nio' parameter, and the very last parameter is used to
signify 'useCoordIndexOnly' in the code.

This leads to unexpected behavior.

The fix is to adjust the javadoc comment in the source.



 Comments   
Comment by mcneillk [ 18/Mar/10 ]

Easy, low impact.

Comment by mcneillk [ 21/Dec/10 ]

In progress.

Comment by mcneillk [ 21/Dec/10 ]

Will check in soon.

Comment by mcneillk [ 22/Dec/10 ]

Had been fixed before SVN migration.





[JAVA3D-654] SpotLightState should extend PointLightState--SpotLight attributes not saved. Created: 22/Nov/10  Updated: 22/Dec/10  Resolved: 22/Dec/10

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: mcneillk Assignee: mcneillk
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 654

 Description   

Internal IO class
com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d.SpotlightState should
extend PointLightState, instead of LightState. Currently, SpotLight attributes
are not saved by scenegraph IO.

I have fixed other issues like this; the solution is:

1. Let SpotlightState extend PointLightState.
2. Add version 5 to current Controller.java:

/**

  • The File version which will be written
    *
  • 1 = Java3D 1.3 beta 1
  • 2 = Java3D 1.3 FCS, 1) fix to allow skipping user data written via
    SceneGraphIO interface
    2) Add missing duplicateOnCloneTree flag
    (Internal IO class
    com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d.SpotlightState should
    extend PointLightState, instead of LightState. Currently, SpotLight attributes
    are not saved by scenegraph IO.

I have fixed other issues like this; the solution is:

1. Let SpotlightState extend PointLightState.
2. Add version 5 to current Controller.java:

/**

  • The File version which will be written
    *
  • 1 = Java3D 1.3 beta 1
  • 2 = Java3D 1.3 FCS, 1) fix to allow skipping user data written via
    SceneGraphIO interface
    2) Add missing duplicateOnCloneTree flag
    (bug 4690159)
  • 3 = Java3D 1.5.1 1) Add support for SceneGraphObject Name field
  • 4 = Java3D 1.5.2 issue 532, for saving Background Geometry
    */
    protected int outputFileVersion = 4;

3. Test for version 5 in SpotLightState, in order to maintain full compatibility
with current persisted scenes containing SpotLights.)

  • 3 = Java3D 1.5.1 1) Add support for SceneGraphObject Name field
  • 4 = Java3D 1.5.2 issue 532, for saving Background Geometry
    */
    protected int outputFileVersion = 4;

3. Test for version 5 in SpotLightState, in order to maintain full compatibility
with current persisted scenes containing SpotLights.



 Comments   
Comment by mcneillk [ 22/Nov/10 ]

After further analysis, it is not feasible for point 1., below (to have
SpotLightState inherit from PointLightState). The fix will simply do a test in
method "readObject(DataInput in)" in SpotLightState:

// issue 654: add missing attributes, since we should really inherit
// from PointLightState
if (control.getCurrentFileVersion() >= 5)

{ ((PointLight)node).setAttenuation(control.readPoint3f(in)); ((PointLight) node).setPosition(control.readPoint3f(in)); }
...

Controller.java

/**
* The File version which will be written
*
* 1 = Java3D 1.3 beta 1
* 2 = Java3D 1.3 FCS, 1) fix to allow skipping user data written via
SceneGraphIO interface
2) Add missing duplicateOnCloneTree flag
(After further analysis, it is not feasible for point 1., below (to have
SpotLightState inherit from PointLightState). The fix will simply do a test in
method "readObject(DataInput in)" in SpotLightState:

// issue 654: add missing attributes, since we should really inherit
// from PointLightState
if (control.getCurrentFileVersion() >= 5) { ((PointLight)node).setAttenuation(control.readPoint3f(in)); ((PointLight) node).setPosition(control.readPoint3f(in)); }

...

Controller.java

/**

  • The File version which will be written
    *
  • 1 = Java3D 1.3 beta 1
  • 2 = Java3D 1.3 FCS, 1) fix to allow skipping user data written via
    SceneGraphIO interface
    2) Add missing duplicateOnCloneTree flag
    (bug 4690159)
  • 3 = Java3D 1.5.1 1) Add support for SceneGraphObject Name field
  • 4 = Java3D 1.5.2 issue 532, for saving Background Geometry
  • 5 = Java3D 1.5.3 issue 654, for saving required SpotLight attributes
    */
    protected int outputFileVersion = 5;
    )
  • 3 = Java3D 1.5.1 1) Add support for SceneGraphObject Name field
  • 4 = Java3D 1.5.2 issue 532, for saving Background Geometry
  • 5 = Java3D 1.5.3 issue 654, for saving required SpotLight attributes
    */
    protected int outputFileVersion = 5;
Comment by mcneillk [ 25/Nov/10 ]

Issue is resolved technically.

Comment by mcneillk [ 22/Dec/10 ]

Checked-in.





[JAVA3D-638] ObjectFile should allow to build geometry that is NOT 'BY_REFERENCE' Created: 10/Dec/09  Updated: 22/Dec/10  Resolved: 22/Dec/10

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: mcneillk Assignee: mcneillk
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 638

 Description   

For consistency, ObjectFile.java should default to BY_COPY geometry, or at least
allow this to be specified in the constructor, as with other properties, like
TRIANGULATE.

This can be accomplished by changing line 1195:

shape.setGeometry(gi.getGeometryArray(true, true, false));
to
shape.setGeometry(gi.getGeometryArray(false, false, false));

Trivial fix is ready.



 Comments   
Comment by mcneillk [ 10/Dec/09 ]

Fix ready.

Comment by aces [ 11/Dec/09 ]

Hi

Would be interesting to check if it reduces memory usage on very large models.

There is a possibility it breaks some applications with access Object's
geometries and try to read/change it as BY_Reference. A counter argument is
that ObjectFile doesn't specify the Geometry vertex format and programmer should
check it at runtime.

Comment by mcneillk [ 11/Dec/09 ]

I understand your feedback.

For me, it is really a question of consistency; that is that all other loaders
use the 'default' behavior of Java 3D, which is BY_COPY. Wanting to change the
geometry at runtime BY_REFERENCE is an explicit declaration that requires an
GeometryUpdater, etc.

In addition however, there is the potential for memory problems with
BY_REFERENCE, chiefly Java 3D is known to keep references to the reference
array, requiring calls like 'setCoordRefFloat(null);' to clean-up.

I would like us to consider these issues.

Comment by mcneillk [ 21/Dec/10 ]

Integrated.

Comment by mcneillk [ 21/Dec/10 ]

Will close soon.

Comment by mcneillk [ 22/Dec/10 ]

Checked-in





[JAVA3D-636] TextureAttributes.java - some props not duplicated during clone Created: 09/Dec/09  Updated: 22/Dec/10  Resolved: 22/Dec/10

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: mcneillk Assignee: mcneillk
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 636

 Description   

Minor fix adds some copying to end of method:

void duplicateAttributes(NodeComponent originalNodeComponent,
boolean forceDuplicate) {
...
...
// mcneillk: start fix
if (rt.getTextureMode() != TextureAttributes.COMBINE)

{ return; }

rt.combineRgbMode = attr.getCombineRgbMode();
rt.combineAlphaMode = attr.getCombineAlphaMode();

for (int i = 0; i < 3; i++)

{ rt.combineRgbSrc[i] =attr.getCombineRgbSource(i); rt.combineAlphaSrc[i] = attr.getCombineAlphaSource(i); rt.combineRgbFcn[i] = attr.getCombineRgbFunction(i); rt.combineAlphaFcn[i] = attr.getCombineAlphaFunction(i); }

rt.combineRgbScale = attr.getCombineRgbScale();
rt.combineAlphaScale= attr.getCombineAlphaScale();
// mcneillk: end fix
}



 Comments   
Comment by mcneillk [ 09/Dec/09 ]

My fix is provided.

Comment by mcneillk [ 09/Dec/09 ]

I'll wait a few days, and then integrate this.

Comment by interactivemesh [ 12/Dec/09 ]

I suggest following coding

  • use initCombineXXX methods as it is done for other attributes
  • copy combine attributes even if the current texture mode != COMBINE, they can
    always be set

void duplicateAttributes(NodeComponent originalNodeComponent,
boolean forceDuplicate) {

. . .

// start fix
rt.initCombineRgbMode(attr.getCombineRgbMode());
rt.initCombineAlphaMode(attr.getCombineAlphaMode());

rt.initCombineRgbScale(attr.getCombineRgbScale());
rt.initCombineAlphaScale(attr.getCombineAlphaScale());

// Check one of the combine source or function arrays
if (attr.combineRgbSrc != null) {
for (int i=0; i < 3; i++)

{ rt.initCombineRgbSource(i, attr.getCombineRgbSource(i)); rt.initCombineAlphaSource(i, attr.getCombineAlphaSource(i)); rt.initCombineRgbFunction(i, attr.getCombineRgbFunction(i)); rt.initCombineAlphaFunction(i, attr.getCombineAlphaFunction(i)); }

}
// end fix
}

Comment by mcneillk [ 21/Dec/10 ]

Integrated.

Comment by mcneillk [ 21/Dec/10 ]

Integrated.

Comment by mcneillk [ 22/Dec/10 ]

Checked-in.





[JAVA3D-531] Configurable Noise Texture Generator Created: 27/Sep/07  Updated: 21/Dec/10  Resolved: 21/Dec/10

Status: Resolved
Project: java3d
Component/s: j3d-optional-utils
Affects Version/s: current
Fix Version/s: not determined

Type: New Feature Priority: Minor
Reporter: mcneillk Assignee: mcneillk
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 531

 Description   

This feature uses public domain algorithms (à la Ken Perlin) to generate either
static, noise-based textures like marble, wood, etc., or dynamic, animated
textures like water, smoke, fire-like effects. In the case of an animated
texture, images are stored in ImageComponent2D accessed by reference, using a
Behavior wakeup on elapsed frames.



 Comments   
Comment by mcneillk [ 05/Oct/07 ]

Waiting for feedback.

Comment by kcr [ 08/Oct/07 ]

The best place for this utility is in the "j3d-contrib-utils" project. If you
are interested in contributing, we will work with you to get your code integrated.

Comment by mcneillk [ 29/Apr/09 ]

The code is ready for integration.

Comment by mcneillk [ 21/Dec/10 ]

The code for this is available in J3DWorkbench. It doesn't need to be a part of
j3d-contrib-utils.





[JAVA3D-529] 'One-stop shopping' for Mouse Keyboard Nav Pick Translate Rotate Scale Behavior Created: 27/Sep/07  Updated: 21/Dec/10  Resolved: 21/Dec/10

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Improvement Priority: Major
Reporter: mcneillk Assignee: mcneillk
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 529

 Description   

Over time, I have seen many requests for a more unified input Behavior node that
would combine mouse and keyboard events and perform View navigation, Picking,
Translating, Rotating, Scaling in a configurable, intuitive manner. Other
enhancements include:

1. Camera compensation for moving and rotating objects: e.g. always moves an
object with respect to the viewer's frame of reference.
2. Proportional translation at greater distances / keyboard timing acceleration
3. Smooth, optimized event trapping.
4. Non-uniform scale control to deform Shape3Ds with possibility of permanently
transforming the underlying geometry as a result.

I would like to contribute this code to utils. Today, it consists of a complete
gut and rewrite of MouseBehavior, along with a concrete implementation class.



 Comments   
Comment by mcneillk [ 05/Oct/07 ]

Waiting for feedback.

Comment by kcr [ 08/Oct/07 ]

The best place for this utility is in a new package in the "j3d-contrib-utils"
project. If you are interested in contributing, we will work with you to get
your code integrated.

We would like to review the proposed API before you integrate it.

Comment by mcneillk [ 29/Apr/09 ]

Ready for review and integration. Will clean and post it.

Comment by mcneillk [ 21/Dec/10 ]

The code for this is available in J3DWorkbench. It doesn't need to be a part of
j3d-contrib-utils.





[JAVA3D-533] Need method in BranchGroup "isInBackground()" Created: 08/Oct/07  Updated: 21/Dec/10  Resolved: 21/Dec/10

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: 1.6.0

Type: Improvement Priority: Major
Reporter: mcneillk Assignee: mcneillk
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 533

 Description   

Need method in BranchGroup "isInBackground()" to allow code to determine if a
branch is in the Background geometry during traversal of scenegraph from some
arbitrary node. See issue 532.



 Comments   
Comment by kcr [ 08/Oct/07 ]

Set target milestone to 1.6.0. Note that since this is a core API change, it
cannot be done for 1.5.2.

Comment by mcneillk [ 29/Apr/09 ]

Can I implement this, as planned?

It's fairly trivial.

Comment by mcneillk [ 21/Dec/10 ]

Issue 532 was fixed without this, and the added value is too low.





[JAVA3D-651] Java3D deadlock Created: 07/Jun/10  Updated: 08/Dec/10

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Critical
Reporter: paasiala Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: PNG File java3d deadlock.png    
Issuezilla Id: 651

 Description   

Sometimes I have a deadlock in our Java3D application. It is really difficult to
duplicate, but I took an image of the threads that are in wait state, if this
helps.



 Comments   
Comment by paasiala [ 07/Jun/10 ]

Created an attachment (id=388)
image of Java3D threads

Comment by mcneillk [ 08/Dec/10 ]

I have seen this behavior intermittently, mostly under Windows XP with OGL
renderer. I am raising priority to P2, and I invite others to post thread dumps,
and other contextual info, such as any action that is likely to trigger it.





[JAVA3D-587] Loading a .obj file using objectfile class breaks Created: 24/Jun/08  Updated: 25/Nov/10  Resolved: 25/Nov/10

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: 1.5.0
Fix Version/s: not determined

Type: Bug Priority: Critical
Reporter: usubhash Assignee: mcneillk
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: PC


Attachments: Text File abc.obj    
Issuezilla Id: 587

 Description   

Hi,
When the objectfile class from com.sun.j3d.loaders.objectfile package tries to
load a .obj file, if the .obj file has no end of line character it breaks. The
problem I faced is, I have converted a ply to obj using meshlab software. Now in
the end of the obj file a comment got generated but no end of line. As the class
while reading the bytes is somehow missing that and ignoring the EOF character
and stays there. I hope I am clear, please let me know if you need further
information.



 Comments   
Comment by usubhash [ 24/Jun/08 ]

Created an attachment (id=365)
Obj file which is causing the issue

Comment by mcneillk [ 10/Dec/09 ]

I have tested this, and have found what I believe to be the principle problem.
In my tests, in ObjectFileParser.java, we find:

void skipToNextLine() throws ParsingErrorException {
while (ttype != TT_EOL)

{ getToken(); }

} // end of skipToNextLine

causes an infinite loop, whereas this is fixed by adding a simple test for -1:

while (ttype != TT_EOL && ttype != -1) {

I would like to integrate this along with fixes #TBD & #TBD to make this code
more useable.

Comment by mcneillk [ 21/Dec/09 ]

Reassign to self and check-in.

Comment by mcneillk [ 25/Nov/10 ]

Fix is described above.

Comment by mcneillk [ 25/Nov/10 ]

Was already checked-in 12-21-2009.





[JAVA3D-653] Crash on Windows 7 64 bits Created: 24/Aug/10  Updated: 24/Aug/10

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Trivial
Reporter: ecamus Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: other
Platform: PC


Issuezilla Id: 653

 Description   

Java 3d crash on Windows 7 64 bits with last ati drivers

Crash file :

#

  1. A fatal error has been detected by the Java Runtime Environment:
    #
  2. EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006949d6d6, pid=5488,
    tid=4772
    #
  3. JRE version: 6.0_21-b07
  4. Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0-b17 mixed mode windows-amd64 )
  5. Problematic frame:
  6. C [atio6axx.dll+0x46d6d6]
    #
  7. If you would like to submit a bug report, please visit:
  8. http://java.sun.com/webapps/bugreport/crash.jsp
  9. The crash happened outside the Java Virtual Machine in native code.
  10. See problematic frame for where to report the bug.
    #

--------------- T H R E A D ---------------

Current thread (0x000000004ca98000): JavaThread "J3D-Renderer-1"
[_thread_in_native, id=4772, stack(0x0000000057000000,0x0000000057100000)]

siginfo: ExceptionCode=0xc0000005, writing address 0x0000000000000008

Registers:
EAX=0x0000000058b71390, EBX=0x000000006a28cd80, ECX=0x0000000000000000,
EDX=0x0000000000000001
ESP=0x00000000570fe260, EBP=0x0000000000000003, ESI=0x0000000000000000,
EDI=0x0000000000000031
EIP=0x000000006949d6d6, EFLAGS=0x0000000000010202

Top of Stack: (sp=0x00000000570fe260)
0x00000000570fe260: 0000000000000003 0000000035c391b8
0x00000000570fe270: 000000006a28cd80 0000000000000031
0x00000000570fe280: 000000006a28a898 00000000693534fc
0x00000000570fe290: 0000000035c391b8 000000006a28a898
0x00000000570fe2a0: 0000000000000003 000000006a288e00
0x00000000570fe2b0: 0000000000000961 000000006a289398
0x00000000570fe2c0: 000000006a288d80 000000006937037f
0x00000000570fe2d0: 0000000058b71310 0000000000000000
0x00000000570fe2e0: 000000006a288e00 ffffffffffdffffb
0x00000000570fe2f0: 000000006a28a800 0000000000000031
0x00000000570fe300: 000000005762d750 0000000000000003
0x00000000570fe310: 000000006a28a800 0000000000000031
0x00000000570fe320: 0000000000000000 0000000000000000
0x00000000570fe330: 0000000000000961 000000006932f260
0x00000000570fe340: 0000000000000961 0000000000000003
0x00000000570fe350: 000000006a288d80 0000000000000000

Instructions: (pc=0x000000006949d6d6)
0x000000006949d6c6: 00 00 48 8b 83 c0 00 00 00 48 8b 8b b8 00 00 00
0x000000006949d6d6: 48 89 41 08 48 c7 81 a0 ff 07 00 2a 5c 4b 11 48

Stack: [0x0000000057000000,0x0000000057100000], sp=0x00000000570fe260, free
space=3f80000000000000000k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [atio6axx.dll+0x46d6d6]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j
javax.media.j3d.NativePipeline.executeIndexedGeometryVA(JLjavax/media/j3d/GeometryArrayRetained;IZZIIIII[F[D[F[B[FI[I[[FI[III[Ljava/lang/Object;I[I)V+0
j
javax.media.j3d.NativePipeline.executeIndexedGeometryVA(Ljavax/media/j3d/Context;Ljavax/media/j3d/GeometryArrayRetained;IZZIIIII[F[D[F[B[FI[I[[FI[III[Ljava/lang/Object;I[I)V+52
j
javax.media.j3d.IndexedGeometryArrayRetained.execute(Ljavax/media/j3d/Canvas3D;Ljavax/media/j3d/RenderAtom;ZZFIZ)V+1124
j
javax.media.j3d.VertexArrayRenderMethod.renderGeo(Ljavax/media/j3d/RenderAtomListInfo;Ljavax/media/j3d/RenderMolecule;Ljavax/media/j3d/Canvas3D;)V+67
j
javax.media.j3d.VertexArrayRenderMethod.render(Ljavax/media/j3d/RenderMolecule;Ljavax/media/j3d/Canvas3D;Ljavax/media/j3d/RenderAtomListInfo;I)Z+169
j javax.media.j3d.RenderMolecule.render(Ljavax/media/j3d/Canvas3D;II)Z+376
j
javax.media.j3d.TextureBin.renderList(Ljavax/media/j3d/Canvas3D;ILjavax/media/j3d/RenderMolecule;)V+63
j
javax.media.j3d.TextureBin.renderList(Ljavax/media/j3d/Canvas3D;ILjava/lang/Object;)V+32
j
javax.media.j3d.TextureBin.render(Ljavax/media/j3d/Canvas3D;Ljava/lang/Object;)V+92
j javax.media.j3d.TextureBin.render(Ljavax/media/j3d/Canvas3D;)V+6
j javax.media.j3d.ShaderBin.render(Ljavax/media/j3d/Canvas3D;)V+18
j javax.media.j3d.AttributeBin.render(Ljavax/media/j3d/Canvas3D;)V+82
j javax.media.j3d.EnvironmentSet.render(Ljavax/media/j3d/Canvas3D;)V+17
j javax.media.j3d.LightBin.render(Ljavax/media/j3d/Canvas3D;)V+17
j javax.media.j3d.RenderBin.renderOpaque(Ljavax/media/j3d/Canvas3D;)V+11
j javax.media.j3d.Renderer.doWork(J)V+5851
j javax.media.j3d.J3dThread.run()V+19
v ~StubRoutines::call_stub

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x00000000535a9000 JavaThread "J3D-InputDeviceScheduler-1" [_thread_blocked,
id=3528, stack(0x0000000057f90000,0x0000000058090000)]
0x00000000535a8000 JavaThread "J3D-SoundSchedulerUpdateThread-1"
[_thread_blocked, id=1180, stack(0x0000000057e90000,0x0000000057f90000)]
0x00000000535a7800 JavaThread "J3D-RenderStructureUpdateThread-1"
[_thread_blocked, id=1260, stack(0x0000000057d90000,0x0000000057e90000)]
0x00000000535a6800 JavaThread "J3D-BehaviorScheduler-1" [_thread_blocked,
id=4420, stack(0x0000000057c90000,0x0000000057d90000)]
0x00000000535a6000 JavaThread "J3D-TransformStructureUpdateThread-1"
[_thread_blocked, id=5516, stack(0x0000000057b90000,0x0000000057c90000)]
0x00000000535a5000 JavaThread
"J3D-RenderingEnvironmentStructureUpdateThread-1" [_thread_blocked, id=3504,
stack(0x0000000057a90000,0x0000000057b90000)]
0x00000000535a4800 JavaThread "J3D-SoundStructureUpdateThread-1"
[_thread_blocked, id=2412, stack(0x0000000057990000,0x0000000057a90000)]
0x00000000535a3800 JavaThread "J3D-GeometryStructureUpdateThread-1"
[_thread_blocked, id=2848, stack(0x0000000057890000,0x0000000057990000)]
0x00000000535a3000 JavaThread "J3D-BehaviorStructureUpdateThread-1"
[_thread_blocked, id=5320, stack(0x0000000057100000,0x0000000057200000)]
=>0x000000004ca98000 JavaThread "J3D-Renderer-1" [_thread_in_native, id=4772,
stack(0x0000000057000000,0x0000000057100000)]
0x000000004ca97800 JavaThread "J3D-MasterControl-1" [_thread_blocked, id=3480,
stack(0x0000000056de0000,0x0000000056ee0000)]
0x000000004ca96800 JavaThread "J3D-NotificationThread" [_thread_blocked,
id=4852, stack(0x0000000055b20000,0x0000000055c20000)]
0x000000004ca96000 JavaThread "J3D-TimerThread" [_thread_blocked, id=4764,
stack(0x0000000056ce0000,0x0000000056de0000)]
0x000000004ca95000 JavaThread "J3D-RenderingAttributesStructureUpdateThread"
[_thread_blocked, id=5276, stack(0x0000000055a20000,0x0000000055b20000)]
0x000000004ca94800 JavaThread "DestroyJavaVM" [_thread_blocked, id=4460,
stack(0x00000000020e0000,0x00000000021e0000)]
0x000000004ca93800 JavaThread "MainInvokerThread" [_thread_blocked, id=5348,
stack(0x0000000056180000,0x0000000056280000)]
0x000000004ca93000 JavaThread "ORBacus:Server:ReceiverThread"
[_thread_in_native, id=2376, stack(0x0000000056080000,0x0000000056180000)]
0x000000004ca92800 JavaThread "ORBacus:Server:SenderThread" [_thread_blocked,
id=4144, stack(0x0000000054250000,0x0000000054350000)]
0x000000004ca91800 JavaThread "Swing-Shell" daemon [_thread_blocked, id=4928,
stack(0x0000000054e20000,0x0000000054f20000)]
0x000000004ca91000 JavaThread "Image Fetcher 1" daemon [_thread_blocked,
id=4632, stack(0x0000000054d20000,0x0000000054e20000)]
0x0000000050ac2800 JavaThread "TimerQueue" daemon [_thread_blocked, id=5416,
stack(0x000000004d670000,0x000000004d770000)]
0x0000000050e51000 JavaThread "ORBacus:Server:StarterThread"
[_thread_in_native, id=1368, stack(0x0000000054150000,0x0000000054250000)]
0x0000000050a2f800 JavaThread "ORBacus:Server:StarterThread"
[_thread_in_native, id=5936, stack(0x0000000053dc0000,0x0000000053ec0000)]
0x0000000050db6800 JavaThread "ORBacus:Server:StarterThread"
[_thread_in_native, id=5960, stack(0x0000000053c20000,0x0000000053d20000)]
0x0000000050a2e800 JavaThread "D3D Screen Updater" daemon [_thread_blocked,
id=5652, stack(0x000000004d460000,0x000000004d560000)]
0x000000004cb25800 JavaThread "InvokerThread.0" [_thread_blocked, id=3128,
stack(0x000000004d0b0000,0x000000004d1b0000)]
0x000000004ca87000 JavaThread "Image Fetcher 0" daemon [_thread_blocked,
id=6036, stack(0x00000000511d0000,0x00000000512d0000)]
0x000000004c8cd000 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=1228,
stack(0x00000000510d0000,0x00000000511d0000)]
0x000000004c916000 JavaThread "AWT-Windows" daemon [_thread_in_native,
id=5564, stack(0x000000004cfb0000,0x000000004d0b0000)]
0x000000004c915000 JavaThread "AWT-Shutdown" [_thread_blocked, id=1800,
stack(0x000000004ceb0000,0x000000004cfb0000)]
0x000000004c914800 JavaThread "Java2D Disposer" daemon [_thread_blocked,
id=4768, stack(0x000000004cdb0000,0x000000004ceb0000)]
0x000000004b474800 JavaThread "Low Memory Detector" daemon [_thread_blocked,
id=5904, stack(0x000000004c540000,0x000000004c640000)]
0x000000004b464800 JavaThread "CompilerThread1" daemon [_thread_blocked,
id=4060, stack(0x000000004c440000,0x000000004c540000)]
0x000000004b44d000 JavaThread "CompilerThread0" daemon [_thread_blocked,
id=4408, stack(0x000000004c340000,0x000000004c440000)]
0x000000004b44c800 JavaThread "Attach Listener" daemon [_thread_blocked,
id=5200, stack(0x000000004c240000,0x000000004c340000)]
0x000000004b44b800 JavaThread "Signal Dispatcher" daemon [_thread_blocked,
id=3008, stack(0x000000004c140000,0x000000004c240000)]
0x000000004b3f9800 JavaThread "Finalizer" daemon [_thread_blocked, id=5288,
stack(0x000000004c040000,0x000000004c140000)]
0x000000004b3f3800 JavaThread "Reference Handler" daemon [_thread_blocked,
id=856, stack(0x000000004bf40000,0x000000004c040000)]

Other Threads:
0x000000004b3ee000 VMThread [stack: 0x000000004be40000,0x000000004bf40000]
[id=4696]
0x000000004b47f000 WatcherThread [stack:
0x000000004c640000,0x000000004c740000] [id=2112]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
PSYoungGen total 120128K, used 45910K [0x0000000035150000,
0x00000000400d0000, 0x000000004a6a0000)
eden space 81856K, 18% used
[0x0000000035150000,0x0000000036033630,0x000000003a140000)
from space 38272K, 80% used
[0x000000003a140000,0x000000003bf32540,0x000000003c6a0000)
to space 41472K, 0% used
[0x000000003d850000,0x000000003d850000,0x00000000400d0000)
PSOldGen total 183872K, used 118271K [0x000000000a6a0000,
0x0000000015a30000, 0x0000000035150000)
object space 183872K, 64% used
[0x000000000a6a0000,0x0000000011a1ffe0,0x0000000015a30000)
PSPermGen total 80704K, used 41360K [0x00000000052a0000,
0x000000000a170000, 0x000000000a6a0000)
object space 80704K, 51% used
[0x00000000052a0000,0x0000000007b041f0,0x000000000a170000)

Dynamic libraries:
0x0000000000400000 - 0x000000000042e000 C:\Appli\jdk1.6.0_21\jre\bin\javaw.exe
0x0000000077110000 - 0x00000000772bb000 C:\Windows\SYSTEM32\ntdll.dll
0x0000000076ff0000 - 0x000000007710f000 C:\Windows\system32\kernel32.dll
0x000007fefd2f0000 - 0x000007fefd35b000 C:\Windows\system32\KERNELBASE.dll
0x000007feff140000 - 0x000007feff21b000 C:\Windows\system32\ADVAPI32.dll
0x000007fefd690000 - 0x000007fefd72f000 C:\Windows\system32\msvcrt.dll
0x000007fefeb10000 - 0x000007fefeb2f000 C:\Windows\SYSTEM32\sechost.dll
0x000007fefe730000 - 0x000007fefe85e000 C:\Windows\system32\RPCRT4.dll
0x0000000076ef0000 - 0x0000000076fea000 C:\Windows\system32\USER32.dll
0x000007fefee70000 - 0x000007fefeed7000 C:\Windows\system32\GDI32.dll
0x000007fefe610000 - 0x000007fefe61e000 C:\Windows\system32\LPK.dll
0x000007fefe540000 - 0x000007fefe60a000 C:\Windows\system32\USP10.dll
0x000007feff300000 - 0x000007feff32e000 C:\Windows\system32\IMM32.DLL
0x000007fefe620000 - 0x000007fefe729000 C:\Windows\system32\MSCTF.dll
0x000000006d890000 - 0x000000006df61000 C:\Appli\jdk1.6.0_21\jre\bin\server\jvm.dll
0x000007fefb370000 - 0x000007fefb3ab000 C:\Windows\system32\WINMM.dll
0x000000006d800000 - 0x000000006d80e000 C:\Appli\jdk1.6.0_21\jre\bin\verify.dll
0x000000006d450000 - 0x000000006d477000 C:\Appli\jdk1.6.0_21\jre\bin\java.dll
0x000000006d3b0000 - 0x000000006d3ba000 C:\Appli\jdk1.6.0_21\jre\bin\hpi.dll
0x00000000772d0000 - 0x00000000772d7000 C:\Windows\system32\PSAPI.DLL
0x000000006d850000 - 0x000000006d862000 C:\Appli\jdk1.6.0_21\jre\bin\zip.dll
0x000000006d0a0000 - 0x000000006d263000 C:\Appli\jdk1.6.0_21\jre\bin\awt.dll
0x000007fefa860000 - 0x000007fefa8d0000 C:\Windows\system32\WINSPOOL.DRV
0x000007fefeb30000 - 0x000007fefed31000 C:\Windows\system32\ole32.dll
0x000007fefd730000 - 0x000007fefe4b6000 C:\Windows\system32\SHELL32.dll
0x000007fefea40000 - 0x000007fefeab1000 C:\Windows\system32\SHLWAPI.dll
0x000007fefbac0000 - 0x000007fefbcb4000
C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16385_none_fa645303170382f6\COMCTL32.dll
0x000007fefb350000 - 0x000007fefb368000 C:\Windows\system32\DWMAPI.DLL
0x000007fefba60000 - 0x000007fefbab6000 C:\Windows\system32\uxtheme.dll
0x000007fefcfa0000 - 0x000007fefcfaf000 C:\Windows\system32\CRYPTBASE.dll
0x000000006d340000 - 0x000000006d3ab000
C:\Appli\jdk1.6.0_21\jre\bin\fontmanager.dll
0x000007fef0ec0000 - 0x000007fef10bf000 C:\Windows\system32\d3d9.dll
0x000007fefc180000 - 0x000007fefc18c000 C:\Windows\system32\VERSION.dll
0x000007fefb170000 - 0x000007fefb177000 C:\Windows\system32\d3d8thk.dll
0x0000000074bd0000 - 0x0000000074c66000 C:\Windows\system32\aticfx64.dll
0x000007fefb1c0000 - 0x000007fefb1cb000 C:\Windows\system32\atiu9p64.dll
0x0000000067480000 - 0x0000000067966000 C:\Windows\system32\atiumd64.dll
0x0000000068440000 - 0x0000000068701000 C:\Windows\system32\atiumd6a.dll
0x000000006d6a0000 - 0x000000006d6b7000 C:\Appli\jdk1.6.0_21\jre\bin\net.dll
0x000007feff330000 - 0x000007feff37d000 C:\Windows\system32\WS2_32.dll
0x000007fefd660000 - 0x000007fefd668000 C:\Windows\system32\NSI.dll
0x000007fefc8e0000 - 0x000007fefc934000 C:\Windows\system32\mswsock.dll
0x000007fefc8d0000 - 0x000007fefc8d7000 C:\Windows\System32\wship6.dll
0x000000006d6c0000 - 0x000000006d6cb000 C:\Appli\jdk1.6.0_21\jre\bin\nio.dll
0x000000006d490000 - 0x000000006d497000 C:\Appli\jdk1.6.0_21\jre\bin\jawt.dll
0x0000000001da0000 - 0x0000000001dde000
C:\Appli\jdk1.6.0_21\jre\bin\j3dcore-ogl.dll
0x000007fef18b0000 - 0x000007fef19cd000 C:\Windows\system32\OPENGL32.dll
0x000007fefaa40000 - 0x000007fefaa6d000 C:\Windows\system32\GLU32.dll
0x000007fef1630000 - 0x000007fef1721000 C:\Windows\system32\DDRAW.dll
0x000007fefb130000 - 0x000007fefb138000 C:\Windows\system32\DCIMAN32.dll
0x000007fefe860000 - 0x000007fefea37000 C:\Windows\system32\SETUPAPI.dll
0x000007fefd2b0000 - 0x000007fefd2e6000 C:\Windows\system32\CFGMGR32.dll
0x000007feff220000 - 0x000007feff2f7000 C:\Windows\system32\OLEAUT32.dll
0x000007fefd290000 - 0x000007fefd2aa000 C:\Windows\system32\DEVOBJ.dll
0x000000006d570000 - 0x000000006d5a5000 C:\Appli\jdk1.6.0_21\jre\bin\jpeg.dll
0x000000004d1b0000 - 0x000000004d215000 C:\Program Files\WIDCOMM\Bluetooth
Software\btmmhook.dll
0x000007fefaee0000 - 0x000007fefaef5000 C:\Windows\system32\NLAapi.dll
0x000007fefc760000 - 0x000007fefc7bb000 C:\Windows\system32\DNSAPI.dll
0x000007fef8340000 - 0x000007fef834b000 C:\Windows\System32\winrnr.dll
0x000007fef8320000 - 0x000007fef8335000 C:\Windows\system32\napinsp.dll
0x000007fef8300000 - 0x000007fef8319000 C:\Windows\system32\pnrpnsp.dll
0x000007fef82f0000 - 0x000007fef8300000 C:\Windows\system32\wshbth.dll
0x0000000073dd0000 - 0x0000000073dfe000 C:\Program Files\Common Files\Microsoft
Shared\Windows Live\WLIDNSP.DLL
0x000007fefc2a0000 - 0x000007fefc2a7000 C:\Windows\System32\wshtcpip.dll
0x000007fefa910000 - 0x000007fefa937000 C:\Windows\system32\IPHLPAPI.DLL
0x000007fefa900000 - 0x000007fefa90b000 C:\Windows\system32\WINNSI.DLL
0x000007fef8350000 - 0x000007fef8358000 C:\Windows\system32\rasadhlp.dll
0x000007fef9940000 - 0x000007fef9993000 C:\Windows\System32\fwpuclnt.dll
0x000000004daa0000 - 0x000000004dad1000 C:\Program Files\WIDCOMM\Bluetooth
Software\btkeyind.dll
0x000007fefcf40000 - 0x000007fefcf97000 C:\Windows\system32\apphelp.dll
0x000007feff380000 - 0x000007feff419000 C:\Windows\system32\CLBCatQ.DLL
0x000007fef4bd0000 - 0x000007fef4d6c000 C:\Windows\system32\NetworkExplorer.dll
0x000007fefb4e0000 - 0x000007fefb60c000 C:\Windows\system32\PROPSYS.dll
0x000007fefb180000 - 0x000007fefb198000 C:\Windows\system32\MPR.dll
0x000007fef5460000 - 0x000007fef546a000 C:\Windows\System32\drprov.dll
0x000007fefc500000 - 0x000007fefc53d000 C:\Windows\System32\WINSTA.dll
0x000007fef53e0000 - 0x000007fef5402000 C:\Windows\System32\ntlanman.dll
0x000007fef5340000 - 0x000007fef535b000 C:\Windows\System32\davclnt.dll
0x000007fef5450000 - 0x000007fef545a000 C:\Windows\System32\DAVHLPR.dll
0x000007fefc720000 - 0x000007fefc72c000 C:\Windows\system32\netutils.dll
0x000007fef6b90000 - 0x000007fef6b9f000 C:\Windows\system32\cscapi.dll
0x000007fefcbe0000 - 0x000007fefcc03000 C:\Windows\system32\srvcli.dll
0x000007fefc150000 - 0x000007fefc17d000 C:\Windows\system32\ntmarta.dll
0x000007fefeac0000 - 0x000007fefeb10000 C:\Windows\system32\WLDAP32.dll
0x000007fef4990000 - 0x000007fef49c3000 C:\Windows\System32\shdocvw.dll
0x000007fefd070000 - 0x000007fefd07f000 C:\Windows\system32\profapi.dll
0x000007fefade0000 - 0x000007fefadeb000 C:\Windows\system32\slc.dll
0x000007fefa670000 - 0x000007fefa685000 C:\Windows\system32\wkscli.dll
0x000007feef320000 - 0x000007feef591000 C:\Windows\system32\wpdshext.dll
0x000007fefb840000 - 0x000007fefba55000
C:\Windows\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7600.16385_none_2b4f45e87195fcc4\gdiplus.dll
0x000007fef5c10000 - 0x000007fef5ccd000 C:\Windows\system32\PortableDeviceApi.dll
0x000007fefd400000 - 0x000007fefd43a000 C:\Windows\system32\WINTRUST.dll
0x000007fefd120000 - 0x000007fefd286000 C:\Windows\system32\CRYPT32.dll
0x000007fefd110000 - 0x000007fefd11f000 C:\Windows\system32\MSASN1.dll
0x000007fef51e0000 - 0x000007fef5215000 C:\Windows\system32\EhStorShell.dll
0x000007fefad70000 - 0x000007fefad97000 C:\Windows\system32\EhStorAPI.dll
0x000007fefb160000 - 0x000007fefb168000 C:\Windows\system32\atig6pxx.dll
0x0000000069030000 - 0x000000006a3a4000 C:\Windows\system32\atio6axx.dll
0x000007fefb0e0000 - 0x000007fefb0e9000 C:\Windows\system32\atig6txx.dll
0x0000000180000000 - 0x0000000180056000 C:\Windows\system32\atiadlxx.dll

VM Arguments:
jvm_args: -Xms64m -Xmx1024m
-Djava.library.path=C:\Appli\OCEANI3\jdk\j3d/jre/bin;C:/Appli/OCEANI3/joms-1.6.0_20/bin
-Dcom.ipsis.dl.ext=.dll -Dcom.ipsis.pipe.h=5,6,7,8 -DOCEANI=C:\Appli\OCEANI3
-DOCEANI_HELP_UTILITY=acrord32.exe -Dsun.java2d.ddscale=true
-Dsun.java2d.noddraw=false -Dsun.java2d.ddoffscreen=true
java_command: com.ipsis.oms.simeditor.SimEditor
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=C:\Program Files (x86)\NVIDIA
Corporation\PhysX\Common;ommonProgramFiles\Microsoft Shared\Windows
Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program
Files\Dell\Dell Wireless WLAN Card;c:\Program Files (x86)\ATI
Technologies\ATI.ACE\Core-Static;c:\Program Files\WIDCOMM\Bluetooth
Software\;c:\Program Files\WIDCOMM\Bluetooth Software\syswow64;c:\Program Files
(x86)\Common Files\Roxio Shared\10.0\DLLShared\;c:\Program Files (x86)\Common
Files\Roxio Shared\DLLShared\;c:\Program Files (x86)\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\TortoiseSVN\bin;C:\Program Files
(x86)\Autodesk\Backburner\;C:\Program Files (x86)\Common Files\Autodesk
Shared\;C:\Program Files (x86)\doxygen\bin;C:\Program Files (x86)\Graphviz2.26.3\bin
USERNAME=etude
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 30 Stepping 5, GenuineIntel

--------------- S Y S T E M ---------------

OS: Windows 7 Build 7600

CPU:total 8 (8 cores per cpu, 2 threads per core) family 6 model 30 stepping 5,
cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, ht

Memory: 4k page, physical 4182528k(2072692k free), swap 8363156k(5725040k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (17.0-b17) for windows-amd64 JRE
(1.6.0_21-b07), built on Jul 17 2010 01:05:36 by "java_re" with MS VC++ 8.0 (VS2005)

time: Tue Aug 24 14:54:33 2010
elapsed time: 15 seconds






[JAVA3D-652] DirectX property ignored as applet and JNLP parameter Created: 22/Jul/10  Updated: 22/Jul/10

Status: Open
Project: java3d
Component/s: www
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: martinezmj Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: PC


Issuezilla Id: 652

 Description   

Setting -Dj3d.rend=d3d as an applet JVM parameter or <property name="j3d.rend" value="d3d"/> as a
JNLP property is ignored. Setting it in Java is also ignored. I can find no way to invoke DirectX for use in an
applet other than setting the property via the Java Control Panel.

Here is what I'm using:
Windows 7 64-bit
Java 1.6 (update 20) 32-bit
Java3d 1.5.2






[JAVA3D-577] severe SceneGraphIO bug: error when saving Shape3D with PointArray, LineArray and LineStripArray Geometry Created: 27/Mar/08  Updated: 21/May/10

Status: Open
Project: java3d
Component/s: j3d-optional-utils
Affects Version/s: 1.3.2
Fix Version/s: not determined

Type: Bug Priority: Trivial
Reporter: willem_mahy Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC


Attachments: Java Source File TestShapes.java    
Issuezilla Id: 577
Status Whiteboard:

incomplete


 Description   

I get the following error when trying to save a branchGraph with
SceneGraphFileWriter (SceneGraphIO).
This occurs if the BranchGraph contains a Shape3D with a PointArray, LineArray
or LineStripArray Geometry.
TriangleArray works just fine, I've tried this as a test.

ERROR:

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.sun.j3d.utils.scenegraph.io.retained.Controller.constructStateObj
(Controller.java:248)
at com.sun.j3d.utils.scenegraph.io.retained.Controller.createState
(Controller.java:223)
at com.sun.j3d.utils.scenegraph.io.retained.Controller.createState
(Controller.java:203)
at com.sun.j3d.utils.scenegraph.io.retained.Controller.createState
(Controller.java:184)
at
com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d.GroupState.writeObject
(GroupState.java:77)
at com.sun.j3d.utils.scenegraph.io.retained.Controller.writeObject
(Controller.java:313)
at
com.sun.j3d.utils.scenegraph.io.retained.RandomAccessFileControl.writeObject
(RandomAccessFileControl.java:404)
at
com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d.GroupState.writeObject
(GroupState.java:77)
at com.sun.j3d.utils.scenegraph.io.retained.Controller.writeObject
(Controller.java:313)
at
com.sun.j3d.utils.scenegraph.io.retained.RandomAccessFileControl.writeObject
(RandomAccessFileControl.java:404)
at
com.sun.j3d.utils.scenegraph.io.retained.RandomAccessFileControl.writeBranchGrap
h(RandomAccessFileControl.java:223)
at com.sun.j3d.utils.scenegraph.io.SceneGraphFileWriter.writeBranchGraph
(SceneGraphFileWriter.java:134)
at com.sun.j3d.utils.scenegraph.io.SceneGraphFileWriter.writeBranchGraph
(SceneGraphFileWriter.java:122)
at engine.Engine.saveSceneGraph(Engine.java:297)
at engine.Engine.saveSceneGraph(Engine.java:278)
at imp.main.IMPStudio.saveSession(IMPStudio.java:619)
at imp.views.View3D$MyKeyBehavior.onKeyEvent(View3D.java:310)
at imp.views.View3D$MyKeyBehavior.processStimulus(View3D.java:325)
at javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:173)
at javax.media.j3d.J3dThread.run(J3dThread.java:256)
Caused by: com.sun.j3d.utils.scenegraph.io.retained.SGIORuntimeException: 4
Broken State class for
com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d.GeometryArrayState
at com.sun.j3d.utils.scenegraph.io.retained.Controller.constructStateObj
(Controller.java:263)
at com.sun.j3d.utils.scenegraph.io.retained.Controller.checkSuperClasses
(Controller.java:299)
at com.sun.j3d.utils.scenegraph.io.retained.Controller.createState
(Controller.java:225)
at
com.sun.j3d.utils.scenegraph.io.retained.SymbolTable.createNodeComponentSymbol
(SymbolTable.java:427)
at com.sun.j3d.utils.scenegraph.io.retained.SymbolTable.addReference
(SymbolTable.java:517)
at
com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d.Shape3DState.<init>
(Shape3DState.java:70)
... 24 more
java.io.IOException: 2 Broken State class for
com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d.Shape3DState
at
com.sun.j3d.utils.scenegraph.io.retained.RandomAccessFileControl.writeObject
(RandomAccessFileControl.java:416)
at
com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d.GroupState.writeObject
(GroupState.java:77)
at com.sun.j3d.utils.scenegraph.io.retained.Controller.writeObject
(Controller.java:313)
at
com.sun.j3d.utils.scenegraph.io.retained.RandomAccessFileControl.writeObject
(RandomAccessFileControl.java:404)
at
com.sun.j3d.utils.scenegraph.io.retained.RandomAccessFileControl.writeBranchGrap
h(RandomAccessFileControl.java:223)
at com.sun.j3d.utils.scenegraph.io.SceneGraphFileWriter.writeBranchGraph
(SceneGraphFileWriter.java:134)
at com.sun.j3d.utils.scenegraph.io.SceneGraphFileWriter.writeBranchGraph
(SceneGraphFileWriter.java:122)
at engine.Engine.saveSceneGraph(Engine.java:297)
at engine.Engine.saveSceneGraph(Engine.java:278)
at imp.main.IMPStudio.saveSession(IMPStudio.java:619)
at imp.views.View3D$MyKeyBehavior.onKeyEvent(View3D.java:310)
at imp.views.View3D$MyKeyBehavior.processStimulus(View3D.java:325)
at javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:173)
at javax.media.j3d.J3dThread.run(J3dThread.java:256)



 Comments   
Comment by mcneillk [ 10/May/08 ]

I am able to save LineArray geometry w/o problems, and I have fixed several bugs
in the scenegraph IO over the past year. Please submit a test case and I will
look into this.

Comment by kcr [ 13/May/08 ]

Marking as incomplete pending a reproducible test case that fails on 1.5.1 or later.

Comment by kcr [ 17/Jun/08 ]

Closing issue as not reproducible.

Comment by aces [ 21/May/10 ]


Added a reproduciple example.

Comment by aces [ 21/May/10 ]

Created an attachment (id=387)
Example of bug when saving points

Comment by aces [ 21/May/10 ]


File attached.





[JAVA3D-650] Tracker Source Code Created: 19/May/10  Updated: 19/May/10

Status: Open
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: New Feature Priority: Major
Reporter: robroche Assignee: java3d-issues
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 650

 Description   

Hi, I'm new to Java3D, however I am a programmer and cannot find a package which
was said to be part of the Java3D API.

The Package I am currently looking for is:
com.sun.j3d.util.trackers

Specifically I am looking for the Polhemus Fastrack Tracking System Device
Driver.

Both:
http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Modules/java-
3d/Catalogjava-3d.htm

and,

http://www.gamasutra.com/view/feature/3311/3d_graphics_programming_in_java_.php

List them as existing... at least in the past. I know gamasutra.com's post is
about 10 years old.

I was wondering if they are still around and maybe got moved? Or do I have to
include the source code from java2s.com and make my own package?

Any help or comments would be appreciated.

Thanks,
– Rob






[JAVA3D-649] Java3D 1.5.2 Windows amd64 installer does not find JRE 64bit Created: 08/May/10  Updated: 08/May/10

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: matteodg Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: All


Issuezilla Id: 649

 Description   

The installer for Windows AMD64 does not find the JRE 64bit already installed. It
copies DLL and JARs in only in ProgramFiles\Java\Java3D, but not in
ProgramFiles\Java\jre6, so the user have to copy DLL and JARs by hand to bin and
lib folders in JRE 64 bit installation.






[JAVA3D-648] JCanvas3D crashes with Linux Radeon Driver Created: 20/Apr/10  Updated: 20/Apr/10

Status: Open
Project: java3d
Component/s: j3d-optional-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: clheiny Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 648

 Description   

Trying to use JCanvas3D on Fedora 12 with the Radeon driver results in a crash.
All RPMs are up to date. I'll be happy to help debug this, but don't know just
where to start.

Results of QueryProperties:

3d.version = 1.5.2 fcs (build4)
j3d.vendor =
j3d.specification.version = 1.5
j3d.specification.vendor =
j3d.pipeline = NATIVE_OGL
j3d.renderer = OpenGL

native.renderer = Mesa DRI R300 (RV530 71C4) 20090101 TCL
native.vendor = DRI R300 Project
native.version = 1.5 Mesa 7.7.1-DEVEL
doubleBufferAvailable = true
stereoAvailable = false
sceneAntialiasingAvailable = false
sceneAntialiasingNumPasses = 0
compressedGeometry.majorVersionNumber = 1
compressedGeometry.minorVersionNumber = 0
compressedGeometry.minorMinorVersionNumber = 2
textureUnitStateMax = 8
textureWidthMax = 4096
textureHeightMax = 4096
shadingLanguageCg = false
shadingLanguageGLSL = false
stencilSize = 0
texture3DAvailable = true
texture3DDepthMax = 256
texture3DHeightMax = 256
texture3DWidthMax = 256
textureAnisotropicFilterDegreeMax = 16.0
textureAutoMipMapGenerationAvailable = true
textureBoundaryWidthMax = 1
textureColorTableSize = 0
textureCombineDot3Available = true
textureCombineSubtractAvailable = true
textureCoordSetsMax = 8
textureCubeMapAvailable = true
textureDetailAvailable = false
textureEnvCombineAvailable = true
textureFilter4Available = false
textureImageUnitsCombinedMax = 0
textureImageUnitsMax = 0
textureImageUnitsVertexMax = 0
textureLodOffsetAvailable = false
textureLodRangeAvailable = true
textureNonPowerOfTwoAvailable = false
textureSharpenAvailable = false
vertexAttrsMax = 0

Sample code to cause crash:

import com.sun.j3d.exp.swing.JCanvas3D;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.awt.Dimension;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.swing.JFrame;

/**
*

  • @author cheiny
    */
    public class JCanvasTest extends JFrame {

/** Creates new form JCanvas3D_test */
public JCanvasTest()

{ initComponents(); // Scenegraph BranchGroup bg = new BranchGroup(); ColorCube cube = new ColorCube(0.2f); bg.addChild(cube); // JCanvas JCanvas3D jCanvas = new JCanvas3D(); jCanvas.setResizeMode(JCanvas3D.RESIZE_IMMEDIATELY); this.add("Center",jCanvas); Dimension dim = new Dimension(400,400); jCanvas.setPreferredSize(dim); jCanvas.setSize(dim); // Canvas3D c = jCanvas.getOffscreenCanvas3D(); SimpleUniverse u = new SimpleUniverse(c); u.getViewingPlatform().setNominalViewingTransform(); u.addBranchGraph(bg); }

/** This method is called from within the constructor to

  • initialize the form.
  • WARNING: Do NOT modify this code. The content of this method is
  • always regenerated by the Form Editor.
    */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() { setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-600)/2, (screenSize.height-600)/2, 600, 600); }

    // </editor-fold>

/**

  • @param args the command line arguments
    */
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable()
    Unknown macro: { public void run() { new JCanvasTest().setVisible(true); } }

    );
    }

}

Output after running above:

init:
Deleting: /home/cheiny/tools/java-utils/freehep-java3d/build/built-jar.properties
deps-jar:
Updating property file:
/home/cheiny/tools/java-utils/freehep-java3d/build/built-jar.properties
Compiling 1 source file to
/home/cheiny/tools/java-utils/freehep-java3d/build/classes
compile-single:
run-single:
Java 3D WARNING : reported GLX version = 1.2
GLX version 1.3 or higher is required
The reported version number may be incorrect. There is a known
ATI driver bug in glXQueryVersion that incorrectly reports the GLX
version as 1.2 when it really is 1.3, so Java 3D will attempt to
run anyway.
WARNING: Application /usr/local/java/jdk1.6.0_18/jre/bin/java�q�� calling GLX
1.3 function "glXCreatePixmap" when GLX 1.3 is not supported! This is an
application bug!
failed to create drawable
WARNING: Application /usr/local/java/jdk1.6.0_18/jre/bin/java� calling GLX 1.3
function "glXDestroyPixmap" when GLX 1.3 is not supported! This is an
application bug!
failed to create drawable
Canvas3D_createNewContext: couldn't make current

DefaultRenderingErrorListener.errorOccurred:
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context
graphicsDevice = X11GraphicsDevice[screen=0]
canvas =
com.sun.j3d.exp.swing.JCanvas3D$InternalCanvas3D[canvas0,0,0,590x570,invalid]
failed to create drawable
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)






[JAVA3D-644] Crash in Mixed Mode Rendering with OpenGL renderer Created: 12/Apr/10  Updated: 15/Apr/10

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: puybaret Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC
URL: http://www.sweethome3d.eu


Issuezilla Id: 644

 Description   

Hi,

I used Mixed Mode Rendering from version 2.3 of Sweet Home 3D to display some navigation arrows in
the top left of the 3D view, as seen in the following image:
http://www.sweethome3d.eu/blog/images/2.3/navigationArrows.png
Miserably, some users reported that this feature makes Sweet Home 3D crash when the Canvas3D
using Mixed Mode Rendering is resized. This bug seems to be fixed under Windows when renderer is
forced to DirectX, so it's probably related to J3DGraphics2D implementation in OpenGL renderer.

The Mixed Mode Rendering I use in Canvases is programmed in the getCanvas3D method described at:
http://sweethome3d.cvs.sf.net/viewvc/sweethome3d/SweetHome3D/src/com/eteks/sweethome3d/j3d
/Component3DManager.java?revision=1.7&view=markup#l_139
and the rendering done in Canvas3D#postRender method is implemented at line 244 in:
http://sweethome3d.cvs.sf.net/viewvc/sweethome3d/SweetHome3D/src/com/eteks/sweethome3d/swi
ng/HomeComponent3D.java?revision=1.105&view=markup#l_ 236
using a J3DGraphics2D instance.

See also bug report about this issue here:
http://sourceforge.net/tracker/?func=detail&aid=2976587&group_id=152568&atid=784665
and forum discussion here:
http://www.sweethome3d.eu/support/forum/viewthread_thread,1413

For your information, Sweet Home 3D with default renderer can be run with
http://www.sweethome3d.eu/SweetHome3D.jnlp
Sweet Home 3D with DirectX renderer can be run with http://www.sweethome3d.eu/SweetHome3D-
DirectX.jnlp



 Comments   
Comment by puybaret [ 14/Apr/10 ]

A user reported the hs_err log file he got for his bug. Here it is:
--------------------------------------------------
#

  1. A fatal error has been detected by the Java Runtime Environment:
    #
  2. EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x08664dcd, pid=2352, tid=508
    #
  3. JRE version: 6.0_19-b04
  4. Java VM: Java HotSpot(TM) Client VM (16.2-b04 mixed mode, sharing windows-x86 )
  5. Problematic frame:
  6. C [extension105815763305391408.dll+0x4dcd]
    #
  7. If you would like to submit a bug report, please visit:
  8. http://java.sun.com/webapps/bugreport/crash.jsp
  9. The crash happened outside the Java Virtual Machine in native code.
  10. See problematic frame for where to report the bug.
    #

--------------- T H R E A D ---------------

Current thread (0x06c95800): JavaThread "J3D-Renderer-1" [_thread_in_native, id=508,
stack(0x07ff0000,0x08040000)]

siginfo: ExceptionCode=0xc0000005, reading address 0xfffffffc

Registers:
EAX=0xffffffff, EBX=0x00000000, ECX=0xffffffff, EDX=0x00000000
ESP=0x0803f7a0, EBP=0x00000000, ESI=0x049159e0, EDI=0x08b79578
EIP=0x08664dcd, EFLAGS=0x00210246

Top of Stack: (sp=0x0803f7a0)
0x0803f7a0: 06c95800 34278d60 0803f854 34278d60
0x0803f7b0: 00000001 00000011 0803f860 0803f828
0x0803f7c0: 0803f854 01f72603 01f78269 34278d60
0x0803f7d0: 0803f8a4 0803f7dc 01f725d7 01f79f47
0x0803f7e0: 06c95910 0803f8a4 08b79578 00000000
0x0803f7f0: 00000000 00000000 0000003c 00000000
0x0803f800: 0000003c 00000001 00000400 00000001
0x0803f810: 00000290 00000004 ffffffff 0803f86c

Instructions: (pc=0x08664dcd)
0x08664dbd: 51 e8 2d eb ff ff 8b 97 b0 02 00 00 8b 44 24 78
0x08664dcd: 8b 04 82 85 c0 89 44 24 7c 75 24 a1 b4 3c 71 08

Stack: [0x07ff0000,0x08040000], sp=0x0803f7a0, free space=13d0803f2d4k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [extension105815763305391408.dll+0x4dcd]

[error occurred during error reporting (printing native stack), id 0xc0000005]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j javax.media.j3d.NativePipeline.texturemapping(JIIIIIIIIIII[BII)V+0
j javax.media.j3d.NativePipeline.texturemapping(Ljavax/media/j3d/Context;IIIIIIIIIII[BII)V+32
j javax.media.j3d.Canvas3D.texturemapping(Ljavax/media/j3d/Context;IIIIIIIIIII[BII)V+30
j javax.media.j3d.J3DGraphics2DImpl.copyDataToCanvas(IIIIIIII)V+188
j javax.media.j3d.J3DGraphics2DImpl.doFlush()V+227
j javax.media.j3d.J3DGraphics2DImpl.flush(Z)V+52
j
com.eteks.sweethome3d.swing.HomeComponent3D$1.canvas3DPostRendered(Ljavax/media/j3d/Canv
as3D;)V+31
j com.eteks.sweethome3d.j3d.Component3DManager$1.postRender()V+12
j javax.media.j3d.Renderer.doWork(J)V+6111
j javax.media.j3d.J3dThread.run()V+19
v ~StubRoutines::call_stub

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x091e6000 JavaThread "TimerQueue" daemon [_thread_blocked, id=4080,
stack(0x0ac30000,0x0ac80000)]
0x091e5c00 JavaThread "J3D-InputDeviceScheduler-1" [_thread_blocked, id=3592,
stack(0x09f60000,0x09fb0000)]
0x091e5400 JavaThread "J3D-SoundSchedulerUpdateThread-1" [_thread_blocked, id=3896,
stack(0x09c10000,0x09c60000)]
0x06c99c00 JavaThread "J3D-RenderStructureUpdateThread-1" [_thread_blocked, id=3972,
stack(0x09bc0000,0x09c10000)]
0x06c99400 JavaThread "J3D-BehaviorScheduler-1" [_thread_blocked, id=3924,
stack(0x09b70000,0x09bc0000)]
0x06c99000 JavaThread "J3D-TransformStructureUpdateThread-1" [_thread_blocked, id=4076,
stack(0x09b20000,0x09b70000)]
0x06c98800 JavaThread "J3D-RenderingEnvironmentStructureUpdateThread-1" [_thread_blocked,
id=3176, stack(0x09ad0000,0x09b20000)]
0x06c98000 JavaThread "J3D-SoundStructureUpdateThread-1" [_thread_blocked, id=4040,
stack(0x09a80000,0x09ad0000)]
0x06c97c00 JavaThread "J3D-GeometryStructureUpdateThread-1" [_thread_blocked, id=3000,
stack(0x08c20000,0x08c70000)]
0x06c97400 JavaThread "J3D-BehaviorStructureUpdateThread-1" [_thread_blocked, id=4032,
stack(0x08bd0000,0x08c20000)]
0x06c96800 JavaThread "AWT-EventQueue-1" [_thread_blocked, id=2972,
stack(0x08af0000,0x08b40000)]
0x06c96400 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=492,
stack(0x08aa0000,0x08af0000)]
0x06c95c00 JavaThread "AWT-Shutdown" [_thread_blocked, id=484,
stack(0x08a50000,0x08aa0000)]
=>0x06c95800 JavaThread "J3D-Renderer-1" [_thread_in_native, id=508,
stack(0x07ff0000,0x08040000)]
0x06c95000 JavaThread "J3D-MasterControl-1" [_thread_blocked, id=3948,
stack(0x07f00000,0x07f50000)]
0x06c94c00 JavaThread "J3D-NotificationThread" [_thread_blocked, id=3244,
stack(0x071e0000,0x07230000)]
0x06c93800 JavaThread "J3D-TimerThread" [_thread_blocked, id=2996,
stack(0x07140000,0x07190000)]
0x06c94000 JavaThread "J3D-RenderingAttributesStructureUpdateThread" [_thread_blocked, id=500,
stack(0x06d60000,0x06db0000)]
0x06c94400 JavaThread "Thread-10" [_thread_in_native, id=268, stack(0x06e00000,0x06e50000)]
0x06c92c00 JavaThread "Keep-Alive-Timer" daemon [_thread_blocked, id=3976,
stack(0x07e60000,0x07eb0000)]
0x06c92800 JavaThread "TimerQueue" daemon [_thread_blocked, id=176,
stack(0x07780000,0x077d0000)]
0x06c92000 JavaThread "D3D Screen Updater" daemon [_thread_blocked, id=3936,
stack(0x07330000,0x07380000)]
0x01e3c800 JavaThread "CacheCleanUpThread" daemon [_thread_blocked, id=1496,
stack(0x070a0000,0x070f0000)]
0x01e3c000 JavaThread "CacheMemoryCleanUpThread" daemon [_thread_blocked, id=2880,
stack(0x07050000,0x070a0000)]
0x01d0b400 JavaThread "DestroyJavaVM" [_thread_blocked, id=2356,
stack(0x007b0000,0x00800000)]
0x01e3a000 JavaThread "Javaws Secure Thread" daemon [_thread_blocked, id=3828,
stack(0x06db0000,0x06e00000)]
0x01e39800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=2296,
stack(0x01c00000,0x01d00000)]
0x01e38800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=2456,
stack(0x06a90000,0x06ae0000)]
0x01dfa400 JavaThread "traceMsgQueueThread" daemon [_thread_blocked, id=3156,
stack(0x069f0000,0x06a40000)]
0x01dd1c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=2400,
stack(0x05e40000,0x05e90000)]
0x01dce400 JavaThread "CompilerThread0" daemon [_thread_blocked, id=2192,
stack(0x05df0000,0x05e40000)]
0x01dcd400 JavaThread "Attach Listener" daemon [_thread_blocked, id=2712,
stack(0x05da0000,0x05df0000)]
0x01dca400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2204,
stack(0x05d50000,0x05da0000)]
0x01d84c00 JavaThread "Finalizer" daemon [_thread_blocked, id=2220,
stack(0x043e0000,0x04430000)]
0x01d83800 JavaThread "Reference Handler" daemon [_thread_blocked, id=2268,
stack(0x042d0000,0x04320000)]

Other Threads:
0x01d82000 VMThread [stack: 0x01f10000,0x01f60000] [id=1484]
0x01dd7000 WatcherThread [stack: 0x05f30000,0x05f80000] [id=2284]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
def new generation total 5056K, used 3072K [0x13f00000, 0x14470000, 0x1e9a0000)
eden space 4544K, 58% used [0x13f00000, 0x14193718, 0x14370000)
from space 512K, 84% used [0x143f0000, 0x1445c970, 0x14470000)
to space 512K, 0% used [0x14370000, 0x14370000, 0x143f0000)
tenured generation total 10944K, used 5393K [0x1e9a0000, 0x1f450000, 0x33f00000)
the space 10944K, 49% used [0x1e9a0000, 0x1eee45f8, 0x1eee4600, 0x1f450000)
compacting perm gen total 12288K, used 9470K [0x33f00000, 0x34b00000, 0x37f00000)
the space 12288K, 77% used [0x33f00000, 0x3483fad8, 0x3483fc00, 0x34b00000)
ro space 10240K, 51% used [0x37f00000, 0x3842ae00, 0x3842ae00, 0x38900000)
rw space 12288K, 54% used [0x38900000, 0x38f972d8, 0x38f97400, 0x39500000)

Dynamic libraries:
0x00400000 - 0x00424000 C:\Program Files\Java\jre6\bin\javaw.exe
0x77d00000 - 0x77e27000 C:\Windows\system32\ntdll.dll
0x77e40000 - 0x77f1b000 C:\Windows\system32\kernel32.dll
0x76ef0000 - 0x76fb6000 C:\Windows\system32\ADVAPI32.dll
0x765d0000 - 0x76693000 C:\Windows\system32\RPCRT4.dll
0x76e50000 - 0x76eed000 C:\Windows\system32\USER32.dll
0x76580000 - 0x765cb000 C:\Windows\system32\GDI32.dll
0x76fc0000 - 0x76fde000 C:\Windows\system32\IMM32.DLL
0x76d20000 - 0x76de8000 C:\Windows\system32\MSCTF.dll
0x77140000 - 0x771ea000 C:\Windows\system32\msvcrt.dll
0x77e30000 - 0x77e39000 C:\Windows\system32\LPK.DLL
0x766f0000 - 0x7676d000 C:\Windows\system32\USP10.dll
0x7c340000 - 0x7c396000 C:\Program Files\Java\jre6\bin\msvcr71.dll
0x6d800000 - 0x6da97000 C:\Program Files\Java\jre6\bin\client\jvm.dll
0x74170000 - 0x741a2000 C:\Windows\system32\WINMM.dll
0x76800000 - 0x76944000 C:\Windows\system32\ole32.dll
0x76770000 - 0x767fd000 C:\Windows\system32\OLEAUT32.dll
0x74130000 - 0x74169000 C:\Windows\system32\OLEACC.dll
0x763b0000 - 0x763dc000 C:\Windows\system32\apphelp.dll
0x6d7b0000 - 0x6d7bc000 C:\Program Files\Java\jre6\bin\verify.dll
0x6d330000 - 0x6d34f000 C:\Program Files\Java\jre6\bin\java.dll
0x6d000000 - 0x6d14a000 C:\Program Files\Java\jre6\bin\awt.dll
0x71c80000 - 0x71cc2000 C:\Windows\system32\WINSPOOL.DRV
0x75300000 - 0x7549e000 C:\Windows\WinSxS\x86_microsoft.windows.common-
controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\COMCTL32.dll
0x76cc0000 - 0x76d18000 C:\Windows\system32\SHLWAPI.dll
0x6d290000 - 0x6d298000 C:\Program Files\Java\jre6\bin\hpi.dll
0x764e0000 - 0x764e7000 C:\Windows\system32\PSAPI.DLL
0x74e20000 - 0x74e5f000 C:\Windows\system32\uxtheme.dll
0x6d7f0000 - 0x6d7ff000 C:\Program Files\Java\jre6\bin\zip.dll
0x70050000 - 0x7020a000 C:\Windows\system32\d3d9.dll
0x75cc0000 - 0x75cc8000 C:\Windows\system32\VERSION.dll
0x71900000 - 0x71906000 C:\Windows\system32\d3d8thk.dll
0x73f90000 - 0x73f9c000 C:\Windows\system32\dwmapi.dll
0x6e560000 - 0x6e568000 C:\Windows\system32\atiu9pag.dll
0x6c970000 - 0x6ccfe000 C:\Windows\system32\atiumdag.dll
0x6c670000 - 0x6c962000 C:\Windows\system32\atiumdva.dll
0x6d1d0000 - 0x6d1e3000 C:\Program Files\Java\jre6\bin\deploy.dll
0x75ec0000 - 0x75fb1000 C:\Windows\system32\CRYPT32.dll
0x76020000 - 0x76032000 C:\Windows\system32\MSASN1.dll
0x76430000 - 0x7644e000 C:\Windows\system32\USERENV.dll
0x76410000 - 0x76424000 C:\Windows\system32\Secur32.dll
0x771f0000 - 0x77cff000 C:\Windows\system32\SHELL32.dll
0x76ae0000 - 0x76baf000 C:\Windows\system32\WININET.dll
0x76e40000 - 0x76e43000 C:\Windows\system32\Normaliz.dll
0x76df0000 - 0x76e35000 C:\Windows\system32\iertutil.dll
0x76fe0000 - 0x77108000 C:\Windows\system32\urlmon.dll
0x6d610000 - 0x6d623000 C:\Program Files\Java\jre6\bin\net.dll
0x77110000 - 0x7713d000 C:\Windows\system32\WS2_32.dll
0x77f20000 - 0x77f26000 C:\Windows\system32\NSI.dll
0x75bb0000 - 0x75beb000 C:\Windows\system32\mswsock.dll
0x75cb0000 - 0x75cb5000 C:\Windows\System32\wship6.dll
0x6d630000 - 0x6d639000 C:\Program Files\Java\jre6\bin\nio.dll
0x6d6b0000 - 0x6d6f4000 C:\Program Files\Java\jre6\bin\regutils.dll
0x6d230000 - 0x6d284000 C:\Program Files\Java\jre6\bin\fontmanager.dll
0x75890000 - 0x75895000 C:\Windows\System32\wshtcpip.dll
0x71460000 - 0x714aa000 C:\Windows\system32\RASAPI32.dll
0x743a0000 - 0x743b4000 C:\Windows\system32\rasman.dll
0x76270000 - 0x762e5000 C:\Windows\system32\NETAPI32.dll
0x711c0000 - 0x711f1000 C:\Windows\system32\TAPI32.dll
0x74f90000 - 0x74f9c000 C:\Windows\system32\rtutils.dll
0x71870000 - 0x71876000 C:\Windows\system32\sensapi.dll
0x75ce0000 - 0x75ce7000 C:\Windows\system32\credssp.dll
0x759e0000 - 0x75a24000 C:\Windows\system32\schannel.dll
0x758d0000 - 0x758f1000 C:\Windows\system32\NTMARTA.DLL
0x766a0000 - 0x766ea000 C:\Windows\system32\WLDAP32.dll
0x76040000 - 0x76051000 C:\Windows\system32\SAMLIB.dll
0x757c0000 - 0x757cf000 C:\Windows\system32\NLAapi.dll
0x75e20000 - 0x75e39000 C:\Windows\system32\IPHLPAPI.DLL
0x75de0000 - 0x75e15000 C:\Windows\system32\dhcpcsvc.DLL
0x76060000 - 0x7608c000 C:\Windows\system32\DNSAPI.dll
0x75dd0000 - 0x75dd7000 C:\Windows\system32\WINNSI.DLL
0x75da0000 - 0x75dc1000 C:\Windows\system32\dhcpcsvc6.DLL
0x735a0000 - 0x735af000 C:\Windows\system32\napinsp.dll
0x73580000 - 0x73592000 C:\Windows\system32\pnrpnsp.dll
0x73540000 - 0x73548000 C:\Windows\System32\winrnr.dll
0x73520000 - 0x73526000 C:\Windows\system32\rasadhlp.dll
0x759a0000 - 0x759db000 C:\Windows\system32\rsaenh.dll
0x10000000 - 0x1000e000 C:\Users\�лек�ей
\AppData\Local\Temp\extension8505230814731185991.dll
0x6bf20000 - 0x6bfeb000 C:\Windows\system32\OPENGL32.dll
0x75050000 - 0x75073000 C:\Windows\system32\GLU32.dll
0x6df90000 - 0x6e075000 C:\Windows\system32\DDRAW.dll
0x74390000 - 0x74396000 C:\Windows\system32\DCIMAN32.dll
0x76950000 - 0x76ada000 C:\Windows\system32\SETUPAPI.dll
0x75090000 - 0x75097000 C:\Windows\system32\atiglpxx.dll
0x69030000 - 0x69df7000 C:\Windows\system32\atioglxx.dll
0x75040000 - 0x75047000 C:\Windows\system32\atigktxx.dll
0x07eb0000 - 0x07eea000 C:\Windows\system32\atiadlxx.dll
0x75700000 - 0x7572d000 C:\Windows\system32\WINTRUST.dll
0x77f30000 - 0x77f59000 C:\Windows\system32\imagehlp.dll
0x6d360000 - 0x6d366000 C:\Program Files\Java\jre6\bin\jawt.dll
0x08660000 - 0x08733000 C:\Users\�лек�ей
\AppData\Local\Temp\extension105815763305391408.dll
0x6d1a0000 - 0x6d1c3000 C:\Program Files\Java\jre6\bin\dcpr.dll

VM Arguments:
jvm_args: -Xbootclasspath/a:C:\Program Files\Java\jre6\lib\javaws.jar;C:\Program
Files\Java\jre6\lib\deploy.jar;C:\Program Files\Java\jre6\lib\plugin.jar -
Djava.security.policy=file:C:\Program Files\Java\jre6\lib\security\javaws.policy -DtrustProxy=true -
Xverify:remote -Djnlpx.home=C:\Program Files\Java\jre6\bin -Dsun.awt.warmup=true -
Djnlpx.origFilenameArg=C:\Users\�лек�ей
\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\17\6db71e91-2effb448 -Djnlpx.remove=false -
Xmx512m -Djnlpx.heapsize=NULL,512m -Djnlpx.splashport=49255 -Djnlpx.jvm=C:\Program
Files\Java\jre6\bin\javaw.exe
java_command: com.sun.javaws.Main -offline C:\Users\�лек�ей
\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\17\6db71e91-2effb448
Launcher Type: SUN_STANDARD

Environment Variables:
CLASSPATH=.;C:\Program Files\QuickTime\QTSystem\QTJava.zip
PATH=C:\Program
Files\Java\jre6\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program
Files\QuickTime\QTSystem\;C:\Program Files\Common Files\DivX Shared\;D:\php-5.3.1;C:\Program
Files\MySQL\MySQL Server 5.1\bin;C:\Program Files\Sun\JavaDB\bin;"C:\Program Files\Java\jre6\bin"
USERNAME=�лек�ей
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 11, GenuineIntel

--------------- S Y S T E M ---------------

OS: Windows Vista Build 6001 Service Pack 1

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 11, cmov, cx8, fxsr, mmx,
sse, sse2, sse3, ssse3

Memory: 4k page, physical 3142344k(1942128k free), swap 6539720k(5477936k free)

vm_info: Java HotSpot(TM) Client VM (16.2-b04) for windows-x86 JRE (1.6.0_19-b04), built on Mar 9
2010 00:48:41 by "java_re" with MS VC++ 7.1 (VS2003)

time: Thu Apr 15 08:54:09 2010
elapsed time: 16 seconds

Comment by aces [ 15/Apr/10 ]

From your HomeComponent3D code, at canvas3DPostRendered()
check image status before you try to flush it.

The following line in report:
siginfo: ExceptionCode=0xc0000005, reading address 0xfffffffc

is a kind of Null Pointer Exception, possibly because the image you try to draw
is null, or with invalid size.

244 public void canvas3DPostRendered(Canvas3D canvas3D) {
245 // Render navigation panel upon canvas 3D if it exists
246 if (navigationPanelImage != null)

{ 247 J3DGraphics2D g2D = canvas3D.getGraphics2D(); 248 g2D.drawImage(navigationPanelImage, null, 0, 0); 249 g2D.flush(true); 250 }

251 }

Check

Comment by puybaret [ 15/Apr/10 ]

Thank you very much for your inquiry.
I checked again and you could be right:
navigationPanelImage could be null even after the "navigationPanelImage != null" test, because Canvas3D#postRender isn't called in the same thread as the HomeComponent3D#updateNavigationPanelImage method which updates navigationPanelImage when
component is resized. This would be really bad luck, but after all, why not...

I'm going to modify the code to make it thread safe, and see with Sweet Home 3D users if it works better.

If this is a problem in Sweet Home 3D, sorry for bothering you with this.

Comment by aces [ 15/Apr/10 ]

I'll change native code to better support null pointers.
It's not acceptable to have JVM crashing due so simple issue.





[JAVA3D-647] Symbol not found (getX) in Tuple3d Created: 12/Apr/10  Updated: 13/Apr/10  Resolved: 13/Apr/10

Status: Resolved
Project: java3d
Component/s: vecmath
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: kastork Assignee: java3d-issues
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Mac OS X
Platform: Macintosh


Issuezilla Id: 647

 Description   

This appears to be a platform specific problem - Snow Leopard java 1.6. Here's the javap output on
javax.vecmath.Tuple3d

The public accessor methods getX() etc are missing. If you do the same thing on windows or linux,
they appear at the bottom of the list.

kirk$ javap -classpath ./vecmath.jar javax.vecmath.Tuple3d
Compiled from "Tuple3d.java"
public abstract class javax.vecmath.Tuple3d extends java.lang.Object implements
java.io.Serializable,java.lang.Cloneable{
static final long serialVersionUID;
public double x;
public double y;
public double z;
public javax.vecmath.Tuple3d(double, double, double);
public javax.vecmath.Tuple3d(double[]);
public javax.vecmath.Tuple3d(javax.vecmath.Tuple3d);
public javax.vecmath.Tuple3d(javax.vecmath.Tuple3f);
public javax.vecmath.Tuple3d();
public final void set(double, double, double);
public final void set(double[]);
public final void set(javax.vecmath.Tuple3d);
public final void set(javax.vecmath.Tuple3f);
public final void get(double[]);
public final void get(javax.vecmath.Tuple3d);
public final void add(javax.vecmath.Tuple3d, javax.vecmath.Tuple3d);
public final void add(javax.vecmath.Tuple3d);
public final void sub(javax.vecmath.Tuple3d, javax.vecmath.Tuple3d);
public final void sub(javax.vecmath.Tuple3d);
public final void negate(javax.vecmath.Tuple3d);
public final void negate();
public final void scale(double, javax.vecmath.Tuple3d);
public final void scale(double);
public final void scaleAdd(double, javax.vecmath.Tuple3d, javax.vecmath.Tuple3d);
public final void scaleAdd(double, javax.vecmath.Tuple3f);
public final void scaleAdd(double, javax.vecmath.Tuple3d);
public java.lang.String toString();
public int hashCode();
public boolean equals(javax.vecmath.Tuple3d);
public boolean equals(java.lang.Object);
public boolean epsilonEquals(javax.vecmath.Tuple3d, double);
public final void clamp(float, float, javax.vecmath.Tuple3d);
public final void clamp(double, double, javax.vecmath.Tuple3d);
public final void clampMin(float, javax.vecmath.Tuple3d);
public final void clampMin(double, javax.vecmath.Tuple3d);
public final void clampMax(float, javax.vecmath.Tuple3d);
public final void clampMax(double, javax.vecmath.Tuple3d);
public final void absolute(javax.vecmath.Tuple3d);
public final void clamp(float, float);
public final void clamp(double, double);
public final void clampMin(float);
public final void clampMin(double);
public final void clampMax(float);
public final void clampMax(double);
public final void absolute();
public final void interpolate(javax.vecmath.Tuple3d, javax.vecmath.Tuple3d, float);
public final void interpolate(javax.vecmath.Tuple3d, javax.vecmath.Tuple3d, double);
public final void interpolate(javax.vecmath.Tuple3d, float);
public final void interpolate(javax.vecmath.Tuple3d, double);
public java.lang.Object clone();
}



 Comments   
Comment by puybaret [ 13/Apr/10 ]

This is not a defect.
You must be bound to Java 3D 1.3.1 available in Mac OS X by default, because getX was added in Java 3D
1.5.
See http://download.java.net/media/java3d/javadoc/1.5.2/javax/vecmath/Tuple3d.html#getX()
Please update your classpath and/or extension dirs.





[JAVA3D-646] Switch to DirectX if OpenGL renderer doesn't support textures Created: 12/Apr/10  Updated: 12/Apr/10

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: puybaret Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC
URL: http://www.sweethome3d.eu


Issuezilla Id: 646

 Description   

Hi,

A few Sweet Home 3D users reported that Sweet Home 3D crashed when they tried to apply a texture to
a shape in the program.
After a while, we discovered that this problem occurred with OpenGL renderer and forcing DirectX fixed
the bug. If ever you have a mean to detect OpenGL renderer doesn't support textures, it would be good
to switch to DirectX renderer automatically at Java 3D startup.

See also the following bug report:
http://sourceforge.net/tracker/?func=detail&aid=1846741&group_id=152568&atid=784665
for more information and hs_err_pid####.log files.

For your information, Sweet Home 3D with default renderer can be run with
http://www.sweethome3d.eu/SweetHome3D.jnlp
Sweet Home 3D with DirectX renderer can be run with
http://www.sweethome3d.eu/SweetHome3D-DirectX.jnlp



 Comments   
Comment by darwinjob [ 12/Apr/10 ]

Could you describe the case (hardware/driver config) when a textures are not
supported by OpenGL but supported by DirectX at the same time?





[JAVA3D-645] Crash with offscreen rendering Created: 12/Apr/10  Updated: 12/Apr/10

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: puybaret Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: PC
URL: http://www.sweethome3d.eu


Issuezilla Id: 645

 Description   

Hi,

I had a lot of trouble working with offscreen rendering, especially under Linux where I can't avoid
crashes for a few users. I need offscreen rendering in Sweet Home 3D to create images of the current
3D view and to display furniture seen from top in parallel projection.
As I know many drivers simply don't support offscreen rendering, I programmed a isOffScreenImageSupported method at
http://sweethome3d.cvs.sf.net/viewvc/sweethome3d/SweetHome3D/src/com/eteks/sweethome3d/j3d
/Component3DManager.java?revision=1.7&view=markup#l_103
that could be inlined like this:

public boolean isOffScreenImageSupported() {
SimpleUniverse universe = null;
Viewer viewer = null;
Canvas3D offScreenCanvas = null;
RenderingErrorListener renderingErrorListener = null;
try {
// Retrieve graphics configuration once
GraphicsConfigTemplate3D gc = new GraphicsConfigTemplate3D();
// Try to get antialiasing
gc.setSceneAntialiasing(GraphicsConfigTemplate3D.PREFERRED);
GraphicsConfiguration configuration = GraphicsEnvironment
.getLocalGraphicsEnvironment().getDefaultScreenDevice()
.getBestConfiguration(gc);
if (configuration == null)

{ configuration = GraphicsEnvironment .getLocalGraphicsEnvironment().getDefaultScreenDevice() .getBestConfiguration(new GraphicsConfigTemplate3D()); }

// Create a universe bound to no canvas 3D
ViewingPlatform viewingPlatform = new ViewingPlatform();
viewer = new Viewer(new Canvas3D [0]);
universe = new SimpleUniverse(viewingPlatform, viewer);

// Add a rendering error listener that counts down a latch
// to check further if a rendering error happened during off
// screen rendering (rendering error
// listener is called from a notification thread)
final CountDownLatch latch = new CountDownLatch(1);
renderingErrorListener = new RenderingErrorListener() {
public void errorOccurred(RenderingError error)

{ latch.countDown(); }

};
VirtualUniverse.addRenderingErrorListener(renderingErrorListener);

// Create a dummy 3D image to check if it can be rendered
// in current Java 3D configuration
offScreenCanvas = new Canvas3D(configuration, true);
// Configure canvas 3D for offscreen
Screen3D screen3D = offScreenCanvas.getScreen3D();
screen3D.setSize(1, 1);
screen3D.setPhysicalScreenWidth(2f);
screen3D.setPhysicalScreenHeight(2f);
BufferedImage image = new BufferedImage(1, 1,
BufferedImage.TYPE_INT_RGB);
ImageComponent2D imageComponent2D =
new ImageComponent2D(ImageComponent2D.FORMAT_RGB, image);
imageComponent2D.setCapability(
ImageComponent2D.ALLOW_IMAGE_READ);
offScreenCanvas.setOffScreenBuffer(imageComponent2D);
viewer.getView().addCanvas3D(offScreenCanvas);

// Render off screen canvas
offScreenCanvas.renderOffScreenBuffer();
offScreenCanvas.waitForOffScreenRendering();

// If latch count becomes equal to 0 during the past
// instructions or in the coming 10 milliseconds,
// this means that a rendering error happened
if (latch.await(10, TimeUnit.MILLISECONDS))

{ return false; }

offScreenCanvas.getOffScreenBuffer().getImage();
return true;
} catch (InterruptedException ex)

{ // Off screen rendering interrupted return false; }

catch (IllegalRenderingStateException ex)

{ return false; } catch (NullPointerException ex) { return false; }

catch (IllegalArgumentException ex)

{ return false; }

finally {
if (offScreenCanvas != null) {
viewer.getView().removeCanvas3D(offScreenCanvas);
try

{ // Free off screen buffer and context offScreenCanvas.setOffScreenBuffer(null); }

catch (NullPointerException ex)

{ // Java 3D 1.3 may throw an exception }

}
if (renderingErrorListener != null)

{ VirtualUniverse.removeRenderingErrorListener( renderingErrorListener); }

if (universe != null)

{ universe.cleanup(); }

}
}

This test method works well except that sometimes it crashes (mostly under Linux).

See bug report about this issue here:
http://sourceforge.net/tracker/?func=detail&aid=2811829&group_id=152568&atid=784665
and the following crash reports:
http://sourceforge.net/tracker/download.php?
group_id=152568&atid=784665&file_id=332261&aid=2811829

This report is probably about the same issue:
http://sourceforge.net/tracker/?func=detail&aid=2928601&group_id=152568&atid=784665

For your information, Sweet Home 3D with default renderer can be run with
http://www.sweethome3d.eu/SweetHome3D.jnlp
Sweet Home 3D with DirectX renderer can be run with
http://www.sweethome3d.eu/SweetHome3D-DirectX.jnlp






[JAVA3D-643] Switch to DirectX when 3D view is displayed twice with OpenGL Created: 12/Apr/10  Updated: 12/Apr/10

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: puybaret Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC
URL: http://www.sweethome3d.eu


Issuezilla Id: 643

 Description   

Hi,

A few Sweet Home 3D users reported that they get twice the same 3D view in their Canvas3D instance
as seen on this screen capture: http://www.sweethome3d.eu/images/Two3DViews.png
After a while, we discovered that this problem occurred with OpenGL renderer and forcing DirectX
fixed the bug. If ever you have a mean to detect this problem, it would be good to switch to DirectX
renderer automatically.

See also the following bug report:
http://sourceforge.net/tracker/index.php?
func=detail&aid=1818135&group_id=152568&atid=784665
(a part is in French but some comments are in English)

For your information, Sweet Home 3D with default renderer can be run with
http://www.sweethome3d.eu/SweetHome3D.jnlp
Sweet Home 3D with DirectX renderer can be run with http://www.sweethome3d.eu/SweetHome3D-
DirectX.jnlp






[JAVA3D-641] Pure immediate directx not working Created: 28/Feb/10  Updated: 28/Feb/10

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Blocker
Reporter: xdin Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: PC


Issuezilla Id: 641

 Description   

Programs in PureImmediate type are not working on DirectX mode. The programs are
displaying blank. Nut they are all working fine on OpenGL mode. Even the example
program from java3d in PureImmediate is not working on DirectX.






[JAVA3D-640] setDepthTestFunction do not work with the D3D renderer Created: 21/Jan/10  Updated: 22/Jan/10  Resolved: 22/Jan/10

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: lamer77 Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Java Source File SetDepthTestFunctionBug.java    
Issuezilla Id: 640

 Description   

RenderingAttributes.setDepthTestFunction do not work with the D3D renderer. See
the attached test case for an example on how to reproduce the bug.

FIX:
In the "void JNICALL
Java_javax_media_j3d_NativePipeline_updateRenderingAttributes" method in
Attributes.c:

if (!db_enable_override)
{
if (db_enable)

{ d3dCtx->zEnable = TRUE; device->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); //********* BUG FIX START ******************* device->SetRenderState(D3DRS_ZFUNC, getDepthFunc(db_func)); //********* BUG FIX END }

else

{ d3dCtx->zEnable = FALSE; device->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); }

}

Here is the relevant working ogl code:
if (db_enable_override == JNI_FALSE) {
if (db_enable == JNI_TRUE)

{ glEnable(GL_DEPTH_TEST); glDepthFunc( getFunctionValue(db_func)); }

else

{ glDisable(GL_DEPTH_TEST); }

}



 Comments   
Comment by lamer77 [ 21/Jan/10 ]

Created an attachment (id=386)
Reproduces setDepthTestFunction bug with D3D renderer

Comment by aces [ 21/Jan/10 ]

Thank for detailed report.
I'll perform some tests before committing fix to 1.6.0 branch.

Comment by aces [ 22/Jan/10 ]

Thanks lamer77 !
Issue fixed and committed to branch dev-1_6





[JAVA3D-639] ObjectFileMaterials fails on ImageException Created: 10/Dec/09  Updated: 13/Dec/09  Resolved: 13/Dec/09

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: 1.5.0
Fix Version/s: not determined

Type: Bug Priority: Minor
Reporter: mcneillk Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 639

 Description   

Method readMapKd() does not catch a potential exception during texture load,
causing the entire load to fail (instead of just the texure).

Solution is to add ImageException to the list of caught Exceptions:
Line 308

catch (ImageException iex)

{ // Texture won't get loaded if image problem }

Solution is ready for integration.



 Comments   
Comment by mcneillk [ 10/Dec/09 ]

Tested.

Comment by aces [ 11/Dec/09 ]

Hi

Thanks for the review.

Please check the ImageException declaration. I was unable to track it.
Also, if ImageException is subclass of IOException, it is already catch.

===
I would like to have a logger to collect exception messages like this on core-utils.
Unfortunately, Java3D logger is available at javax.media.j3d package only.

Comment by mcneillk [ 11/Dec/09 ]

Ok,

Of course, ImageException is NOT a subclass of IOException, or there would not
have been any exception, plus the compiler would have pointed this out ...

I will integrate.

Comment by aces [ 12/Dec/09 ]

Ok,

Just make sure that the ImageException class is available, as I couldn't find it
elsewhere.

Comment by mcneillk [ 13/Dec/09 ]

Hi,

It's a Java 3D class in package com.sun.j3d.utils.image.

Ok to integrate.

Comment by mcneillk [ 13/Dec/09 ]

Checked in.





[JAVA3D-637] Memory retention (J3dMessage) with PositionPathInterpolator Created: 10/Dec/09  Updated: 10/Dec/09  Resolved: 10/Dec/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: pepe Assignee: java3d-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: PNG File Capture.png     Java Source File Main.java    
Issuezilla Id: 637

 Description   

Running the application below creates numerous J3dMessage objects that never get
collected, causing OOME after relatively short delay.
Application creates 300 color cubes and moves them through
PositionPathInterpolator interpolations.
RotPosPathInterpolator also has been tested, giving same result.



 Comments   
Comment by pepe [ 10/Dec/09 ]

Created an attachment (id=384)
test file

Comment by pepe [ 10/Dec/09 ]

Created an attachment (id=385)
snapshot of profiling after a few minutes

Comment by pepe [ 10/Dec/09 ]

goofed.





[JAVA3D-635] JDK & Java3d Crashes when I close my platform Created: 03/Dec/09  Updated: 03/Dec/09

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.0
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: scnnrc Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: PC


Attachments: Text File hs_err_pid27155.log    
Issuezilla Id: 635

 Description   

I am running Fedora 11 64bit on jdk 1.6.17 & 1.6.18
When I close my RCP based on Netbeans the jdk creashes because of java3d I suppose



 Comments   
Comment by scnnrc [ 03/Dec/09 ]

Created an attachment (id=383)
the file generated after the crash





[JAVA3D-623] Java OpenGL renderer dies with a Failed in SetPixelFormat error Created: 15/Jul/09  Updated: 04/Nov/09

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: mrav Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC


Attachments: Text File alternate_result.txt     Java Source File TestCanvasPanelAlternateConfig.java    
Issuezilla Id: 623

 Description   

We are getting intermittent Java3D errors when using the OpenGL renderer. The
renderer dies after the error and no 3D can be displayed. D3D renderer seems to
work without problems.

-----------------------------------------------------------------------------
Java 3D ERROR : Canvas3D_createNewContext: Failed in SetPixelFormat - (null)

CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context
graphicsDevice = Win32GraphicsDevice[screen=0]
canvas = com.anca.gui.editor3d.java3d.CapturingCanvas3D[canvas0,0,0,242x238]
-----------------------------------------------------------------------------

The system information is as follows:

OS: Windows XP Pro SP2
Graphics card: Mobile Intel 965 Express Chipset Family (GMA X3100)
Driver version: 6.14.0010.5029 (Latest available at the time of error)
DirectX version: 9.1b

We were able to reproduce a similar error using the test case from issue #98, by
running the following command:

java -Dj3d.rend=ogl TestCanvasPanel

Every couple of iterations the error below would occur.

We ran the same test using the D3D renderer and no errors occurred even after
running for ~400 iterations.

-----------------------------------------------------------------------------
Java 3D ERROR : In NativeConfigTemplate : Failed in SetPixelFormat - (null)

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Canvas3D:
null GraphicsConfiguration
at javax.media.j3d.Canvas3D.checkForValidGraphicsConfig(Canvas3D.java:982)
at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:1025)
at TestCanvasPanel.addCanvas(TestCanvasPanel.java:53)
at TestCanvasPanel$TaskPerformer$1.run(TestCanvasPanel.java:150)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)



 Comments   
Comment by aces [ 15/Jul/09 ]

This is a well known issue with SetPixelFormat() on Intel OpenGL video drivers.
It happens on

Before we open it, please try to increase the amount of memory for your video
card. On some PCs this can be done at BIOS.

Comment by aces [ 15/Jul/09 ]

Created an attachment (id=380)
Alternate version of TestCanvasPanel , using a different getBestConfiguration()

Comment by mrav [ 23/Jul/09 ]

I increased the video card memory in the BIOS from 128MB to 256MB, however the
SetPixelFormat errors are still happening.
I also tried changing the video memory allocation to FIXED rather than DVTM
(dynamic), again with no improvement.

The output from the alternate TestCanvasPanel is attached.

Comment by mrav [ 23/Jul/09 ]

Created an attachment (id=381)
Output from TestCanvasPanelAlternateConfig

Comment by aces [ 30/Oct/09 ]

Hi

Seems you video driver has preference for 16bits depth buffer.

On Windows, press Ctrl+Alt+F12 keys or right-click on the desktop and select
Graphics Properties.
Go to your "3D Settings" at Intel Video Card control panel, and change
"Depth Buffer Bit Depth Attribute" setting to "Default" or "24 bit Depth Buffer"

Info about "Intel Graphics Property Window" :
http://www.intel.com/support/graphics/sb/CS-030506.htm

Comment by mrav [ 04/Nov/09 ]

A preference setting for 16 bit Depth Buffer Bit Depth Attribute exists in 3D
Settings.

However this settings was always on Default. I have also tried setting this to
24-bit with no improvement in the results.





[JAVA3D-634] GeometryArrayRetained : dirty flag isn't set in setNormal(..) Created: 27/Oct/09  Updated: 30/Oct/09  Resolved: 30/Oct/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: interactivemesh Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 634

 Description   

GeometryArrayRetained : dirty flag isn't set in setNormal(..)

'dirtyFlag |= NORMAL_CHANGED;' is missing in

GeometryArrayRetained.setNormal(int index, float normal[])



 Comments   
Comment by aces [ 30/Oct/09 ]

Thanks!
Fix applied.





[JAVA3D-633] ShaderAttributeSetRetained : remove(..) doesn't remove a ShaderAttribute Created: 27/Oct/09  Updated: 30/Oct/09  Resolved: 30/Oct/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: interactivemesh Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 633

 Description   

ShaderAttributeSetRetained : remove(ShaderAttribute attr) doesn't remove a
ShaderAttribute

It seems as if in 'remove(ShaderAttribute attr)' a ShaderAttributeRetained
object is compared with a ShaderAttribute object, because 'attrs.get(attrName)'
returns a ShaderAttributeRetained object and 'attr' is a ShaderAttribute object.

void remove(ShaderAttribute attr) {
synchronized(liveStateLock) {

String attrName = attr.getAttributeName();

if (attrs.get(attrName) == attr) { // ... == attr.retained !?

attrs.remove(attrName);
if (source.isLive())

{ ((ShaderAttributeRetained)attr.retained).clearLive(refCount); ((ShaderAttributeRetained)attr.retained).removeMirrorUsers(this); sendMessage(ShaderConstants.ATTRIBUTE_SET_REMOVE, attrName); }

}
}
}



 Comments   
Comment by aces [ 30/Oct/09 ]

Thanks!

Code fix applied.





[JAVA3D-631] BehaviorStructure : 'awtEventsBuffer' is not fully synchronized ! Created: 26/Oct/09  Updated: 30/Oct/09  Resolved: 30/Oct/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: interactivemesh Assignee: java3d-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 631

 Description   

The access to the UnorderList 'awtEventsBuffer' is not fully synchronized in the
class BehaviorStructure.

An AWTEvent can get lost when it is added to 'awtEventsBuffer' between the calls
'awtEventsBuffer.toArray()' and 'awtEventsBuffer.clear()'. This can happen to a
KEY_RELEASED event after a sequence of repeated KEY_PRESSED events.

// Called from Canvas3D.sendEventToBehaviorScheduler(AWTEvent evt)

void handleAWTEvent(AWTEvent evt) {

awtEventsBuffer.add(evt); // not synchronized !!!!

VirtualUniverse.mc.sendRunMessage(universe, J3dThread.BEHAVIOR_SCHEDULER);
}

// Called from BehaviorScheduler.doWork

void handleAWTEvent() {

// ...

synchronized (awtEventsBuffer)

{ events = (AWTEvent []) awtEventsBuffer.toArray(); awtBufferSize = awtEventsBuffer.size(); awtEventsBuffer.clear(); }

// ...

}



 Comments   
Comment by mcneillk [ 27/Oct/09 ]

Some investigation reveals that the implementation of method

awtEventsBuffer.add()

is synchronized internally (in UnorderList.java). Also, methods

awtEventsBuffer.toArray()
awtEventsBuffer.clear()

are also synchronized in the same class.

So, in theory, there is no risk of losing events. In fact, it would be cleaner
to remove the external synchronized block

synchronized (awtEventsBuffer)

{ events = (AWTEvent []) awtEventsBuffer.toArray(); awtBufferSize = awtEventsBuffer.size(); awtEventsBuffer.clear(); }

to avoid any confusion and unnecessary object locking.

I recommend either rejecting this bug, or re-qualifying it to an enhancement,
removing the extra synchronization, and changing "awtBufferSize =
awtEventsBuffer.size()" to "awtBufferSize = events.length()" for complete
correctness and readability.

Comment by interactivemesh [ 29/Oct/09 ]

Sorry, I disregarded that the concerned methods are synchronized.

I recommend to leave the code unchanged for now, because

  • awtEventsBuffer.size() is the exact number of events
  • awtEventsBuffer.size() <= events.length, see UnorderList
  • the synchronized block (nested locks) prevents the waiting event-dispatching
    thread from adding an event while the BehaviorScheduler thread firstly creates
    an array from the list and secondly clears the list in two separated calls.
Comment by aces [ 30/Oct/09 ]

Thanks .
Yes, your analysis is correct.
I'll close it as invalid.





[JAVA3D-632] PointAttributesRetained : setPointAntialiasingEnable doesn't change the state Created: 27/Oct/09  Updated: 27/Oct/09  Resolved: 27/Oct/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: interactivemesh Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 632

 Description   

PointAttributesRetained : setPointAntialiasingEnable doesn't change the state

The line

'initPointAntialiasingEnable(pointAntialiasing);'

should be replaced by

initPointAntialiasingEnable(state);

in

final void setPointAntialiasingEnable(boolean state) {

initPointAntialiasingEnable(pointAntialiasing); // !!! (state)

sendMessage(POINT_AA_CHANGED, (state ? Boolean.TRUE: Boolean.FALSE));
}



 Comments   
Comment by aces [ 27/Oct/09 ]

Thanks!

Fix applied and committed to dev-1_6 .





[JAVA3D-629] D3D must use software vertex processing on Intel video cards Created: 03/Sep/09  Updated: 27/Oct/09  Resolved: 27/Oct/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Improvement Priority: Critical
Reporter: aces Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 629

 Description   

D3D pipeline is failing to render on newer Intel video cards, as Intel GMA 4500MHD.
As workaround, user must set Java3D property j3d.d3dVertexProcess=software



 Comments   
Comment by aces [ 03/Sep/09 ]

Evaluation:
Despiste newer Intel video cards has specs for creating devices using hardware
vertex processing (HWVP), as Hardware TnL and shaders +2.x, Intel recomends
using Software Vertex Processing (SWVP).

As stated on Intel Graphics Media Accelerator Developer's Guide :
"(..) default, HWVP is enabled. However, CPU vertex processing may offer even
greater performance enhancements on the latest Intel multi-core processors
(compared to HWVP).(...)In some cases we have witnessed gains up to 30%
improvement by using SWGP, although this is dependent on the particular
configuration and workload."

Above guide is available online at :
http://software.intel.com/sites/billboard/downloads/IGPA-Guide-4209.pdf

As solution, we will set SWVP as default for all Intel video cards. It can be
overriden by j3d.d3dVertexProcess=hardware and j3d.d3dVertexProcess=mixed.

This solution is safe, because all older Intel video cards use it and will work
in future hardware from that manufacture.
It is reliable, because SWVP runs in software mode, and avoid issues on
hardware/driver implementation of vertex processing.
And, finally, it's faster in some cases, as already commented above.

Comment by aces [ 13/Sep/09 ]

Proposed solution committed.
Now Intel Video cards uses SWVP as default.
User can force HWVP and Mixed Vertex Processing using already existent Java3D
properties
j3d.d3dVertexProcess=hardware
and
j3d.d3dVertexProcess=mixed

Comment by aces [ 27/Oct/09 ]

Above Intel document
"Intel Graphics Media Accelerator Developer's Guide"
was moved to :

http://software.intel.com/sites/billboard/assets/pdfs/IGPA-Guide-4209.pdf





[JAVA3D-630] Text3d requires to long on first use Created: 06/Oct/09  Updated: 06/Oct/09

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Improvement Priority: Major
Reporter: optimusprime1982 Assignee: java3d-issues
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: All


Issuezilla Id: 630

 Description   

import java.awt.Font;

import javax.media.j3d.Font3D;
import javax.media.j3d.FontExtrusion;
import javax.media.j3d.Text3D;
import javax.vecmath.Point3f;

public class MyTest {

private static Font3D FONT3D = new Font3D(new Font("Times", Font.PLAIN, 2),
new FontExtrusion());
private static Point3f STANDARD_POINT = new Point3f(
0.0f, 0.0f, 0.0f);

public static void main(String[] args)

{ long now = System.currentTimeMillis(); Text3D text3d = new Text3D(FONT3D, "LALA", STANDARD_POINT); System.out.println(System.currentTimeMillis()-now); long now2 = System.currentTimeMillis(); Text3D text3d_ = new Text3D(FONT3D, "LALA", STANDARD_POINT); System.out.println(System.currentTimeMillis()-now2); }

}






[JAVA3D-628] ShaderTestGLSL demo won't run on OS X Safari Created: 31/Aug/09  Updated: 31/Aug/09

Status: Open
Project: java3d
Component/s: j3d-examples
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: titus_roth Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 628

 Description   

On OS X version 10.5.8 Safari 4.0.3, I get the following:

java.lang.NoSuchMethodError:
com.sun.j3d.utils.universe.SimpleUniverse.addShaderErrorListener(Ljavax/media/j3d/ShaderErrorListen
er;)V
at org.jdesktop.j3d.examples.glsl_shader.ShaderTestGLSL.initScene(ShaderTestGLSL.java:317)
at org.jdesktop.j3d.examples.glsl_shader.ShaderTestGLSL.<init>(ShaderTestGLSL.java:345)
at org.jdesktop.j3d.examples.glsl_shader.ShaderTestGLSL.main(ShaderTestGLSL.java:655)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1359)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1297)
at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1096)
at com.sun.javaws.Launcher.run(Launcher.java:116)
at java.lang.Thread.run(Thread.java:613)






[JAVA3D-627] ClassCastException in RenderBin.updateObject method Created: 30/Aug/09  Updated: 30/Aug/09

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: typically Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: All


Issuezilla Id: 627

 Description   

After testing my application on the Ubuntu platform (it is developed on
Windows), and I'm encountering an internal exception in j3d-1.5.2 for Linux when
I try to render a Texture3D node. This exception does not occur with any Windows
version I have used (including stable releases up to the November 2008
experimental release). This could be a pretty straightforward coding error
although I have not reproduced it in a test program since the exception is
thrown directly from the J3D master control thread.

[code]
Exception in thread "J3D-MasterControl-1" java.lang.ClassCastException:
javax.media.j3d.ImageComponent3DRetained cannot be cast to
javax.media.j3d.ImageComponent2DRetained
at javax.media.j3d.RenderBin.updateObject(RenderBin.java:686)
at javax.media.j3d.MasterControl.updateMirrorObjects(MasterControl.java:2567)
at javax.media.j3d.MasterControl.runMonitor(MasterControl.java:3365)
at javax.media.j3d.MasterControl.doWork(MasterControl.java:2904)
at javax.media.j3d.MasterControlThread.run(MasterControlThread.java:48)
[/code]






[JAVA3D-626] float overflow Created: 26/Aug/09  Updated: 26/Aug/09  Resolved: 26/Aug/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: orace Assignee: java3d-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 626

 Description   

If I do :
GL gl = getGL();
printmatrix();
System.out.println("scale -> " + Scale);
gl.glScaled(Scale.getX(), Scale.getY(), Scale.getZ());
printmatrix();
System.out.println("trans -> " + Translation);
gl.glTranslated(Translation.getX(), Translation.getY(), Translation.getZ());
printmatrix();
With big values for scale ans Translation (up to 10e38,ie max_float) I get a lot
of NaN in the matrix.
Does JoGL use float instead of double for the Modelview/Projection matrix ?

PS : (output of the code below)
GL_MODELVIEW :
_________________________________

0.75 0.0 0.0 0.0
0.0 0.75 0.0 0.0
0.0 0.0 1.0 0.0
0.125 0.125 0.0 1.0

---------------------------------
scale -> 0.25, 2.5000000000000003E-46, 0.5
GL_MODELVIEW
_________________________________

0.1875 0.0 0.0 0.0
0.0 0.0* 0.0 0.0
0.0 0.0 0.5 0.0
0.125 0.125 0.0 1.0

---------------------------------
0.0* here we have 0.0 instead of 1.875E-46
trans -> -1.0, -1.0E45, -1.0
GL_MODELVIEW
_________________________________

0.1875 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.5 0.0
NaN NaN NaN NaN

---------------------------------
here we have to mush NaN



 Comments   
Comment by aces [ 26/Aug/09 ]

Hi

This is Java3D Issue database, not JOGL.
Please post it on JoGL forum. The experts over there can help you.





[JAVA3D-625] By reference mode not supported in GeometryInfo constructor from an IndexedGeometryArray Created: 17/Aug/09  Updated: 17/Aug/09

Status: Open
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: 1.5.1
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: ylliac Assignee: java3d-issues
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 625

 Description   

The constructor of GeometryInfo from a GeometryArray doesn't work properly with
an IndexedGeometryArray with the "by reference" mode enable.

This throws the following exception :

Exception in thread "main" java.lang.IllegalStateException:
IndexedGeometryArray: cannot access indices directly in BY_REFERENCE_INDICES mode
at
javax.media.j3d.IndexedGeometryArray.getCoordinateIndices(IndexedGeometryArray.java:932)
at
com.sun.j3d.utils.geometry.GeometryInfoGenerator.processIndexedArray(GeometryInfoGenerator.java:795)
at
com.sun.j3d.utils.geometry.GeometryInfoGenerator.create(GeometryInfoGenerator.java:126)
at
com.sun.j3d.utils.geometry.GeometryInfoGenerator.create(GeometryInfoGenerator.java:87)
at com.sun.j3d.utils.geometry.GeometryInfo.<init>(GeometryInfo.java:233)

It seems that this is an issue with GeometryInfoGenerator because the method
processGeometryArray() handle the "by reference" mode but the method
processIndexedArray() doesn't.






[JAVA3D-624] Raster shown as wireframe when wireframe quad exists in D3D pipeline Created: 09/Aug/09  Updated: 09/Aug/09

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: andimb Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: PC


Attachments: JPEG File img2.jpg    
Issuezilla Id: 624

 Description   

In D3D pipeline, a Raster object is shown as wire frame if a wireframe quad
exists in the scene. So the image is not shown.



 Comments   
Comment by andimb [ 09/Aug/09 ]

Created an attachment (id=382)
This image shows the defect





[JAVA3D-621] Problem with normalgenerator Created: 01/Jul/09  Updated: 20/Jul/09

Status: Open
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: paasiala Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Java Source File TriangulatorTest.java    
Issuezilla Id: 621

 Description   

The face is in x,z plane and rotates counter clockwise when viewed from the
direction of (0,-1,0). The face has one concave part, otherwise it is rectangle.
When I remove the concave part, the normals are flipped to the correct
orientation.

I'll attach a simple Java class to demonstrate the problem. In the class there are
four lines marked with // hide. When these lines are commented, the normals are
flipped.



 Comments   
Comment by paasiala [ 01/Jul/09 ]

Created an attachment (id=379)
Sample code to duplicate the problem

Comment by paasiala [ 01/Jul/09 ]

The problem seems to be caused by the fact that the face starts with a concave
turn. If I order the points so that they start from a convex part, I get correct
results. If I have the following points:

<code>
Point3d[] p1 =

{ new Point3d(51.8,15.5,0.0), new Point3d(51.8,15.5,3.0), new Point3d(17.0,15.5,3.0), new Point3d(17.0,15.5,0.0), new Point3d(36.3,15.5,0.0), // hide new Point3d(36.3,15.5,2.7), // hide new Point3d(37.5,15.5,2.7), // hide new Point3d(37.5,15.5,0.0), // hide // Hole new Point3d(18.6,15.5,0.1), new Point3d(18.6,15.5,2.6), new Point3d(20.0,15.5,2.6), new Point3d(20.0,15.5,0.1), }

;
</code>

the normals are generated properly.

Pasi

Comment by paasiala [ 20/Jul/09 ]

With "Newell's method" I found an algorithm that could be used to calculate the
face normals. One link to that is here:
http://books.google.fi/books?id=xmW_u3mQLmQC&pg=RA1-PA231&lpg=RA1-PA231&dq=%22Newell%27s+method%22&source=bl&ots=Z5Y8ESLdMl&sig=G3aaVTpZNLLZ2zzZHI1WjsueugM&hl=fi&ei=6xxkSv-QBone-QaXmvD0DA&sa=X&oi=book_result&ct=result&resnum=7





[JAVA3D-622] Matrix4*.setRotation(AxisAngle*) doesn't work if matrix is zero Created: 10/Jul/09  Updated: 10/Jul/09

Status: Open
Project: java3d
Component/s: vecmath
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Trivial
Reporter: jmax31 Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 622

 Description   

The method is supposed "set the rotational component (upper 3x3) of this matrix
to the matrix equivalent values of the axis-angle argument; the other elements
of this matrix are unchanged". But if initial matrix is zero, the modified
matrix is zero too. I suppose the scaling stuff that javadoc is talking about is
responsible for that ; but I think this method should set the rotational
component even when initial values are zeros.

Tested for Matrix4d and Matrix4f on 1.5.2 version and 1.6.0_2009-07-10 version.

Easy workaround is to set matrix to identity before setting the rotational
component.






[JAVA3D-620] ROTATE_NONE is not considered in OrientedShape3D Created: 19/Jun/09  Updated: 19/Jun/09  Resolved: 19/Jun/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.0
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: ylliac Assignee: java3d-issues
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 620

 Description   

In the class OrientedShape3D, the constant ROTATE_NONE which is supposed to
cancel the rotation of the shape is not considered. In fact, when updating the
shape transform, the code look as the following :

if(mode == ROTATE_ABOUT_AXIS){
//rotation about axis
}else{
//rotation about point
}

if{isConstantScaleEnabled){
//constant scale
}

(--> updateOrientedTransform() in OrientedShape3DRetained)

So it is impossible to create a constant scale Shape3D with no rotation. That is
a real problem to create axis in a modeling application which have always the
same size for the user, as in Blender for example.

The solution could be doing like this :

if(mode == ROTATE_ABOUT_AXIS){
//rotation about axis
}else if(mode == ROTATE_ABOUT_POINT{
//rotation about point
}

if{isConstantScaleEnabled){
//constant scale
}



 Comments   
Comment by aces [ 19/Jun/09 ]

Thanks for your report.

Comment by aces [ 19/Jun/09 ]

Changes applied to dev-1_6 branch.





[JAVA3D-618] Java3D jnlp certificate has expired Created: 11/May/09  Updated: 17/Jun/09  Resolved: 17/Jun/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Blocker
Reporter: paasiala Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 618

 Description   

The jnlp certificate of the public Java3D webstart
("http://download.java.net/media/java3d/webstart/release/java3d-latest.jnlp")
has a certificate that has expired on May 1st 2009. The certificate should be
updated.



 Comments   
Comment by jada [ 17/Jun/09 ]

This is now fixed with new certificate for the Java Media APIs ( 05/15).





[JAVA3D-617] OGL Driver with ATI Radeon - LinearArray not wotking wit Fog nodes Created: 04/May/09  Updated: 06/May/09

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: fravalle Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Java Source File FoggyGrid.java     Java Source File FoggyGrid.java     Text File hs_err_pid780.log     PNG File tex.png    
Issuezilla Id: 617

 Description   

I am currently using an onboard ATI Radeon on Windows, and via -Dj3d.rend I am
using the OGL driver.

1) I draw a grid composed by thin lines, all LineArray, and then I add a
LinearFog (ExponentialFog has the same behavior) node.

2) I use OrbitBehavior to navigate the scene, but pratically only when I watch
straight I see correctly all grid lines.

But using D3D driver with fog all lines are correctly drawn, it seems that OGL
works only without foggy nodes.

See following pictures:
Some screenshots:

D3D, foggy watching straight:

<a target='_blank' title='ImageShack - Image And Video Hosting'
href='http://img385.imageshack.us/my.php?image=d3dstraight.jpg'><img
src='http://img385.imageshack.us/img385/5026/d3dstraight.jpg'
border='0'/></a><br/><a
href="http://g.imageshack.us/img385/d3dstraight.jpg/1/"><img
src="http://img385.imageshack.us/img385/d3dstraight.jpg/1/w666.png" border="0"></a>

D3D, foggy watching with changed viewing angle:
<a target='_blank' title='ImageShack - Image And Video Hosting'
href='http://img222.imageshack.us/my.php?image=d3dangled.jpg'><img
src='http://img222.imageshack.us/img222/6218/d3dangled.jpg'
border='0'/></a><br/><a
href="http://g.imageshack.us/img222/d3dangled.jpg/1/"><img
src="http://img222.imageshack.us/img222/d3dangled.jpg/1/w666.png" border="0"></a>

OGL, foggy watching straight (disappearing some lines):
<a target='_blank' title='ImageShack - Image And Video Hosting'
href='http://img217.imageshack.us/my.php?image=oglstraight.jpg'><img
src='http://img217.imageshack.us/img217/4205/oglstraight.jpg'
border='0'/></a><br/><a
href="http://g.imageshack.us/img217/oglstraight.jpg/1/"><img
src="http://img217.imageshack.us/img217/oglstraight.jpg/1/w644.png" border="0"></a>

OGL foggy watching with changed viewing angle (disappearing all lines):
<a target='_blank' title='ImageShack - Image And Video Hosting'
href='http://img222.imageshack.us/my.php?image=oglangled.jpg'><img
src='http://img222.imageshack.us/img222/4279/oglangled.jpg'
border='0'/></a><br/><a
href="http://g.imageshack.us/img222/oglangled.jpg/1/"><img
src="http://img222.imageshack.us/img222/oglangled.jpg/1/w644.png" border="0"></a>

The FOG

LinearFog fog = new LinearFog();
fog.setName("FOG-LIN:"+groupScope.getName());
fog.setColor(new Color3f(BCK_COLOR));
fog.setFrontDistance(.5D);
fog.setBackDistance(27D);
fog.setCapability(LinearFog.ALLOW_COLOR_WRITE);
fog.setCapability(LinearFog.ALLOW_DISTANCE_WRITE);

fog.setInfluencingBounds(this.worldBounds);
fog.addScope(groupScope);
this.getBranchRoot().addChild(fog);

The GRID

static Shape3D createLand(Color col) {
Color3f cf = new Color3f(col);
// Color4f cf = new Color4f(col);
// cf.setW(0);

int grid=50;
int factor = grid*2;
int size = 40*factor;
LineArray landGeom = new LineArray(size, GeometryArray.COORDINATES |
GeometryArray.COLOR_3);
final float len = grid*10;
float newLen = -len;
for (int c = 0; c < size; c += 4) {
landGeom.setCoordinate(c + 0, new Point3f(-len, 0.0f, newLen));
landGeom.setCoordinate(c + 1, new Point3f(len, 0.0f, newLen));
landGeom.setCoordinate(c + 2, new Point3f(newLen, 0.0f, -len));
landGeom.setCoordinate(c + 3, new Point3f(newLen, 0.0f, len));
newLen += 1f;
}

for (int i = 0; i < size; i++)
landGeom.setColor(i, cf);

return new Shape3D(landGeom);
}



 Comments   
Comment by aces [ 04/May/09 ]

Check if this issue also happens on latest AMD/ATi drivers.
If possible attach a minimal running example, so we can test it on NVidia /
Intel vcards.

Comment by fravalle [ 05/May/09 ]

Created an attachment (id=375)
Test case for foggy, use ogl or d3d as input param for selecting the renderer driver

Comment by fravalle [ 05/May/09 ]

Created an attachment (id=376)
New Test case for foggy with texturized plane, use ogl or d3d as input param for selecting the renderer driver

Comment by fravalle [ 05/May/09 ]

Created an attachment (id=377)
Texture for testcase

Comment by fravalle [ 05/May/09 ]

Created an attachment (id=378)
Using OGL I get also this error when exiting, but only using JFrame

Comment by fravalle [ 05/May/09 ]

Hi, I noticed the problem also using Windows XP and the unfamous G400

Comment by aces [ 06/May/09 ]

Example works fine on NVidia, but fails on AMD/ATI vcards. Possibly it is a
video card driver issue.
I'll fill up a issue at AMD drivers support and wait.
If possible, use D3D renderer for those vcards.

For that crash with JFrame and OpenGL renderer, try to disable Swing DirectX
acceleration, by setting -Dsun.java2d.noddraw=true as VM option, or
System.setProperty("sun.java2d.noddraw","true") before you create Swing objects.





[JAVA3D-337] Need to add new 1.4 and 1.5 fetaures to scene graph I/O Created: 03/Aug/06  Updated: 29/Apr/09

Status: Open
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: 1.5.0
Fix Version/s: not determined

Type: Bug Priority: Trivial
Reporter: kcr Assignee: java3d-issues
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 337
Status Whiteboard:

owner-needed


 Description   

The com.sun.j3d.utils.scenegraph.io package provides utility classes to save
(write) and load (read) a Java 3D scene graph to/from a File or a Stream.
Whenever a new core feature (class, method, or field) is added to the Java 3D
API in the javax.media.j3d package, the Scene Graph I/O package needs to be
updated with code to save and restore the new feature. This has not been done
for any post 1.3 API features, such as programmable shaders (Shader,
ShaderProgram, ShaderAttribute, vertex attributes in GeometryArray, and so forth).



 Comments   
Comment by kcr [ 03/Aug/06 ]

Mark as "owner-needed".

Comment by mcneillk [ 29/Apr/09 ]

I have worked extensively with SG IO, and so I can provide the necessary code,
if there is interest.





[JAVA3D-616] SIGSEGV linked to offscreen rendering Created: 28/Feb/09  Updated: 28/Feb/09

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: longairm Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: PC


Issuezilla Id: 616

 Description   

I seem to consistently get a segmentation fault with programs that
use offscreen rendering. For example, the OffScreenTest class in
j3d-examples displays a window where a cube can briefly be seen and
then crashes. (This happens every time with OffScreenTest; the
other examples that I've tried all work fine.) The terminal output
is as follows:

----------------------------------------------------------------------
$ java -cp dist/j3d-examples.jar
org.jdesktop.j3d.examples.offscreen_canvas3d.OffScreenTest
Java 3D WARNING : reported GLX version = 1.2
GLX version 1.3 or higher is required
The reported version number may be incorrect. There is a known
ATI driver bug in glXQueryVersion that incorrectly reports the GLX
version as 1.2 when it really is 1.3, so Java 3D will attempt to
run anyway.
failed to create drawable
#

  1. An unexpected error has been detected by Java Runtime Environment:
    #
  2. SIGSEGV (0xb) at pc=0x904d8c42, pid=26483, tid=2419436432
    #
  3. Java VM: Java HotSpot(TM) Server VM (11.0-b15 mixed mode linux-x86)
  4. Problematic frame:
  5. C [libGL.so.1+0x39c42]
    #
  6. An error report file with more information is saved as:
  7. /home/mark/Desktop/j3d-examples/hs_err_pid26483.log
    #
  8. If you would like to submit a bug report, please visit:
  9. http://java.sun.com/webapps/bugreport/crash.jsp
  10. The crash happened outside the Java Virtual Machine in native code.
  11. See problematic frame for where to report the bug.
    #
    Aborted
    ----------------------------------------------------------------------

I'm using Sun Java version 1.6.0_10.

This system is a up-to-date installation of Ubuntu Intrepid Ibex, and
the graphics chipset is the Intel 945GME. The library libGL.so.1.2
is in the package libgl1-mesa-glx; the versions of that package and
its dependencies are shown below:

Versions of packages libgl1-mesa-glx depends on:
ii dpkg 1.14.20ubuntu6.1 Debian package management system
ii libc6 2.8~20080505-0ubuntu9 GNU C Library: Shared libraries
ii libdrm2 2.3.1-0build1 Userspace interface to kernel DRM
ii libx11-6 2:1.1.5-2ubuntu1.1 X11 client-side library
ii libxdamage1 1:1.1.1-4 X11 damaged region extension libra
ii libxext6 2:1.0.4-1 X11 miscellaneous extension librar
ii libxfixes3 1:4.0.3-2 X11 miscellaneous 'fixes' extensio
ii libxxf86vm1 1:1.0.2-1 X11 XFree86 video mode extension l

This same error can be seen on 1.5.1, 1.5.2 and a more recent build that
I tried (j3d-1_6_0-pre1-0902270159-linux-i586).

I hope this report is of some use - please let me know if I can provide
any more information.

----------------------------------------------------------------------
#

  1. An unexpected error has been detected by Java Runtime Environment:
    #
  2. SIGSEGV (0xb) at pc=0x904d8c42, pid=26483, tid=2419436432
    #
  3. Java VM: Java HotSpot(TM) Server VM (11.0-b15 mixed mode linux-x86)
  4. Problematic frame:
  5. C [libGL.so.1+0x39c42]
    #
  6. If you would like to submit a bug report, please visit:
  7. http://java.sun.com/webapps/bugreport/crash.jsp
  8. The crash happened outside the Java Virtual Machine in native code.
  9. See problematic frame for where to report the bug.
    #

--------------- T H R E A D ---------------

Current thread (0x087f6400): JavaThread "J3D-Renderer-1" [_thread_in_native,
id=26503, stack(0x9030a000,0x9035b000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000010

Registers:
EAX=0x00000000, EBX=0x904f9ff4, ECX=0x902ee6a0, EDX=0x08bcb320
ESP=0x90359a50, EBP=0x90359a68, ESI=0x00000000, EDI=0x08697680
EIP=0x904d8c42, CR2=0x00000010, EFLAGS=0x00210286

Top of Stack: (sp=0x90359a50)
0x90359a50: 08697680 08907d70 00000000 904f9ff4
0x90359a60: 00000000 08697680 90359ad8 904b6e6c
0x90359a70: 08bcb320 00000000 00000000 00000000
0x90359a80: 00008014 08bcb238 9d7b9408 08bcab90
0x90359a90: 08bcb238 00000000 00359ab8 08893c38
0x90359aa0: 08735ec8 9d4e3ebb 0003fff4 088edd4c
0x90359ab0: 91c8b030 91c8b030 06695768 088edd4c
0x90359ac0: 00000025 00000000 904b6d9b 08bcb238

Instructions: (pc=0x904d8c42)
0x904d8c32: e5 83 ec 18 8b 55 08 8b 42 14 8b 48 0c 8b 45 10
0x904d8c42: 8b 40 10 89 44 24 08 8b 45 0c 8b 40 10 89 44 24

Stack: [0x9030a000,0x9035b000], sp=0x90359a50, free space=318k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libGL.so.1+0x39c42]
C [libGL.so.1+0x17e6c] glXMakeCurrentReadSGI+0xdc
C [libGL.so.1+0x1814b] glXMakeCurrent+0x2b
C [libj3dcore-ogl.so+0xbd57]
Java_javax_media_j3d_NativePipeline_createNewContext+0x155
j
javax.media.j3d.NativePipeline.createNewContext(Ljavax/media/j3d/Canvas3D;JJJJZZZZ)J+0
j
javax.media.j3d.NativePipeline.createNewContext(Ljavax/media/j3d/Canvas3D;JLjavax/media/j3d/Drawable;JLjavax/media/j3d/Context;ZZZZ)Ljavax/media/j3d/Context;+25
j
javax.media.j3d.Canvas3D.createNewContext(JLjavax/media/j3d/Drawable;JLjavax/media/j3d/Context;ZZZZ)Ljavax/media/j3d/Context;+18
j
javax.media.j3d.Canvas3D.createNewContext(Ljavax/media/j3d/Context;Z)Ljavax/media/j3d/Context;+36
j javax.media.j3d.Renderer.doWork(J)V+3729
j javax.media.j3d.Canvas3D.renderOffScreenBuffer()V+473
j org.jdesktop.j3d.examples.offscreen_canvas3d.OffScreenCanvas3D.print(Z)V+47
j org.jdesktop.j3d.examples.offscreen_canvas3d.OnScreenCanvas3D.postSwap()V+19
j javax.media.j3d.Renderer.doWork(J)V+370
j javax.media.j3d.J3dThread.run()V+19
v ~StubRoutines::call_stub
V [libjvm.so+0x375a7d]
V [libjvm.so+0x5055d8]
V [libjvm.so+0x375390]
V [libjvm.so+0x37541d]
V [libjvm.so+0x3e5a85]
V [libjvm.so+0x5cdbfd]
V [libjvm.so+0x506709]
C [libpthread.so.0+0x650f]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j
javax.media.j3d.NativePipeline.createNewContext(Ljavax/media/j3d/Canvas3D;JJJJZZZZ)J+0
j
javax.media.j3d.NativePipeline.createNewContext(Ljavax/media/j3d/Canvas3D;JLjavax/media/j3d/Drawable;JLjavax/media/j3d/Context;ZZZZ)Ljavax/media/j3d/Context;+25
j
javax.media.j3d.Canvas3D.createNewContext(JLjavax/media/j3d/Drawable;JLjavax/media/j3d/Context;ZZZZ)Ljavax/media/j3d/Context;+18
j
javax.media.j3d.Canvas3D.createNewContext(Ljavax/media/j3d/Context;Z)Ljavax/media/j3d/Context;+36
j javax.media.j3d.Renderer.doWork(J)V+3729
j javax.media.j3d.Canvas3D.renderOffScreenBuffer()V+473
j org.jdesktop.j3d.examples.offscreen_canvas3d.OffScreenCanvas3D.print(Z)V+47
j org.jdesktop.j3d.examples.offscreen_canvas3d.OnScreenCanvas3D.postSwap()V+19
j javax.media.j3d.Renderer.doWork(J)V+370
j javax.media.j3d.J3dThread.run()V+19
v ~StubRoutines::call_stub

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x088fd400 JavaThread "J3D-InputDeviceScheduler-1" [_thread_blocked, id=26512,
stack(0x8d133000,0x8d184000)]
0x088fc800 JavaThread "J3D-SoundSchedulerUpdateThread-1" [_thread_blocked,
id=26511, stack(0x8d184000,0x8d1d5000)]
0x90532000 JavaThread "J3D-RenderStructureUpdateThread-1" [_thread_blocked,
id=26510, stack(0x8d1d5000,0x8d226000)]
0x90530c00 JavaThread "J3D-BehaviorScheduler-1" [_thread_blocked, id=26509,
stack(0x8d226000,0x8d277000)]
0x9052f400 JavaThread "J3D-TransformStructureUpdateThread-1" [_thread_blocked,
id=26508, stack(0x8d277000,0x8d2c8000)]
0x9052e000 JavaThread "J3D-RenderingEnvironmentStructureUpdateThread-1"
[_thread_blocked, id=26507, stack(0x8d2c8000,0x8d319000)]
0x9052cc00 JavaThread "J3D-SoundStructureUpdateThread-1" [_thread_blocked,
id=26506, stack(0x8d319000,0x8d36a000)]
0x9052bc00 JavaThread "J3D-GeometryStructureUpdateThread-1" [_thread_blocked,
id=26505, stack(0x8d36a000,0x8d3bb000)]
0x9052b400 JavaThread "J3D-BehaviorStructureUpdateThread-1" [_thread_blocked,
id=26504, stack(0x8d3bb000,0x8d40c000)]
=>0x087f6400 JavaThread "J3D-Renderer-1" [_thread_in_native, id=26503,
stack(0x9030a000,0x9035b000)]
0x90526400 JavaThread "J3D-MasterControl-1" [_thread_blocked, id=26502,
stack(0x9035b000,0x903ac000)]
0x90525400 JavaThread "J3D-NotificationThread" [_thread_blocked, id=26501,
stack(0x903ac000,0x903fd000)]
0x9051f000 JavaThread "J3D-TimerThread" [_thread_blocked, id=26500,
stack(0x903fd000,0x9044e000)]
0x90525000 JavaThread "J3D-RenderingAttributesStructureUpdateThread"
[_thread_blocked, id=26499, stack(0x9044e000,0x9049f000)]
0x90516400 JavaThread "DestroyJavaVM" [_thread_blocked, id=26484,
stack(0xb7ddf000,0xb7e30000)]
0x90515800 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=26498,
stack(0x9066d000,0x906be000)]
0x90514c00 JavaThread "AWT-Shutdown" [_thread_blocked, id=26497,
stack(0x90724000,0x90775000)]
0x90514000 JavaThread "AWT-XAWT" daemon [_thread_blocked, id=26496,
stack(0x90775000,0x907c6000)]
0x90cd5800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=26495,
stack(0x907ee000,0x9083f000)]
0x90c04400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=26493,
stack(0x90d19000,0x90d6a000)]
0x90c02000 JavaThread "CompilerThread1" daemon [_thread_blocked, id=26492,
stack(0x90b7f000,0x90c00000)]
0x90c00800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=26491,
stack(0x90d6a000,0x90deb000)]
0x08622800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=26490,
stack(0x90deb000,0x90e3c000)]
0x08611800 JavaThread "Finalizer" daemon [_thread_blocked, id=26489,
stack(0x90e7b000,0x90ecc000)]
0x0860d000 JavaThread "Reference Handler" daemon [_thread_blocked, id=26488,
stack(0x90ecc000,0x90f1d000)]

Other Threads:
0x08609800 VMThread [stack: 0x90f1d000,0x90f9e000] [id=26487]
0x90c06400 WatcherThread [stack: 0x90afe000,0x90b7f000] [id=26494]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
PSYoungGen total 6656K, used 6472K [0xb1480000, 0xb1b80000, 0xb4c80000)
eden space 6144K, 97% used [0xb1480000,0xb1a54520,0xb1a80000)
from space 512K, 98% used [0xb1b00000,0xb1b7dd98,0xb1b80000)
to space 512K, 0% used [0xb1a80000,0xb1a80000,0xb1b00000)
PSOldGen total 28672K, used 891K [0x95480000, 0x97080000, 0xb1480000)
object space 28672K, 3% used [0x95480000,0x9555ece8,0x97080000)
PSPermGen total 16384K, used 10620K [0x91480000, 0x92480000, 0x95480000)
object space 16384K, 64% used [0x91480000,0x91edf0b0,0x92480000)

Dynamic libraries:
06000000-06676000 r-xp 00000000 08:05 5718711
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/server/libjvm.so
06676000-066bb000 rwxp 00675000 08:05 5718711
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/server/libjvm.so
066bb000-06add000 rwxp 066bb000 00:00 0
08048000-08052000 r-xp 00000000 08:05 5718691
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/bin/java
08052000-08053000 rwxp 00009000 08:05 5718691
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/bin/java
08583000-08ef3000 rwxp 08583000 00:00 0 [heap]
8c20b000-8d133000 rwxp 8c20b000 00:00 0
8d133000-8d136000 ---p 8d133000 00:00 0
8d136000-8d184000 rwxp 8d136000 00:00 0
8d184000-8d187000 ---p 8d184000 00:00 0
8d187000-8d1d5000 rwxp 8d187000 00:00 0
8d1d5000-8d1d8000 ---p 8d1d5000 00:00 0
8d1d8000-8d226000 rwxp 8d1d8000 00:00 0
8d226000-8d229000 ---p 8d226000 00:00 0
8d229000-8d277000 rwxp 8d229000 00:00 0
8d277000-8d27a000 ---p 8d277000 00:00 0
8d27a000-8d2c8000 rwxp 8d27a000 00:00 0
8d2c8000-8d2cb000 ---p 8d2c8000 00:00 0
8d2cb000-8d319000 rwxp 8d2cb000 00:00 0
8d319000-8d31c000 ---p 8d319000 00:00 0
8d31c000-8d36a000 rwxp 8d31c000 00:00 0
8d36a000-8d36d000 ---p 8d36a000 00:00 0
8d36d000-8d3bb000 rwxp 8d36d000 00:00 0
8d3bb000-8d3be000 ---p 8d3bb000 00:00 0
8d3be000-8d40c000 rwxp 8d3be000 00:00 0
8d40c000-8f40c000 rwxs d2000000 00:0e 16098 /dev/dri/card0
8f40c000-8f80c000 rwxs d1c00000 00:0e 16098 /dev/dri/card0
8f80c000-8fc0c000 rwxs d1800000 00:0e 16098 /dev/dri/card0
8fc0c000-8fe64000 rwxs 2a100000 00:0e 16098 /dev/dri/card0
8fe64000-900bc000 rwxs 2a100000 00:0e 16098 /dev/dri/card0
900bc000-902e9000 r-xp 00000000 08:05 5195361 /usr/lib/dri/i915_dri.so
902e9000-902f0000 r-xp 0022c000 08:05 5195361 /usr/lib/dri/i915_dri.so
902f0000-902ff000 rwxp 00233000 08:05 5195361 /usr/lib/dri/i915_dri.so
902ff000-9030a000 rwxp 902ff000 00:00 0
9030a000-9030d000 ---p 9030a000 00:00 0
9030d000-9035b000 rwxp 9030d000 00:00 0
9035b000-9035e000 ---p 9035b000 00:00 0
9035e000-903ac000 rwxp 9035e000 00:00 0
903ac000-903af000 ---p 903ac000 00:00 0
903af000-903fd000 rwxp 903af000 00:00 0
903fd000-90400000 ---p 903fd000 00:00 0
90400000-9044e000 rwxp 90400000 00:00 0
9044e000-90451000 ---p 9044e000 00:00 0
90451000-9049f000 rwxp 90451000 00:00 0
9049f000-904f5000 r-xp 00000000 08:05 5178883 /usr/lib/libGL.so.1.2
904f5000-904fa000 r-xp 00055000 08:05 5178883 /usr/lib/libGL.so.1.2
904fa000-904ff000 rwxp 0005a000 08:05 5178883 /usr/lib/libGL.so.1.2
904ff000-90500000 rwxp 904ff000 00:00 0
90500000-90600000 rwxp 90500000 00:00 0
90624000-90648000 r-xp 00000000 08:05 5179188 /usr/lib/libexpat.so.1.5.2
90648000-9064a000 r-xp 00023000 08:05 5179188 /usr/lib/libexpat.so.1.5.2
9064a000-9064b000 rwxp 00025000 08:05 5179188 /usr/lib/libexpat.so.1.5.2
9064b000-9066c000 r-xp 00000000 08:05 5719777
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libj3dcore-ogl.so
9066c000-9066d000 rwxp 00021000 08:05 5719777
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libj3dcore-ogl.so
9066d000-90670000 ---p 9066d000 00:00 0
90670000-906be000 rwxp 90670000 00:00 0
906be000-906c1000 r-xs 00000000 08:05 7160927
/var/cache/fontconfig/603b2eb47209ddb3c5269b217a306167-x86.cache-2
906c1000-906c7000 r-xs 00000000 08:05 7160627
/var/cache/fontconfig/945677eb7aeaf62f1d50efc3fb3ec7d8-x86.cache-2
906c7000-906c8000 r-xs 00000000 08:05 7160621
/var/cache/fontconfig/99e8ed0e538f840c565b6ed5dad60d56-x86.cache-2
906c8000-906cb000 r-xs 00000000 08:05 7160611
/var/cache/fontconfig/e383d7ea5fbe662a33d9b44caf393297-x86.cache-2
906cb000-906cc000 r-xs 00000000 08:05 7160609
/var/cache/fontconfig/fd9505950c048a77dc4b710eb6a628ed-x86.cache-2
906cc000-906cd000 r-xs 00000000 08:05 7160608
/var/cache/fontconfig/a2ab74764b07279e7c36ddb1d302cf26-x86.cache-2
906cd000-906ce000 r-xs 00000000 08:05 7160606
/var/cache/fontconfig/4c73fe0c47614734b17d736dbde7580a-x86.cache-2
906ce000-906d0000 r-xs 00000000 08:05 7160605
/var/cache/fontconfig/646addb8444faa74ee138aa00ab0b6a0-x86.cache-2
906d0000-906d3000 r-xs 00000000 08:05 7160604
/var/cache/fontconfig/a755afe4a08bf5b97852ceb7400b47bc-x86.cache-2
906d3000-906d6000 r-xs 00000000 08:05 7160603
/var/cache/fontconfig/6d41288fd70b0be22e8c3a91e032eec0-x86.cache-2
906d6000-906d9000 r-xs 00000000 08:05 7160602
/var/cache/fontconfig/de156ccd2eddbdc19d37a45b8b2aac9c-x86.cache-2
906d9000-906db000 r-xs 00000000 08:05 7160601
/var/cache/fontconfig/da1bd5ca8443ffe22927a23ce431d198-x86.cache-2
906db000-906e3000 r-xs 00000000 08:05 7160600
/var/cache/fontconfig/e3de0de479f42330eadf588a55fb5bf4-x86.cache-2
906e3000-906ee000 r-xs 00000000 08:05 7160599
/var/cache/fontconfig/0f34bcd4b6ee430af32735b75db7f02b-x86.cache-2
906ee000-906ef000 r-xs 00000000 08:05 7160598
/var/cache/fontconfig/4794a0821666d79190d59a36cb4f44b5-x86.cache-2
906ef000-906f1000 r-xs 00000000 08:05 7160702
/var/cache/fontconfig/2c5ba8142dffc8bf0377700342b8ca1a-x86.cache-2
906f1000-906f4000 r-xs 00000000 08:05 7160597
/var/cache/fontconfig/de9486f0b47a4d768a594cb4198cb1c6-x86.cache-2
906f4000-906fb000 r-xs 00000000 08:05 7160596
/var/cache/fontconfig/d52a8644073d54c13679302ca1180695-x86.cache-2
906fb000-90701000 r-xs 00000000 08:05 7160549
/var/cache/fontconfig/089dead882dea3570ffc31a9898cfb69-x86.cache-2
90701000-9070e000 r-xs 00000000 08:05 7160826
/var/cache/fontconfig/e13b20fdb08344e0e664864cc2ede53d-x86.cache-2
90712000-90719000 r-xp 00000000 08:05 5179146 /usr/lib/libdrm.so.2.3.1
90719000-9071a000 r-xp 00006000 08:05 5179146 /usr/lib/libdrm.so.2.3.1
9071a000-9071b000 rwxp 00007000 08:05 5179146 /usr/lib/libdrm.so.2.3.1
9071b000-9071d000 r-xp 00000000 08:05 5178944 /usr/lib/libXdamage.so.1.1.0
9071d000-9071e000 rwxp 00001000 08:05 5178944 /usr/lib/libXdamage.so.1.1.0
9071e000-90722000 r-xp 00000000 08:05 5178986 /usr/lib/libXxf86vm.so.1.0.0
90722000-90723000 r-xp 00003000 08:05 5178986 /usr/lib/libXxf86vm.so.1.0.0
90723000-90724000 rwxp 00004000 08:05 5178986 /usr/lib/libXxf86vm.so.1.0.0
90724000-90727000 ---p 90724000 00:00 0
90727000-90775000 rwxp 90727000 00:00 0
90775000-90778000 ---p 90775000 00:00 0
90778000-907c6000 rwxp 90778000 00:00 0
907c6000-907ca000 r-xp 00000000 08:05 5178952 /usr/lib/libXfixes.so.3.1.0
907ca000-907cb000 rwxp 00003000 08:05 5178952 /usr/lib/libXfixes.so.3.1.0
907cb000-907d3000 r-xp 00000000 08:05 5178972 /usr/lib/libXrender.so.1.3.0
907d3000-907d4000 r-xp 00007000 08:05 5178972 /usr/lib/libXrender.so.1.3.0
907d4000-907d5000 rwxp 00008000 08:05 5178972 /usr/lib/libXrender.so.1.3.0
907d5000-907dd000 r-xp 00000000 08:05 5178942 /usr/lib/libXcursor.so.1.0.2
907dd000-907de000 rwxp 00007000 08:05 5178942 /usr/lib/libXcursor.so.1.0.2
907ec000-907ee000 rwxs f89e9000 00:0e 16098 /dev/dri/card0
907ee000-907f1000 ---p 907ee000 00:00 0
907f1000-9083f000 rwxp 907f1000 00:00 0
9083f000-908be000 r-xp 00000000 08:05 5718747
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libfontmanager.so
908be000-908c8000 rwxp 0007e000 08:05 5718747
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libfontmanager.so
908c8000-908cd000 rwxp 908c8000 00:00 0
908cd000-908d1000 r-xp 00000000 08:05 5178946 /usr/lib/libXdmcp.so.6.0.0
908d1000-908d2000 rwxp 00003000 08:05 5178946 /usr/lib/libXdmcp.so.6.0.0
908d2000-908e9000 r-xp 00000000 08:05 5179879 /usr/lib/libxcb.so.1.0.0
908e9000-908ea000 r-xp 00016000 08:05 5179879 /usr/lib/libxcb.so.1.0.0
908ea000-908eb000 rwxp 00017000 08:05 5179879 /usr/lib/libxcb.so.1.0.0
908eb000-908ec000 r-xp 00000000 08:05 5179877 /usr/lib/libxcb-xlib.so.0.0.0
908ec000-908ed000 r-xp 00000000 08:05 5179877 /usr/lib/libxcb-xlib.so.0.0.0
908ed000-908ee000 rwxp 00001000 08:05 5179877 /usr/lib/libxcb-xlib.so.0.0.0
908ee000-908f6000 r-xp 00000000 08:05 5178958 /usr/lib/libXi.so.6.0.0
908f6000-908f7000 r-xp 00007000 08:05 5178958 /usr/lib/libXi.so.6.0.0
908f7000-908f8000 rwxp 00008000 08:05 5178958 /usr/lib/libXi.so.6.0.0
908f8000-909e3000 r-xp 00000000 08:05 5178117 /usr/lib/libX11.so.6.2.0
909e3000-909e4000 r-xp 000ea000 08:05 5178117 /usr/lib/libX11.so.6.2.0
909e4000-909e6000 rwxp 000eb000 08:05 5178117 /usr/lib/libX11.so.6.2.0
909e6000-909e7000 rwxp 909e6000 00:00 0
909e7000-909f4000 r-xp 00000000 08:05 5178950 /usr/lib/libXext.so.6.4.0
909f4000-909f6000 rwxp 0000c000 08:05 5178950 /usr/lib/libXext.so.6.4.0
909f6000-909f7000 r-xp 00000000 08:05 5718753
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libjawt.so
909f7000-909f8000 rwxp 00000000 08:05 5718753
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libjawt.so
909f8000-90a06000 r-xs 00000000 08:05 7160698
/var/cache/fontconfig/865f88548240fee46819705c6468c165-x86.cache-2
90a06000-90a49000 r-xp 00000000 08:05 5718742
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/xawt/libmawt.so
90a49000-90a4b000 rwxp 00042000 08:05 5718742
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/xawt/libmawt.so
90a4b000-90a4c000 rwxp 90a4b000 00:00 0
90a4c000-90ac7000 r-xp 00000000 08:05 5718739
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libawt.so
90ac7000-90ace000 rwxp 0007b000 08:05 5718739
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libawt.so
90ace000-90af2000 rwxp 90ace000 00:00 0
90af2000-90afe000 r-xs 002c7000 08:05 5719778
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/ext/j3dcore.jar
90afe000-90aff000 ---p 90afe000 00:00 0
90aff000-90b7f000 rwxp 90aff000 00:00 0
90b7f000-90b82000 ---p 90b7f000 00:00 0
90b82000-90c00000 rwxp 90b82000 00:00 0
90c00000-90d00000 rwxp 90c00000 00:00 0
90d01000-90d03000 r-xp 00000000 08:05 5178935 /usr/lib/libXau.so.6.0.0
90d03000-90d04000 rwxp 00001000 08:05 5178935 /usr/lib/libXau.so.6.0.0
90d04000-90d0b000 r-xs 00110000 08:05 5718772
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/resources.jar
90d0b000-90d19000 r-xs 00193000 08:05 5719779
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/ext/j3dutils.jar
90d19000-90d1c000 ---p 90d19000 00:00 0
90d1c000-90d6a000 rwxp 90d1c000 00:00 0
90d6a000-90d6d000 ---p 90d6a000 00:00 0
90d6d000-90deb000 rwxp 90d6d000 00:00 0
90deb000-90dee000 ---p 90deb000 00:00 0
90dee000-90e3c000 rwxp 90dee000 00:00 0
90e3c000-90e7b000 r-xp 00000000 08:05 5210982 /usr/lib/locale/en_GB.utf8/LC_CTYPE
90e7b000-90e7e000 ---p 90e7b000 00:00 0
90e7e000-90ecc000 rwxp 90e7e000 00:00 0
90ecc000-90ecf000 ---p 90ecc000 00:00 0
90ecf000-90f1d000 rwxp 90ecf000 00:00 0
90f1d000-90f1e000 ---p 90f1d000 00:00 0
90f1e000-90fd1000 rwxp 90f1e000 00:00 0
90fd1000-91161000 r-xs 02eed000 08:05 5718936
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/rt.jar
91161000-91162000 ---p 91161000 00:00 0
91162000-911e2000 rwxp 91162000 00:00 0
911e2000-911e3000 ---p 911e2000 00:00 0
911e3000-9126b000 rwxp 911e3000 00:00 0
9126b000-91283000 rwxp 9126b000 00:00 0
91283000-91291000 rwxp 91283000 00:00 0
91291000-91363000 rwxp 91291000 00:00 0
91363000-9136b000 rwxp 91363000 00:00 0
9136b000-91383000 rwxp 9136b000 00:00 0
91383000-91391000 rwxp 91383000 00:00 0
91391000-91463000 rwxp 91391000 00:00 0
91463000-91467000 rwxp 91463000 00:00 0
91467000-9147f000 rwxp 91467000 00:00 0
9147f000-92480000 rwxp 9147f000 00:00 0
92480000-95480000 rwxp 92480000 00:00 0
95480000-97080000 rwxp 95480000 00:00 0
97080000-b1480000 rwxp 97080000 00:00 0
b1480000-b1b80000 rwxp b1480000 00:00 0
b1b80000-b4c80000 rwxp b1b80000 00:00 0
b4c80000-b4c8b000 r-xs 0032a000 08:05 3834711
/home/mark/Desktop/j3d-examples/dist/j3d-examples.jar
b4c8b000-b4c94000 rwxp b4c8b000 00:00 0
b4c94000-b4d4b000 rwxp b4c94000 00:00 0
b4d4b000-b4f8b000 rwxp b4d4b000 00:00 0
b4f8b000-b7d4b000 rwxp b4f8b000 00:00 0
b7d4b000-b7d5a000 r-xp 00000000 08:05 5718724
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libzip.so
b7d5a000-b7d5c000 rwxp 0000e000 08:05 5718724
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libzip.so
b7d5c000-b7d7f000 r-xp 00000000 08:05 5718721
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libjava.so
b7d7f000-b7d81000 rwxp 00023000 08:05 5718721
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libjava.so
b7d81000-b7d8c000 r-xp 00000000 08:05 5718720
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libverify.so
b7d8c000-b7d8d000 rwxp 0000b000 08:05 5718720
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/libverify.so
b7d8d000-b7d97000 r-xp 00000000 08:05 4719433
/lib/tls/i686/cmov/libnss_files-2.8.90.so
b7d97000-b7d98000 r-xp 00009000 08:05 4719433
/lib/tls/i686/cmov/libnss_files-2.8.90.so
b7d98000-b7d99000 rwxp 0000a000 08:05 4719433
/lib/tls/i686/cmov/libnss_files-2.8.90.so
b7d99000-b7da2000 r-xp 00000000 08:05 4719435
/lib/tls/i686/cmov/libnss_nis-2.8.90.so
b7da2000-b7da3000 r-xp 00008000 08:05 4719435
/lib/tls/i686/cmov/libnss_nis-2.8.90.so
b7da3000-b7da4000 rwxp 00009000 08:05 4719435
/lib/tls/i686/cmov/libnss_nis-2.8.90.so
b7da4000-b7dab000 r-xp 00000000 08:05 4719431
/lib/tls/i686/cmov/libnss_compat-2.8.90.so
b7dab000-b7dac000 r-xp 00006000 08:05 4719431
/lib/tls/i686/cmov/libnss_compat-2.8.90.so
b7dac000-b7dad000 rwxp 00007000 08:05 4719431
/lib/tls/i686/cmov/libnss_compat-2.8.90.so
b7dad000-b7dc2000 r-xp 00000000 08:05 4719430 /lib/tls/i686/cmov/libnsl-2.8.90.so
b7dc2000-b7dc3000 r-xp 00014000 08:05 4719430 /lib/tls/i686/cmov/libnsl-2.8.90.so
b7dc3000-b7dc4000 rwxp 00015000 08:05 4719430 /lib/tls/i686/cmov/libnsl-2.8.90.so
b7dc4000-b7dc6000 rwxp b7dc4000 00:00 0
b7dc7000-b7dcb000 r-xp 00000000 08:05 5178978 /usr/lib/libXtst.so.6.1.0
b7dcb000-b7dcc000 rwxp 00003000 08:05 5178978 /usr/lib/libXtst.so.6.1.0
b7dcc000-b7dce000 r-xs 0004c000 08:05 5719780
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/ext/vecmath.jar
b7dce000-b7dd6000 rwxs 00000000 08:05 3047521 /tmp/hsperfdata_mark/26483
b7dd6000-b7ddd000 r-xp 00000000 08:05 4719440 /lib/tls/i686/cmov/librt-2.8.90.so
b7ddd000-b7dde000 r-xp 00007000 08:05 4719440 /lib/tls/i686/cmov/librt-2.8.90.so
b7dde000-b7ddf000 rwxp 00008000 08:05 4719440 /lib/tls/i686/cmov/librt-2.8.90.so
b7ddf000-b7de2000 ---p b7ddf000 00:00 0
b7de2000-b7e30000 rwxp b7de2000 00:00 0
b7e30000-b7e54000 r-xp 00000000 08:05 4719428 /lib/tls/i686/cmov/libm-2.8.90.so
b7e54000-b7e55000 r-xp 00023000 08:05 4719428 /lib/tls/i686/cmov/libm-2.8.90.so
b7e55000-b7e56000 rwxp 00024000 08:05 4719428 /lib/tls/i686/cmov/libm-2.8.90.so
b7e56000-b7e57000 rwxp b7e56000 00:00 0
b7e57000-b7faf000 r-xp 00000000 08:05 4719424 /lib/tls/i686/cmov/libc-2.8.90.so
b7faf000-b7fb1000 r-xp 00158000 08:05 4719424 /lib/tls/i686/cmov/libc-2.8.90.so
b7fb1000-b7fb2000 rwxp 0015a000 08:05 4719424 /lib/tls/i686/cmov/libc-2.8.90.so
b7fb2000-b7fb5000 rwxp b7fb2000 00:00 0
b7fb5000-b7fb7000 r-xp 00000000 08:05 4719427 /lib/tls/i686/cmov/libdl-2.8.90.so
b7fb7000-b7fb8000 r-xp 00001000 08:05 4719427 /lib/tls/i686/cmov/libdl-2.8.90.so
b7fb8000-b7fb9000 rwxp 00002000 08:05 4719427 /lib/tls/i686/cmov/libdl-2.8.90.so
b7fb9000-b7fc0000 r-xp 00000000 08:05 5718723
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/jli/libjli.so
b7fc0000-b7fc2000 rwxp 00006000 08:05 5718723
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/jli/libjli.so
b7fc2000-b7fc3000 rwxp b7fc2000 00:00 0
b7fc3000-b7fd8000 r-xp 00000000 08:05 4719438
/lib/tls/i686/cmov/libpthread-2.8.90.so
b7fd8000-b7fd9000 r-xp 00014000 08:05 4719438
/lib/tls/i686/cmov/libpthread-2.8.90.so
b7fd9000-b7fda000 rwxp 00015000 08:05 4719438
/lib/tls/i686/cmov/libpthread-2.8.90.so
b7fda000-b7fdc000 rwxp b7fda000 00:00 0
b7fdc000-b7fe3000 r-xs 00000000 08:05 5194753 /usr/lib/gconv/gconv-modules.cache
b7fe3000-b7fe9000 r-xp 00000000 08:05 5718709
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/native_threads/libhpi.so
b7fe9000-b7fea000 rwxp 00006000 08:05 5718709
/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/native_threads/libhpi.so
b7fea000-b7feb000 rwxp b7fea000 00:00 0
b7feb000-b7fec000 r-xp b7feb000 00:00 0
b7fec000-b7fee000 rwxp b7fec000 00:00 0
b7fee000-b8008000 r-xp 00000000 08:05 4702220 /lib/ld-2.8.90.so
b8008000-b8009000 r-xp b8008000 00:00 0 [vdso]
b8009000-b800a000 r-xp 0001a000 08:05 4702220 /lib/ld-2.8.90.so
b800a000-b800b000 rwxp 0001b000 08:05 4702220 /lib/ld-2.8.90.so
bfdf5000-bfe0a000 rwxp bffeb000 00:00 0 [stack]

VM Arguments:
java_command: org.jdesktop.j3d.examples.offscreen_canvas3d.OffScreenTest
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=/home/mark/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin/:/home/mark/android-sdk-linux_x86-1.0_r2/tools/
USERNAME=mark
LD_LIBRARY_PATH=/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/server:/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.10/jre/../lib/i386
SHELL=/bin/bash
DISPLAY=:0.0

Signal Handlers:
SIGSEGV: [libjvm.so+0x606f90], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGBUS: [libjvm.so+0x606f90], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGFPE: [libjvm.so+0x504690], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGPIPE: [libjvm.so+0x504690], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGXFSZ: [libjvm.so+0x504690], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGILL: [libjvm.so+0x504690], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x506b60], sa_mask[0]=0x00000000, sa_flags=0x10000004
SIGHUP: [libjvm.so+0x506900], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGINT: [libjvm.so+0x506900], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGTERM: [libjvm.so+0x506900], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGQUIT: [libjvm.so+0x506900], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004

--------------- S Y S T E M ---------------

OS:lenny/sid

uname:Linux 2.6.27-12-generic #1 SMP Thu Feb 5 09:26:35 UTC 2009 i686
libc:glibc 2.8.90 NPTL 2.8.90
rlimit: STACK 8192k, CORE 0k, NPROC 16310, NOFILE 1024, AS infinity
load average:0.43 0.30 0.33

CPU:total 2 (1 cores per cpu, 2 threads per core) family 6 model 12 stepping 2,
cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, ht

Memory: 4k page, physical 2063528k(181484k free), swap 1951856k(1951856k free)

vm_info: Java HotSpot(TM) Server VM (11.0-b15) for linux-x86 JRE (1.6.0_10-b33),
built on Sep 26 2008 01:05:20 by "java_re" with gcc 3.2.1-7a (J2SE release)

time: Sat Feb 28 09:06:56 2009
elapsed time: 4 seconds






[JAVA3D-609] Transparency fails under Color4b, works under Color4f Created: 15/Dec/08  Updated: 24/Feb/09  Resolved: 24/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: autophile Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Mac OS X
Platform: Macintosh


Issuezilla Id: 609

 Description   

When setting the color of a vertex, specifying Color4b will cause the vertex to
be black regardless of what color or alpha is set. Changing to Color4f works.
Here is demonstration code:

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.applet.Applet;
import java.awt.*;
import javax.media.j3d.*;
import javax.vecmath.*;

public class Hello extends Applet
{
public Hello() throws Exception

{ setLayout(new BorderLayout()); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas3D = new Canvas3D(config); add("Center", canvas3D); BranchGroup scene = createSceneGraph(); scene.compile(); SimpleUniverse univ = new SimpleUniverse(canvas3D); univ.getViewingPlatform().setNominalViewingTransform(); univ.addBranchGraph(scene); }

public BranchGroup createSceneGraph() throws Exception

{ BranchGroup root = new BranchGroup(); // A white background. Background bgd = new Background(1.0f, 1.0f, 1.0f); root.addChild(bgd); // This will spin the quad around TransformGroup spin = new TransformGroup(); spin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); root.addChild(spin); // define the quad: Point3d p1 = new Point3d(-0.5, -0.5, 0); Point3d p2 = new Point3d(0.5, -0.5, 0); Point3d p3 = new Point3d(0.5, 0.5, 0); Point3d p4 = new Point3d(-0.5, 0.5, 0); // colors Color4b c = new Color4b((byte)255, (byte)0, (byte)0, (byte)50); //Color4f c = new Color4f(new Color(255, 0, 0, 50)); QuadArray quads = new QuadArray(4, GeometryArray.COORDINATES | GeometryArray.COLOR_4); quads.setCoordinate(0, p1); quads.setCoordinate(1, p2); quads.setCoordinate(2, p3); quads.setCoordinate(3, p4); quads.setColor(0, c); quads.setColor(1, c); quads.setColor(2, c); quads.setColor(3, c); // Not sure if I need this. Doesn't seem to make a difference. Appearance appearance = new Appearance(); TransparencyAttributes trans = new TransparencyAttributes(); trans.setTransparencyMode(TransparencyAttributes.BLENDED); appearance.setTransparencyAttributes(trans); // Create the shape... Shape3D shape = new Shape3D(); shape.setGeometry(quads); shape.setAppearance(appearance); spin.addChild(shape); Alpha rotationAlpha = new Alpha(-1, 4000); RotationInterpolator rotator = new RotationInterpolator(rotationAlpha, spin); BoundingSphere bounds = new BoundingSphere(); rotator.setSchedulingBounds(bounds); spin.addChild(rotator); return root; }

public static void main(String[] args) throws Exception

{ Frame frame = new MainFrame(new Hello(), 256, 256); }

}



 Comments   
Comment by interactivemesh [ 17/Dec/08 ]

GeometryArrayRetained.setColor(int index, Color4b color) failed.

These lines

this.vertexData[offset] = (color.x * 0xff) * ByteToFloatScale;
this.vertexData[offset+1] = (color.y * 0xff) * ByteToFloatScale;
this.vertexData[offset+2] = (color.z * 0xff) * ByteToFloatScale;

are to be replaced by

this.vertexData[offset] = (color.x & 0xff) * ByteToFloatScale;
this.vertexData[offset+1] = (color.y & 0xff) * ByteToFloatScale;
this.vertexData[offset+2] = (color.z & 0xff) * ByteToFloatScale;

All the other 'setColor/setColors'-methods should work well.

Comment by aces [ 17/Dec/08 ]

Thanks for debug work, InteractiveMesh.
Solution commited.

Aces

Comment by aces [ 24/Feb/09 ]

also committed to dev-1_6





[JAVA3D-607] Fixes state bleed from TexCoordGeneration onto Raster Created: 20/Nov/08  Updated: 24/Feb/09  Resolved: 24/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Task Priority: Major
Reporter: lamer77 Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 607

 Description   

This patch will fix the cases where shapes with texture coordinate generation
bleed onto Rasters. Makeing the rasters look garbled. This will fix issue 521:
Interplay between Texture3D and Raster.

The fix will call resetTexCoordGeneration in updateTextureForRaster. Should be
safe to commit.

Here is the Diff Patch:

  1. This patch file was generated by NetBeans IDE
  2. This patch can be applied using context Tools: Apply Diff Patch action on
    respective folder.
  3. It uses platform neutral UTF-8 encoding.
  4. Above lines and this line are ignored by the patching process.
    Index: j3d-core/src/classes/share/javax/media/j3d/Canvas3D.java
      • j3d-core/src/classes/share/javax/media/j3d/Canvas3D.java Base (1.45)
        +++ j3d-core/src/classes/share/javax/media/j3d/Canvas3D.java Locally Modified
        (Based On 1.45)
        @@ -4523,6 +4523,7 @@
        setNumActiveTexUnit(1);

texture.updateNative(this);
+ resetTexCoordGeneration(ctx);
resetTextureAttributes(ctx);

for(int i=1; i < maxTextureUnits; i++) {



 Comments   
Comment by aces [ 20/Nov/08 ]

Thanks for this patch, Tom.

Did you check if Texture Coordinates Generation where restored after raster
operation ?

Comment by lamer77 [ 20/Nov/08 ]

As far as I can tell the Texture Coordinates Generation will be restored when
the next object is drawn.

I call resetTexCoordGeneration from Canvas3D.updateTextureForRaster. This method
also sets the TEXTUREBIN_DIRTY and TEXTUREATTRIBUTES_DIRTY flags on the
Canvas3D.canvasDirty member.

In TextureUnitStateRetained.updateNative and TextureBin.updateAttributes the
canvasDirty flag is checked and the Texture Coordinates Generation is enabled if
needed.

Comment by aces [ 24/Feb/09 ]

Patch applied to Dev-1_6

Comment by aces [ 24/Feb/09 ]
      • Issue 521 has been marked as a duplicate of this issue. ***




[JAVA3D-521] Interplay between Texture3D and Raster Created: 07/Sep/07  Updated: 24/Feb/09  Resolved: 24/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: 1.6.0

Type: Bug Priority: Minor
Reporter: nvaidya Assignee: java3d-issues
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: All


Attachments: Java Archive File rastex3d.jar    
Issuezilla Id: 521

 Description   

Text labels created with Java 3D Raster do not display correctly in conjunction
with Texture3D.

Attached test case illustrates the issue. To run do:

1. deflate rastex3d.jar
2. javac *.java
3. java Texture3DRaster

As set-up, both the Texture3D and Raster objects will display onscreen; the
Raster label, however, shows up garbled.

Inside Texture3D.java, you could prevent the Texture3D object from getting
displayed to verify that the Raster label displays correctly on its own. Please
trace the comment "Chien Note" to be able to do this. Without the Texture3D
object, the Raster label displays correctly.

On pressing the flush button, the Texture3D object will get flushed from the
scene but the Raster object which is under the ViewPlatform will still display.
Even after the Texture3D object is flushed, the Raster label still displays garbled.

You'll also notice that pressing the Flush button brings down the memory down to
a nominal level - that is there is no leak due to a Texture3D in this
particular case.



 Comments   
Comment by nvaidya [ 07/Sep/07 ]

Created an attachment (id=310)
Testcase to demo issue

Comment by kcr [ 08/Oct/07 ]

Set target milestone to 1.6.0

Comment by kcr [ 08/Oct/07 ]

Assign to jada to evaluate for 1.5.2

Comment by kcr [ 29/Jan/08 ]

Set target milestone to 1.6.0

Comment by kcr [ 31/Jan/08 ]

Mark issue as unassigned.

Comment by aces [ 24/Feb/09 ]

Duplicated of Issue 607.
Fixed.

      • This issue has been marked as a duplicate of 607 ***




[JAVA3D-604] javax/media/j3d/Material colors not being recognized during rendering Created: 30/Oct/08  Updated: 24/Feb/09  Resolved: 24/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: myopic4141 Assignee: java3d-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Mac OS X
Platform: Macintosh


Issuezilla Id: 604

 Description   

After getting the geometry corrected, I ran the program and noticed that the
object was only rendering as white. I had ambient, diffuse, and emissive set to
white with specular set to (float)(255./255.), (float)(3./255.),
(float)(119./255.) and shininess set to 64. I thought the ambient, defuse, and
emissive were interfering with specular and set them to black. The result was a
black object with occasional displays of the proper color. I then set all the
elements to the desired color and still had white or black with very occasional
surfaces displaying the proper color (4 out of 36). I then reran another
program with a different geometry that had worked and it too displayed only a
black or white image. What was different than the previous run of the other
program was that I up graded to the released 1.5.2 from the pre-released 1.5.2
to see if that corrected my geometry problem. To verify that this might be the
root of the problem, I created a j3d-old-3 folder and transferred j3dcore,
j3dutil and vecmath jars to the folder. I then copied the pre-released 1.5.2
jars from the j3d-old-2 where I had stored them to the Extensions folder.
Rerunning both programs displayed the proper coloring.



 Comments   
Comment by aces [ 30/Oct/08 ]

Please, use the forum to solve simple questions.
You will have quick replay for several experienced developers.

http://forums.java.net/jive/forum.jspa?forumID=70&start=0

Comment by aces [ 24/Feb/09 ]

Invalid.
This is application issue.





[JAVA3D-601] BoundingBox(Bounds[]) calculates wrong BoundingBox if first element is empty Created: 21/Oct/08  Updated: 24/Feb/09  Resolved: 24/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: lamer77 Assignee: java3d-issues
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 601

 Description   

If the first element in the array of Bounds sent to the BoundingBox(Bounds[]) is
empty the bounds will wrongly include Lower(1, 1, 1), Upper(-1,-1,-1) in the
calculation.

Test case:

import javax.media.j3d.BoundingBox;
import javax.vecmath.Point3d;

public class BoundingBoxBug {
public static void main(final String[] args) {
BoundingBox empty = new BoundingBox(new Point3d(1, 1, 1), new
Point3d(-1, -1, -1));
BoundingBox bbox = new BoundingBox(new Point3d(20, 20, 20), new
Point3d(21, 21, 21));
BoundingBox[] boxes = new BoundingBox[]

{empty, bbox}

;
System.out.println(new BoundingBox(boxes));
}
}

Prints out:
Bounding box: Lower=1.0 1.0 1.0 Upper=21.0 21.0 21.0

It should be:
Bounding box: Lower=20.0 20.0 20.0 Upper=21.0 21.0 21.0

I will submit an official fix for this bug. (line 200 should be: "while(
(i<bounds.length) && ((bounds[i]==null) || bounds[i].boundsIsEmpty)) {")



 Comments   
Comment by aces [ 24/Feb/09 ]

Fixed. Duplicate of issue 602. Closing

      • This issue has been marked as a duplicate of 602 ***




[JAVA3D-602] Patch for Issue 601: BoundingBox(Bounds[]) calculates wrong BoundingBox if first element is empty Created: 21/Oct/08  Updated: 24/Feb/09  Resolved: 24/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Task Priority: Major
Reporter: lamer77 Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File BoundingBox.patch    
Issuezilla Id: 602

 Description   

In the BoundingBox(Bounds[]) constructor, line 200, right below the comment "//
find first non empty bounds object", it should be:

"while( (i<bounds.length) && ((bounds[i]==null) || bounds[i].boundsIsEmpty)) {"

instead of

"while( bounds[i] == null && i < bounds.length) {"



 Comments   
Comment by lamer77 [ 20/Nov/08 ]

Created an attachment (id=374)
A Diff Patch

Comment by aces [ 20/Nov/08 ]

Thanks for the patch

Please commit it to current development branch

Comment by lamer77 [ 20/Nov/08 ]

I wish I could. As far as I can tell I don't have commit rights. Get the
following error when trying to commit:
User lamer77 doesn't have <VersionControl - Modify> access to project j3d-core

Is there anyone that can either give me modify rights, or commit the patch for me?

Comment by aces [ 20/Nov/08 ]

You shouldn't have problems to commit.
I'll commit it for you.

Comment by aces [ 24/Feb/09 ]

Patch commited.

Comment by aces [ 24/Feb/09 ]
      • Issue 601 has been marked as a duplicate of this issue. ***




[JAVA3D-613] Text2D fails to update text Created: 21/Feb/09  Updated: 22/Feb/09  Resolved: 22/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: aces Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 613

 Description   

Text2D fails to update text in live/compiled nodes, because Appearance was no
capability bits to allow texture change.

While debugging this issue, I've found that some long text can generate very
large texture, much large the today hw capaility , as 16384 pixels wide.
To fix it, Text2D will scale down the image to maximum dimension of 2048 pixels,
supported virtually by all current 3D hardware.



 Comments   
Comment by aces [ 21/Feb/09 ]

accepted issue.

Comment by aces [ 22/Feb/09 ]

Fix Committed to head





[JAVA3D-612] Text2D setRectangleScaleFactor alters RenderingAttributes Created: 17/Jan/09  Updated: 22/Feb/09  Resolved: 22/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.3.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: bpt Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 612

 Description   

Text2D setRectangleScaleFactor causes the RenderingAttributes to be overridden
(set to null I think). I was trying to draw text labels on a 3D model with
depth buffer disabled, but wasn't working until I called setRectangleScaleFactor
before settng the RenderingAttributes. Calling it after resulted in no change
from the default.

Working code
Text2D t2d = new Text2D(name, new Color3f(1.0f, 1.0f, 1.0f), "Arial", 10,
java.awt.Font.BOLD);
t2d.setRectangleScaleFactor(1.0f);
//Set various capability bits on t2d, not shown
Appearance t2dapp = t2d.getAppearance();
//Set various capability bits on t2dapp, not shown
RenderingAttributes ra = new RenderingAttributes();
//Set various capability bits on ra, not shown
ra.setDepthTestFunction(RenderingAttributes.ALWAYS);
ra.setDepthBufferEnable(false);
t2dapp.setRenderingAttributes(ra);
// Then add it to the scene graph

Not working code
Text2D t2d = new Text2D(name, new Color3f(1.0f, 1.0f, 1.0f), "Arial", 10,
java.awt.Font.BOLD);
//Set various capability bits on t2d, not shown
Appearance t2dapp = t2d.getAppearance();
//Set various capability bits on t2dapp, not shown
RenderingAttributes ra = new RenderingAttributes();
//Set various capability bits on ra, not shown
ra.setDepthTestFunction(RenderingAttributes.ALWAYS);
ra.setDepthBufferEnable(false);
t2dapp.setRenderingAttributes(ra);
t2d.setRectangleScaleFactor(1.0f);
// Then add it to the scene graph



 Comments   
Comment by aces [ 18/Feb/09 ]

This happens because setRectangleScaleFactor() fully reset Text2D, including
Appearance

Comment by aces [ 22/Feb/09 ]

Fix committed to Head





[JAVA3D-614] Box constructor fails to create multi texture units Created: 21/Feb/09  Updated: 22/Feb/09  Resolved: 22/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: aces Assignee: aces
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 614

 Description   

Box class fails to create multiple texture units.
Fix is quite simple, just a missing "this." to constructor



 Comments   
Comment by aces [ 22/Feb/09 ]

Fix committed to Head





[JAVA3D-615] Wireframe quad is very slow in D3D pipeline Created: 21/Feb/09  Updated: 21/Feb/09

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Improvement Priority: Major
Reporter: aces Assignee: aces
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 615

 Description   

In D3D pipeline, wire frame quads are designed line by line using drawPrimitive,
one by one.
It can fixed by performing it as batch, sending lines in groups of hundreds. As
documented in MSDN, batch improves performace by reducing kernel calls, and
optimal size is around 800 to 1000.






[JAVA3D-610] Java3D install on Vista-64bit machine Created: 14/Jan/09  Updated: 01/Feb/09  Resolved: 01/Feb/09

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.1
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: striker2010 Assignee: java3d-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 610

 Description   

Hello,

Attempting to run an application MZMine 2 (http://mzmine.sourceforge.net/) that
is capable of using Java3d. I can get the 3D component of the app to work on a
32-bit system with 2GB of RAM. I cannot however get it to run on the following:

System configurations:
OS/RAM: Vista 64-bit with 16 GB RAM (Dell Precision T7400)
Processors: Intel Xeon(R) X5482@3.2 Ghz 3.19 Ghz (2 processors)
Video Card: NVIDEA Quadro FX 3700 - (driver version 7.15.11.6947)

The following are listed as being installed on this machine:
Java SE Development Kit 6 Update 10 (64-bit)
Java 6 Update 11 (64-bit)
Java 3D 1.5.1 (x64)
Java 3D 1.5.1
Java 3D 1.5.2
Java 6 Update 11
Java 6 Update 7

Can see that JRE is installed correctly as I can see the test page here
(http://www.java.com/en/download/help/testvm.xml)

error text from within MZMine 2:
[10:31:30|FINEST|ThreeDVisualizer]: Opening a new 3D visualizer setup dialog
Exception in thread "AWT-EventQueue-0" java.lang.NOClassDefFoundError:
javax/media/j3d/GeometryArray
at
net.sf.mzmine.modules.visualization.threed.ThreeDVisualizerWindow.<init><ThreeDV
isualizerWindow.java:109>
at
net.sf.mzmine.modules.visualization.thread.ThreeDVisualizer.actionPerformed
{ThreeDVisualizer.java:101>

error text from within Java Console:
Jan 12, 2009 10:51:42 AM javax.media.j3d.NativePipeline getSupportedOglVendor
SEVERE: java.lang.UnsatisfiedLinkError: no j3dcore-ogl-chk in java.library.path
java.lang.UnsatisfiedLinkError: no j3dcore-d3d in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
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.Alpha.<clinit>(Alpha.java:1024)
at QI.<init>(QI.java:21)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0
(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance
(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance
(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown
Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run
(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.UnsatisfiedLinkError: no j3dcore-d3d in java.library.path

I have read on-line that the problem is with the java3d path -I have edited the
autoexec.bat to include:

set PATH=%PATH%;.;c:\program files (x86)\java\java3d\jre1.6.0_07\bin
SET CLASSPATH=.

Any suggestions?

Thanks,

Robb



 Comments   
Comment by aces [ 14/Jan/09 ]

At console, type
java -version
to check out what version of Java JRE is available on PATH.

Make sure your application is using the correct JRE, with Java3D installed.
On Vista 64, you can choose to use a JRE for 32bits or a JRE for 64 bits, as
long they had correct Java3D installed.

Note :
On Vista 64, JRE 32 bits are placed at C:\Program Files(x86)\Java\
and JRE 32 bits are placed at C:\Program Files\Java

Comment by aces [ 19/Jan/09 ]

Sorry, there is a typo on my last comments.

The correct is :

On Vista 64,
the JRE 32 bits are placed at C:\Program Files(x86)\Java\
and JRE 64 BITS are placed at C:\Program Files\Java

Comment by aces [ 01/Feb/09 ]

On Windows 64 OSes(Vista 64, Windows 7 64, XP 64, etc) is possible run Java
using the JRE 64 bits as well the JRE 32 bits, using the WoW layer - Windows on
Window feature.

To run Java3D in 64 bits in one of above platforms, user must install the Java3D
AMD64 runtime for Windows platform in default folder for JRE 64bits:
C:\Program Files\Java

As user may have others JRE installed, is recommended that use full path to
java.exe / javaw.exe.
Example :

"C:\Program Files\Java\jre2\bin\java.exe" -showversion -cp myJar.jar MyMainClass

The -showversion jvm flag is optional, and used to display the version of
running JVM.

To launch the JVM 32 bits on Windows 64bits, user must note that the JVM 32 bits
is placed at following folder:
C:\Program Files(x86)\Java\

To launch Java3D using JVM 32bits on Vista 64, user must install the Java3D
runtime for i586 use the following example:

"C:\Program Files(x86)\Java\jre2\bin\java.exe" -showversion -cp myJar.jar
MyMainClass

Java3D binary build for all platforms are available at
https://java3d.dev.java.net/binary-builds.html

Please note that Java3D for AMD64 will run only on 64bits OS,as Vista 64.

As above tips solved the problem pointed by Striker2010, I'll close this Issue
and put above text available in Java3D Wiki.

Comment by aces [ 01/Feb/09 ]

Wiki link for this issue:

http://wiki.java.net/bin/view/Javadesktop/Java3DInstallation#Running_Java3D_on_Windows_64_Pla





[JAVA3D-611] Texture file is too large for hardware : message not that clear Created: 15/Jan/09  Updated: 15/Jan/09

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: current
Fix Version/s: not determined

Type: Improvement Priority: Major
Reporter: tmilard Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 611

 Description   

See issue Thread
http://forums.java.net/jive/thread.jspa?messageID=326232

Just a small issue for java3d; An improvement of the exception message.

A) What about :
If you have theses lines, and use a texture greater than would the client
machine harware Graphic card can support.

TextureLoader tl = new TextureLoader("Tex4096.bmp","RGB",canvas);
texture = tl.getTexture();
texture.setMipMapMode(Texture2D.MULTI_LEVEL_MIPMAP);

B) Exception Message is heuuuuuuu....mipmaping my head ...
==> You get this :
Exception in thread "main" java.lang.IllegalArgumentException: Texture: mipmap
image not set at level2

C) Simple message with info would be ... just better
==> I think this error doesn't happen often. so it is perhgaps difficult to
automatly think "Of course this image is too large". So the message should I
think perhaps be clearer for not-smart people like me .. or most of us out there.
What about something like this :
"java.lang.IllegalArgumentException: Texture: mipmap image is perhaps too big
for the hardware GPU. On this Machine it is limited to : 2048X2048."
(note :the value is 20048x20048 is not hardware coded !)

Thanks .
Thierry






[JAVA3D-606] Optimize NodeComponentRetained's users field Created: 05/Nov/08  Updated: 09/Nov/08

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Improvement Priority: Major
Reporter: paasiala Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 606

 Description   

This issue was first discussed here:
http://forums.java.net/jive/thread.jspa?messageID=314936

A second performance issue related to removing elements from ArrayLists is in
NodeComponentRetained. The users field is an ArrayList. I have a case where the
size of that list is over 13000. The actual instance of the class in that case
being PolygonAttributesRetained.



 Comments   
Comment by paasiala [ 09/Nov/08 ]

Marked as enhancement.





[JAVA3D-605] Optimize RenderBin's lockGeometryList Created: 05/Nov/08  Updated: 05/Nov/08

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Improvement Priority: Major
Reporter: paasiala Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 605

 Description   

I first brought this up in http://forums.java.net/jive/thread.jspa?
messageID=315196&#315196

In RenderBin there's a field called lockGeometryList which is an ArrayList. In
large scenes the rendering sometimes stops for seconds when elements are removed
from that list. I made the field a Collection and used there HashSet instead of
ArrayList. Rendering does not stop with that solution.






[JAVA3D-599] QuadArray with textcoord sets and maps fails to restore from saved scenegraph Created: 08/Oct/08  Updated: 30/Oct/08  Resolved: 30/Oct/08

Status: Resolved
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: mcneillk Assignee: java3d-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 599

 Description   

Class com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d.QuadArrayState.java
neglects to instantiate a QuadArray with the complete set restored fields.

TriangleArrayState.java is correct. Bug is fixed by copying the createNode()
methods to QuadArrayState.java:

I would be happy to check this fix into CVS.

BEFORE:

public SceneGraphObject createNode( Class j3dClass ) {
return super.createNode( j3dClass, new Class[]

{ Integer.TYPE, Integer.TYPE }

,
new Object[]

{ new Integer( vertexCount ), new Integer( vertexFormat ) }

);
}

protected javax.media.j3d.SceneGraphObject createNode()

{ return new QuadArray( vertexCount, vertexFormat ); }

==================================================
AFTER:
public SceneGraphObject createNode( Class j3dClass ) {
return createNode( j3dClass, new Class[]

{ Integer.TYPE, Integer.TYPE, Integer.TYPE, texCoordSetMap.getClass() }

,
new Object[]

{ new Integer( vertexCount ), new Integer( vertexFormat ), new Integer( texCoordSetCount ), texCoordSetMap }

);
}

protected javax.media.j3d.SceneGraphObject createNode()

{ return new QuadArray(vertexCount, vertexFormat, texCoordSetCount, texCoordSetMap ); }

 Comments   
Comment by mcneillk [ 08/Oct/08 ]

Simple fix is tested and ready.

Comment by aces [ 09/Oct/08 ]

Hi Ken

Allow some time to evaluate before commit it.

A.

Comment by aces [ 22/Oct/08 ]

Hi Ken,
Thanks for you fix.
Please commit your fix to current development branch.

Alessandro (Aces)

Comment by mcneillk [ 30/Oct/08 ]

Integrated as per code, below.





[JAVA3D-603] Out of bounds exception in javax.media.j3d.GeometryArrayRetained.setNormals Created: 29/Oct/08  Updated: 30/Oct/08

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: myopic4141 Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Mac OS X
Platform: Macintosh


Issuezilla Id: 603

 Description   

I get the following exception:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 120
at javax.media.j3d.GeometryArrayRetained.setNormals(GeometryArrayRetained.java:4557)
at javax.media.j3d.GeometryArray.setNormals(GeometryArray.java:1882)
at DataFlowSystem.BitShape.BuildBit(BitShape.java:179)
at DataFlowSystem.BitShape.<init>(BitShape.java:27)
at DataFlowSystem.BitTest.CreateSceneGraph(BitShape.java:233)
at DataFlowSystem.BitTest.<init>(BitShape.java:220)
at DataFlowSystem.BitTest.main(BitShape.java:321)

from the following java code:

private final double RADIUS = 1.0f;
private final double PIO2 = Math.PI/2.0;
private final double PIO3 = Math.PI/3.0;
private final double PIO6 = Math.PI/6.0;

private Shape3D BuildBit(boolean onIn)
{
Point3f vertices[] =

{new Point3f((float)(RADIUS*Math.cos(0.0*PIO3)*Math.cos(-PIO2)), (float)(RADIUS*Math.sin(0.0*PIO3)*Math.cos(-PIO2)), (float)(RADIUS*Math.sin(-PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+1.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(PIO6+1.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(-PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+2.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(PIO6+2.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(-PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+3.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(PIO6+3.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(-PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+4.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(PIO6+4.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(-PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+5.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(PIO6+5.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(-PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+6.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(PIO6+6.0*PIO3)*Math.cos(-PIO3)), (float)(RADIUS*Math.sin(-PIO3))), new Point3f((float)(RADIUS*Math.cos(1.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(1.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(0.0))), new Point3f((float)(RADIUS*Math.cos(2.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(2.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(0.0))), new Point3f((float)(RADIUS*Math.cos(3.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(3.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(0.0))), new Point3f((float)(RADIUS*Math.cos(4.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(4.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(0.0))), new Point3f((float)(RADIUS*Math.cos(5.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(5.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(0.0))), new Point3f((float)(RADIUS*Math.cos(6.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(6.0*PIO3)*Math.cos(0.0)), (float)(RADIUS*Math.sin(0.0))), new Point3f((float)(RADIUS*Math.cos(PIO6+1.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO6+1.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+2.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO6+2.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+3.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO6+3.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+4.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO6+4.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+5.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO6+5.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+6.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO6+6.0*PIO3)*Math.cos(PIO3)), (float)(RADIUS*Math.sin(PIO3))), new Point3f((float)(RADIUS*Math.cos(PIO6+0.0*PIO3)*Math.cos(-PIO2)), (float)(RADIUS*Math.sin(PIO6+0.0*PIO3)*Math.cos(-PIO2)), (float)(RADIUS*Math.sin(PIO3)))}

;
int pIndices[] =

{// Bottom 2, 1, 0, 3, 2, 0, 4, 3, 0, 5, 4, 0, 6, 5, 0, 1, 6, 0, // Lower tier 7, 12, 1, 7, 1, 2, 7, 2, 8, 3, 8, 2, 3, 9, 8, 3, 4, 9, 10, 9, 4, 10, 4, 5, 10, 5, 11, 6, 11, 5, 6, 12, 11, 6, 1, 12, // Upper tier 7, 13, 12, 7, 14, 13, 7, 8, 14, 15, 14, 8, 15, 8, 9, 15, 9, 16, 10, 16, 9, 10, 17, 16, 10, 11, 17, 18, 17, 11, 18, 11, 12, 18, 12, 13 /*, // Top 19, 13, 14, 19, 14, 15, 19, 15, 16, 19, 16, 17, 19, 17, 18, 19, 18, 13 */}

;
Vector3f normals[] = new Vector3f[pIndices.length/3];
int nIndices[] = new int[pIndices.length];
for(byte nIndex=0; nIndex<normals.length; nIndex++)

{ byte pnBI = (byte)(3*nIndex); Vector3f a = new Vector3f(vertices[pIndices[pnBI+1]].x-vertices[pIndices[pnBI]].x, vertices[pIndices[pnBI+1]].y-vertices[pIndices[pnBI]].y, vertices[pIndices[pnBI+1]].z-vertices[pIndices[pnBI]].z); Vector3f b = new Vector3f(vertices[pIndices[pnBI+2]].x-vertices[pIndices[pnBI]].x, vertices[pIndices[pnBI+2]].y-vertices[pIndices[pnBI]].y, vertices[pIndices[pnBI+2]].z-vertices[pIndices[pnBI]].z); normals[nIndex] = new Vector3f(); normals[nIndex].cross(a, b); nIndices[pnBI] = nIndex; nIndices[pnBI+1] = nIndex; nIndices[pnBI+2] = nIndex; } System.out.println("Vertices: "vertices.length"\nNormals: "+normals.length); System.out.println("Vertices:"); for(byte vIndex=0; vIndex<vertices.length; vIndex++) {System.out.println(" "+vertices[vIndex].toString());}

System.out.println("Normals:");
for(byte nIndex=0; nIndex<normals.length; nIndex++)

{System.out.println(" "+normals[nIndex].toString());}

System.out.println("Surfaces:");
for(byte sIndex=0; sIndex<pIndices.length/3; sIndex++)
{
byte pnBaseIndex = (byte)(3*sIndex);
System.out.println(" Surface "sIndex":"+
"\n Corner Points:"+
"\n "vertices[pIndices[pnBaseIndex]].toString()
"\n "vertices[pIndices[pnBaseIndex+1]].toString()
"\n "vertices[pIndices[pnBaseIndex+2]].toString()
"\n Assigned Normal Vectors:"+
"\n "normals[nIndices[pnBaseIndex]].toString()
"\n "normals[nIndices[pnBaseIndex+1]].toString()
"\n "+normals[nIndices[pnBaseIndex+2]].toString());
}
IndexedTriangleArray bitITA = new IndexedTriangleArray(vertices.length,
IndexedTriangleArray.COORDINATES|
IndexedTriangleArray.NORMALS,
pIndices.length);
bitITA.setCoordinates(0, vertices);
bitITA.setNormals(0, normals); // ***
DataFlowSystem.BitShape.BuildBit(BitShape.java:179) ***
bitITA.setCoordinateIndices(0, pIndices);
bitITA.setNormalIndices(0, nIndices);
Appearance bitApp = new Appearance();
Material bitMat = new Material();
bitMat.setAmbientColor(new Color3f(Color.WHITE));
bitMat.setDiffuseColor(new Color3f(Color.WHITE));
if(onIn)
{
bitMat.setSpecularColor(new Color3f(Color.WHITE));
bitMat.setEmissiveColor((float)(255./255.), (float)(3./255.), (float)(119./255.));
bitMat.setShininess(1.0f);
}
else
{
bitMat.setSpecularColor((float)(245./255.), (float)(255./255.), (float)(3./255));
bitMat.setEmissiveColor(new Color3f(Color.WHITE));
bitMat.setShininess(64.0f);
}
bitApp.setMaterial(bitMat);
return new Shape3D(bitITA, bitApp);
}

The following System.out.print code shows the surfaces and normals generated for
the surfaces by the code:

Vertices: 20
Normals: 30
Vertices:
(6.123234E-17, 0.0, -0.8660254)
(3.061617E-17, 0.5, -0.8660254)
(-0.4330127, 0.25, -0.8660254)
(-0.4330127, -0.25, -0.8660254)
(-9.184851E-17, -0.5, -0.8660254)
(0.4330127, -0.25, -0.8660254)
(0.4330127, 0.25, -0.8660254)
(0.5, 0.8660254, 0.0)
(-0.5, 0.8660254, 0.0)
(-1.0, 1.2246469E-16, 0.0)
(-0.5, -0.8660254, 0.0)
(0.5, -0.8660254, 0.0)
(1.0, -2.4492937E-16, 0.0)
(3.061617E-17, 0.5, 0.8660254)
(-0.4330127, 0.25, 0.8660254)
(-0.4330127, -0.25, 0.8660254)
(-9.184851E-17, -0.5, 0.8660254)
(0.4330127, -0.25, 0.8660254)
(0.4330127, 0.25, 0.8660254)
(5.3028762E-17, 3.061617E-17, 0.8660254)
Normals:
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
(-0.0, 0.0, -0.21650635)
(0.0, -0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
(0.75, 0.4330127, -0.6160254)
(-0.21650636, 0.37500003, -0.033493638)
(0.0, 0.8660254, -0.6160254)
(-0.4330127, 0.0, -0.033493653)
(-0.75, 0.43301266, -0.6160254)
(-0.21650635, -0.375, -0.033493645)
(-0.75, -0.4330127, -0.6160254)
(0.21650636, -0.37500003, -0.033493638)
(0.0, -0.8660254, -0.6160254)
(0.4330127, 0.0, -0.033493653)
(0.75, -0.43301266, -0.6160254)
(0.21650635, 0.375, -0.033493645)
(0.75, 0.4330127, 0.6160254)
(-0.21650636, 0.37500003, 0.033493638)
(0.0, 0.8660254, 0.6160254)
(-0.4330127, 0.0, 0.033493653)
(-0.75, 0.43301266, 0.6160254)
(-0.21650635, -0.375, 0.033493645)
(-0.75, -0.4330127, 0.6160254)
(0.21650636, -0.37500003, 0.033493638)
(0.0, -0.8660254, 0.6160254)
(0.4330127, 0.0, 0.033493653)
(0.75, -0.43301266, 0.6160254)
(0.21650635, 0.375, 0.033493645)
Surfaces:
Surface 0:
Corner Points:
(-0.4330127, 0.25, -0.8660254)
(3.061617E-17, 0.5, -0.8660254)
(6.123234E-17, 0.0, -0.8660254)
Assigned Normal Vectors:
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
Surface 1:
Corner Points:
(-0.4330127, -0.25, -0.8660254)
(-0.4330127, 0.25, -0.8660254)
(6.123234E-17, 0.0, -0.8660254)
Assigned Normal Vectors:
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
Surface 2:
Corner Points:
(-9.184851E-17, -0.5, -0.8660254)
(-0.4330127, -0.25, -0.8660254)
(6.123234E-17, 0.0, -0.8660254)
Assigned Normal Vectors:
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
Surface 3:
Corner Points:
(0.4330127, -0.25, -0.8660254)
(-9.184851E-17, -0.5, -0.8660254)
(6.123234E-17, 0.0, -0.8660254)
Assigned Normal Vectors:
(-0.0, 0.0, -0.21650635)
(-0.0, 0.0, -0.21650635)
(-0.0, 0.0, -0.21650635)
Surface 4:
Corner Points:
(0.4330127, 0.25, -0.8660254)
(0.4330127, -0.25, -0.8660254)
(6.123234E-17, 0.0, -0.8660254)
Assigned Normal Vectors:
(0.0, -0.0, -0.21650635)
(0.0, -0.0, -0.21650635)
(0.0, -0.0, -0.21650635)
Surface 5:
Corner Points:
(3.061617E-17, 0.5, -0.8660254)
(0.4330127, 0.25, -0.8660254)
(6.123234E-17, 0.0, -0.8660254)
Assigned Normal Vectors:
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
(0.0, 0.0, -0.21650635)
Surface 6:
Corner Points:
(0.5, 0.8660254, 0.0)
(1.0, -2.4492937E-16, 0.0)
(3.061617E-17, 0.5, -0.8660254)
Assigned Normal Vectors:
(0.75, 0.4330127, -0.6160254)
(0.75, 0.4330127, -0.6160254)
(0.75, 0.4330127, -0.6160254)
Surface 7:
Corner Points:
(0.5, 0.8660254, 0.0)
(3.061617E-17, 0.5, -0.8660254)
(-0.4330127, 0.25, -0.8660254)
Assigned Normal Vectors:
(-0.21650636, 0.37500003, -0.033493638)
(-0.21650636, 0.37500003, -0.033493638)
(-0.21650636, 0.37500003, -0.033493638)
Surface 8:
Corner Points:
(0.5, 0.8660254, 0.0)
(-0.4330127, 0.25, -0.8660254)
(-0.5, 0.8660254, 0.0)
Assigned Normal Vectors:
(0.0, 0.8660254, -0.6160254)
(0.0, 0.8660254, -0.6160254)
(0.0, 0.8660254, -0.6160254)
Surface 9:
Corner Points:
(-0.4330127, -0.25, -0.8660254)
(-0.5, 0.8660254, 0.0)
(-0.4330127, 0.25, -0.8660254)
Assigned Normal Vectors:
(-0.4330127, 0.0, -0.033493653)
(-0.4330127, 0.0, -0.033493653)
(-0.4330127, 0.0, -0.033493653)
Surface 10:
Corner Points:
(-0.4330127, -0.25, -0.8660254)
(-1.0, 1.2246469E-16, 0.0)
(-0.5, 0.8660254, 0.0)
Assigned Normal Vectors:
(-0.75, 0.43301266, -0.6160254)
(-0.75, 0.43301266, -0.6160254)
(-0.75, 0.43301266, -0.6160254)
Surface 11:
Corner Points:
(-0.4330127, -0.25, -0.8660254)
(-9.184851E-17, -0.5, -0.8660254)
(-1.0, 1.2246469E-16, 0.0)
Assigned Normal Vectors:
(-0.21650635, -0.375, -0.033493645)
(-0.21650635, -0.375, -0.033493645)
(-0.21650635, -0.375, -0.033493645)
Surface 12:
Corner Points:
(-0.5, -0.8660254, 0.0)
(-1.0, 1.2246469E-16, 0.0)
(-9.184851E-17, -0.5, -0.8660254)
Assigned Normal Vectors:
(-0.75, -0.4330127, -0.6160254)
(-0.75, -0.4330127, -0.6160254)
(-0.75, -0.4330127, -0.6160254)
Surface 13:
Corner Points:
(-0.5, -0.8660254, 0.0)
(-9.184851E-17, -0.5, -0.8660254)
(0.4330127, -0.25, -0.8660254)
Assigned Normal Vectors:
(0.21650636, -0.37500003, -0.033493638)
(0.21650636, -0.37500003, -0.033493638)
(0.21650636, -0.37500003, -0.033493638)
Surface 14:
Corner Points:
(-0.5, -0.8660254, 0.0)
(0.4330127, -0.25, -0.8660254)
(0.5, -0.8660254, 0.0)
Assigned Normal Vectors:
(0.0, -0.8660254, -0.6160254)
(0.0, -0.8660254, -0.6160254)
(0.0, -0.8660254, -0.6160254)
Surface 15:
Corner Points:
(0.4330127, 0.25, -0.8660254)
(0.5, -0.8660254, 0.0)
(0.4330127, -0.25, -0.8660254)
Assigned Normal Vectors:
(0.4330127, 0.0, -0.033493653)
(0.4330127, 0.0, -0.033493653)
(0.4330127, 0.0, -0.033493653)
Surface 16:
Corner Points:
(0.4330127, 0.25, -0.8660254)
(1.0, -2.4492937E-16, 0.0)
(0.5, -0.8660254, 0.0)
Assigned Normal Vectors:
(0.75, -0.43301266, -0.6160254)
(0.75, -0.43301266, -0.6160254)
(0.75, -0.43301266, -0.6160254)
Surface 17:
Corner Points:
(0.4330127, 0.25, -0.8660254)
(3.061617E-17, 0.5, -0.8660254)
(1.0, -2.4492937E-16, 0.0)
Assigned Normal Vectors:
(0.21650635, 0.375, -0.033493645)
(0.21650635, 0.375, -0.033493645)
(0.21650635, 0.375, -0.033493645)
Surface 18:
Corner Points:
(0.5, 0.8660254, 0.0)
(3.061617E-17, 0.5, 0.8660254)
(1.0, -2.4492937E-16, 0.0)
Assigned Normal Vectors:
(0.75, 0.4330127, 0.6160254)
(0.75, 0.4330127, 0.6160254)
(0.75, 0.4330127, 0.6160254)
Surface 19:
Corner Points:
(0.5, 0.8660254, 0.0)
(-0.4330127, 0.25, 0.8660254)
(3.061617E-17, 0.5, 0.8660254)
Assigned Normal Vectors:
(-0.21650636, 0.37500003, 0.033493638)
(-0.21650636, 0.37500003, 0.033493638)
(-0.21650636, 0.37500003, 0.033493638)
Surface 20:
Corner Points:
(0.5, 0.8660254, 0.0)
(-0.5, 0.8660254, 0.0)
(-0.4330127, 0.25, 0.8660254)
Assigned Normal Vectors:
(0.0, 0.8660254, 0.6160254)
(0.0, 0.8660254, 0.6160254)
(0.0, 0.8660254, 0.6160254)
Surface 21:
Corner Points:
(-0.4330127, -0.25, 0.8660254)
(-0.4330127, 0.25, 0.8660254)
(-0.5, 0.8660254, 0.0)
Assigned Normal Vectors:
(-0.4330127, 0.0, 0.033493653)
(-0.4330127, 0.0, 0.033493653)
(-0.4330127, 0.0, 0.033493653)
Surface 22:
Corner Points:
(-0.4330127, -0.25, 0.8660254)
(-0.5, 0.8660254, 0.0)
(-1.0, 1.2246469E-16, 0.0)
Assigned Normal Vectors:
(-0.75, 0.43301266, 0.6160254)
(-0.75, 0.43301266, 0.6160254)
(-0.75, 0.43301266, 0.6160254)
Surface 23:
Corner Points:
(-0.4330127, -0.25, 0.8660254)
(-1.0, 1.2246469E-16, 0.0)
(-9.184851E-17, -0.5, 0.8660254)
Assigned Normal Vectors:
(-0.21650635, -0.375, 0.033493645)
(-0.21650635, -0.375, 0.033493645)
(-0.21650635, -0.375, 0.033493645)
Surface 24:
Corner Points:
(-0.5, -0.8660254, 0.0)
(-9.184851E-17, -0.5, 0.8660254)
(-1.0, 1.2246469E-16, 0.0)
Assigned Normal Vectors:
(-0.75, -0.4330127, 0.6160254)
(-0.75, -0.4330127, 0.6160254)
(-0.75, -0.4330127, 0.6160254)
Surface 25:
Corner Points:
(-0.5, -0.8660254, 0.0)
(0.4330127, -0.25, 0.8660254)
(-9.184851E-17, -0.5, 0.8660254)
Assigned Normal Vectors:
(0.21650636, -0.37500003, 0.033493638)
(0.21650636, -0.37500003, 0.033493638)
(0.21650636, -0.37500003, 0.033493638)
Surface 26:
Corner Points:
(-0.5, -0.8660254, 0.0)
(0.5, -0.8660254, 0.0)
(0.4330127, -0.25, 0.8660254)
Assigned Normal Vectors:
(0.0, -0.8660254, 0.6160254)
(0.0, -0.8660254, 0.6160254)
(0.0, -0.8660254, 0.6160254)
Surface 27:
Corner Points:
(0.4330127, 0.25, 0.8660254)
(0.4330127, -0.25, 0.8660254)
(0.5, -0.8660254, 0.0)
Assigned Normal Vectors:
(0.4330127, 0.0, 0.033493653)
(0.4330127, 0.0, 0.033493653)
(0.4330127, 0.0, 0.033493653)
Surface 28:
Corner Points:
(0.4330127, 0.25, 0.8660254)
(0.5, -0.8660254, 0.0)
(1.0, -2.4492937E-16, 0.0)
Assigned Normal Vectors:
(0.75, -0.43301266, 0.6160254)
(0.75, -0.43301266, 0.6160254)
(0.75, -0.43301266, 0.6160254)
Surface 29:
Corner Points:
(0.4330127, 0.25, 0.8660254)
(1.0, -2.4492937E-16, 0.0)
(3.061617E-17, 0.5, 0.8660254)
Assigned Normal Vectors:
(0.21650635, 0.375, 0.033493645)
(0.21650635, 0.375, 0.033493645)
(0.21650635, 0.375, 0.033493645)

I noted the call to setNormals via appending the point to the item. The code is
the entire code to the module. Can someone explain what happened to cause an
exception on the 120th element on a passed 90 element array.

java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b06-275)
Java HotSpot(TM) Client VM (build 1.5.0_16-132, mixed mode, sharing)

Platform 2001 PowerPC G4 Quicksilver (upgraded to a dual 1.73 GHz MPC-7448 from
a dual 800 MHz MPC-7450) running:
System Version: Mac OS X 10.4.11 (8S165)
Kernel Version: Darwin 8.11.0



 Comments   
Comment by aces [ 29/Oct/08 ]

IndexedTriangleArray was expecting a normal array with 20 elements, one per
vertex . As you are setting 30, so it raises a ArrayIndexOutOfBoundsException.
Set a normal with 20 elements and it will work fine.

It raises at index 120 because the Vector3f array is used to assemble a
interleaved float[], with all geometry data.
This array has length:
20 x ( vertex length + normal length) => 20 x (3 + 3) = 120

vertex length is 3 ( x, y, z float coordinates)
normal length is 3 ( nx,ny,nz float normals)

Comment by aces [ 29/Oct/08 ]

A better solution is vertexCount parameter as the maximum value between
vertices length and normals length.

Something like below:

IndexedTriangleArray bitITA = new IndexedTriangleArray(
Math.max(vertices.length, normals.length),
IndexedTriangleArray.COORDINATES | IndexedTriangleArray.NORMALS,
pIndices.length);

I guess this way it doesn't break your geometry logic.
Please test above snippet and give feedback

Comment by myopic4141 [ 29/Oct/08 ]

The limitation of 20 normals does break the geometry logic because the 20 points
are generating 36 surfaces. The most I can cut the normals down to is 26 (26
unique directional surfaces where 2 sets of 6 share a same normal). That will
leave 6 surfaces with incorrect normals. I think the normals should be based on
surfaces rather than vertexes which in most cases has less normals than vertexes
(6 normals for a 8 vertex cube example); but occasionally create more. I will
try the snippet by adding a test to adjust the vertex count by padding if the
normal count exceeds the vertex count and let you know what happens.
A note: a smaller element normal array passed does not generate any exceptions
because I have successfully used an eight element vertex array with a six
element normal array in generating an oblong box. Interesting that the
implementation works one way and not another.

Comment by myopic4141 [ 29/Oct/08 ]

I changed:

IndexedTriangleArray bitITA = new IndexedTriangleArray(vertices.length,
IndexedTriangleArray.COORDINATES|IndexedTriangleArray.NORMALS,
pIndices.length);

to:

IndexedTriangleArray bitITA = new
IndexedTriangleArray((vertices.length<normals.length?
normals.length:vertices.length),
IndexedTriangleArray.COORDINATES|IndexedTriangleArray.NORMALS, pIndices.length);

without padding vertices and it worked. I thank you; but, I think there is
going to have to be better documentation on the fact that the normal array count
cannot exceed the vertex count and that the normal and vertex arrays do not have
to be of equal length.

Comment by myopic4141 [ 30/Oct/08 ]

A question that I forgot to ask is how should we address this further given the
circumstances that the arrays need not be the same length and that only the
longer need be designated? We have a work around; but, does more need to be
addressed?





[JAVA3D-600] Camera compensation for moving/zooming objects Created: 19/Oct/08  Updated: 19/Oct/08

Status: Open
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Improvement Priority: Major
Reporter: ezyang Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 600

 Description   

As described in Issue 529, mouse behaviors for translating and zooming objects
are performed with respect to some absolute plane, regardless of viewer window
or parent rotations.

The transformation to fix this is relatively simple: given one parent
BranchGraph with a rotational matrix `rotateTransform`, perform:

rotateTransform.invert();
rotateTransform.transform(transformation);

Where `transformation` would be what we would normally do en lieu of any
compensation.

The trouble, then, is getting an appropriate rotateTransform; every parent
BranchGraph must be inspected for a rotational component, the matrixes must be
multiplied together, and then we can perform the above transform. For deep call
graphs, this operation seems quite unwieldy, and thus I seek implementation advice.






[JAVA3D-589] Scoping a node by several ModelClips does not produce expected results Created: 31/Jul/08  Updated: 16/Oct/08  Resolved: 16/Oct/08

Status: Resolved
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: darwinjob Assignee: java3d-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Java Source File YetAnotherModelClipBug.java    
Issuezilla Id: 589

 Description   

Scoping a node by several ModelClips does not produce expected results.



 Comments   
Comment by darwinjob [ 31/Jul/08 ]

Created an attachment (id=366)
Test case

Comment by darwinjob [ 31/Jul/08 ]

There are two toggle buttons in the test program, each of them adds/removes the
node to/from the scope of the corresponding ModelClip. If you add the node to
the both scopes (both toggle buttons are selected) you will clearly see that the
result is wrong.

Comment by darwinjob [ 15/Oct/08 ]

Can that be related to GL_MAX_CLIP_PLANES?

Comment by darwinjob [ 16/Oct/08 ]

"If the regions of influence of multiple ModelClip nodes overlap, the Java 3D
system will choose a single set of model clip planes for those objects that lie
in the intersection. This is done in an implementation-dependent manner, but in
general, the ModelClip node that is "closest" to the object is chosen."

Thanks to interactivemesh





[JAVA3D-273] OrientedShape3D doesn't orient properly Created: 07/May/06  Updated: 23/Sep/08

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.4.0
Fix Version/s: 1.6.0

Type: Bug Priority: Minor
Reporter: nvaidya Assignee: java3d-issues
Resolution: Unresolved Votes: 6
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC


Attachments: Java Source File OrientedShape3DBug.java    
Issuezilla Id: 273

 Description   

OrientedShape3D doesn't seem to align properly with the view. I'm noticing this
issue particularly when an OrientedShape3D is used in conjunction with
OrbitBehavior. It appears that the issue seems to have originated from Java 3D
version 1.4.0 build6.

The test system is:
JDK 1.5.0_06
Java 3D 1.4.0_01
Windows XP SP2
OpenGL
nVidia 6600GT PCI, ForceWare 84.21

Attached is a testcase OrientedShape3DBug.java to illustrate the problem.

To run do:
> java OrientedShape3DBug

To test do:
> Rotate the scene using the left mouse button
> Click on the Canvas; you might see a slight but perceptible re-alignment of
the OrientedShape3D
> Click on the reset button. This manipulates the ViewPlatformTransform so that
it points to the -Z axis. You'd notice that the cube aligns properly but, mor e
often than not, the OrientedShape3D alignment is messed up



 Comments   
Comment by nvaidya [ 07/May/06 ]

Created an attachment (id=162)
Attached testcase OrientedShape3DBug.java

Comment by kcr [ 09/May/06 ]

We'll take a look at this.

Comment by kcr [ 21/Nov/06 ]

P4 bug for 1.5.1 release.

Comment by kcr [ 09/Jan/07 ]

Unassigned.

Comment by kcr [ 18/Apr/07 ]

Set target milestone to 1.6.0

Comment by matteodg [ 30/Nov/07 ]

Adding myself to CC list.

Comment by matteodg [ 27/Jun/08 ]

In scientific visualization orienting a label toward the observer eye is a MUST
and this is a very annoying issue indeed...

I understand that Java3D support has been discontinued and development is
currently frozen... but please may someone shed some light on how to manage to
fix it in the Java3D source code by myself?

Thanks in advance for any tips or suggestion, they are VERY welcome!

Comment by interactivemesh [ 22/Sep/08 ]

It seems that when the OrientedShape3D is updated the CanvasViewCache, which is
accessed, is one frame too late. This CanvasViewCache will be synchronized later
by the Renderer. Calling 'Canvas3D.updateViewCache(..)' earlier in
'RenderBin.updateOrientedRAs()' may solve the problem. This should be considered
as a work around because the CanvasViewCache is now updated twice and it is not
fully tested if other "states" are affected.

Give this extra call a try in:

javax.media.j3d.RenderBin

// Called from MasterControl when viewCache changes or if there are
// dirtyOrientedShapes
void updateOrientedRAs() {
int i, nRAs;
Canvas3D cv = null;
RenderAtom ra;
OrientedShape3DRetained os;

// Issue 562 : use cached list of canvases to avoid index OOB exception
Canvas3D[] canvases = view.getCanvases();
if (canvases.length > 0)

{ cv = canvases[0]; }

if (cv != null) {

// Issue 273 work around !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cv.updateViewCache(false, null, false);

if (view.viewCache.vcDirtyMask != 0)

{ nRAs = orientedRAs.size(); ... ... }
Comment by interactivemesh [ 23/Sep/08 ]

E R R A T U M

Call

Canvas3D.updateViewCache(boolean flag, CanvasViewCache cvc, BoundingBox
frustumBBox, boolean doInfinite)

this way :

cv.updateViewCache(false, null, null, false);





[JAVA3D-598] Canvas3D.getCenterEyeInImagePlate() not updated when Applet is scrolled in Browser-Window Created: 22/Sep/08  Updated: 22/Sep/08

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.2
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: welpe Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Zip Archive bugReport.zip    
Issuezilla Id: 598

 Description   

When an applet containing a Canvas3D is scrolled in the browser-window,
Canvas3d.getCenterEyeInImagePlate() and Canvas3D.getImagePlateToVworld()
still return old (wrong) values, as if the scroll had not occured.
ViewInfo.getImagePlateToVworld() will return new, correct values.

Sending a ComponentEvent, e.g. COMPONENT_MOVED, to the Canvas3D-object will
cause the Canvas3D to update it's values (after a repaint).

Note that this is not just the well-known "one frame delay" of Canvas3D.
As far as I know, this seems to be a bug in Canvas3D. If this behaviour is
intended, it should be clearly documented and a warning should be given in
javadoc-commentary.

An interesting thing: Canvas3D.getPixelLocationInImagePlate() will immediately
return updated values that will work fine with the (supposedly wrong)
Canvas3d.getImagePlateToVworld()-Transform. After updating via ComponentEvent,
both will return new, correct values.

WORKAROUND:
Manually trigger ComponentEvents to the Canvas3D and repaint a portion of the
canvas. If you're just interested in converting MouseClicks to
VirtualWorld-Coordinates, use a combination of
Canvas3D.getPixelLocationInImagePlate()
Canvas3D.getImagePlateToVworld()
which will still work fine.

VERSION:
This was tested with
Java 1.6.0_07-b06
Java 3D 1.5.2
Windows 2000, Windows Vista SP1, Ubuntu 8.04
Firefox 2.0.0.16, Firefox 3, Opera 9.26



 Comments   
Comment by welpe [ 22/Sep/08 ]

Created an attachment (id=373)
ZIP-File containing an applet with its HTML-file





[JAVA3D-597] MousePickBehavior doesn't check event source Created: 11/Sep/08  Updated: 11/Sep/08

Status: Open
Project: java3d
Component/s: j3d-core-utils
Affects Version/s: current
Fix Version/s: not determined

Type: Task Priority: Major
Reporter: ap500 Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File my-patch.diff    
Issuezilla Id: 597

 Description   

When an awt mouse event is passed to MousePickBehavior it doesn't check that the
canvas it came from is the one registered with this behaviour.

This means that when multiple canvses are in use clicking a blank area of one
canvas could affect object on the other canvas.



 Comments   
Comment by ap500 [ 11/Sep/08 ]

Created an attachment (id=372)
fixes MousePickBehavior event problem





[JAVA3D-161] Exception in thread "J3D-RenderingEnvironmentStructureUpdateThread-1" Created: 28/Jul/05  Updated: 07/Sep/08

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.3.2
Fix Version/s: not determined

Type: Bug Priority: Trivial
Reporter: darwinjob Assignee: java3d-issues
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC


Attachments: Text File removeAltApp.patch     Java Archive File TestCase2.jar    
Issuezilla Id: 161
Status Whiteboard:

owner-needed


 Description   

The sequence:
1) Put a node under AlternateAppearance influence
2) Clone it with .cloneNode(true)
3) Remove it from AlternateAppearance influence
4) Put it back under AlternateAppearance influence
will cause the exception:

**J3D 1.3.1:**
Exception in thread "J3D-RenderingEnvironmentStructureUpdateThread-1"
java.lang.ArrayIndexOutOfBoundsException: -1
at javax.media.j3d.Shape3DRetained.addAltApp(Shape3DRetained.java:1651)
at
javax.media.j3d.AlternateAppearanceRetained.updateImmediateMirrorObject(AlternateAppearanceRetained.java:470)
at
javax.media.j3d.RenderingEnvironmentStructure.updateAltApp(RenderingEnvironmentStructure.java:1168)
at
javax.media.j3d.RenderingEnvironmentStructure.processMessages(RenderingEnvironmentStructure.java:208)
at javax.media.j3d.StructureUpdateThread.doWork(StructureUpdateThread.java:83)
at javax.media.j3d.J3dThread.run(J3dThread.java:250)

**J3D 1.3.2:**
Exception in thread "J3D-RenderingEnvironmentStructureUpdateThread-1"
java.lang.ArrayIndexOutOfBoundsException: -1
at javax.media.j3d.Shape3DRetained.addAltApp(Unknown Source)
at
javax.media.j3d.AlternateAppearanceRetained.updateImmediateMirrorObject(Unknown
Source)
at javax.media.j3d.RenderingEnvironmentStructure.updateAltApp(Unknown Source)
at javax.media.j3d.RenderingEnvironmentStructure.processMessages(Unknown Source)
at javax.media.j3d.StructureUpdateThread.doWork(Unknown Source)
at javax.media.j3d.J3dThread.run(Unknown Source)



 Comments   
Comment by darwinjob [ 28/Jul/05 ]

Created an attachment (id=109)
Executable jar file with the sources

Comment by kcr [ 28/Jul/05 ]

We were able to reproduce the bug. A quick look shows that it isn't a trivial
bug (but probably not that difficult, either). The negative index causing the
exception is "numAltApps" in Shape3DRetained. It is going negative when
removeAltApp() is called and the mirror Shape3D has no alternate appearance.
This may or may not be caused by the cloneNode operation (probably not, since
the Shape3D itself doesn't appear to be being cloned). More likely, it is caused
by detaching and then reattaching the graph containing a Shape3D that is being
affected by an AlternateAppearance.

Since this bug doesn't have a trivial fix and isn't in an area we are focusing
on for this release, we are lowering the priority to P5 and marking it as
"owner-needed".

Comment by myrecek [ 18/Jun/08 ]

I am not sure whether it is a solution but at least it can help find the cause:
In Shape3DRetained#removeAltApp, the numAltApps-- is performed regardless if
aApp was found. I guess adding some foolproofness here would help.

Comment by myrecek [ 07/Sep/08 ]

Created an attachment (id=371)
This solves the issue, at least in my project. The bug in Shape3DRetained#removeAltApp is obvious.





[JAVA3D-596] General rendering issues with dual screen Created: 29/Aug/08  Updated: 02/Sep/08

Status: Open
Project: java3d
Component/s: j3d-core
Affects Version/s: 1.5.1
Fix Version/s: not determined

Type: Bug Priority: Major
Reporter: mondaymassacre Assignee: java3d-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: PC


Issuezilla Id: 596

 Description   

While working myself through the 3D-API, I found a problem with the rendering on
multi-screen workstations, as myself one is with a notebook and an external monitor.
The problem occurs on Windows Vista as well as on Windows XP. I tested
thoroughly on Vista. (haven't tested on any other OS though)

When starting a J3D-application, it starts where I intended it to start. If
there is an animation, the animation starts, but may abruptly stop. The
rendering is either continued on another part of the dual-screen, is continued
invisibly, or is being continued on parts of the screen. (for example, it may
render over an open Skype-window, or over the mailclient; however, it always
renders on the same monitor, the application-window currently is on. There is no
rendering on the secondary screen, while the window resides on the primary
screen and vice versa)
When moving the application to the secondary screen, the rendering usually is
resumed within the window (working properly again - for a short period). Moving
it back to the primary monitor usually presents the window in the
background-color of the universe.
The same is true when starting the program as an applet (for example, using the
Eclipse-functionality to run the program either as an applet within an
applet-viewer or as an application)

Running the applet within a browser, it presents the exact same behavior as
described by Issue 361 and it's comments. Therefore, those two issues may be
related to each other.

Normally, I'd think that this would be a problem within my applications, but
this behavior occurs with the J3D-Sample programs and the programs from the Java
3D-Tutorial as well. However, the rendering is more likely to fail if there is
user action involved.
For example, the "KeyNavigatorApp" from the Tutorials is almost guaranteed to
fail while moving around, whereas "static" examples like the "AxisApp" seem to
not fail at all.

Even after terminating the application, there are black spots all over the
screen, where the application has rendered itself. This link
(http://www1.siconet.at/Kastna/stuff/rendering.jpg) shows my Skype-window, after
the application rendered itself partly over it. (there are actually names
visible, I just white-blanked 'em out. The black spots are the ones, that were
created by the application)

What confuses me most, is, that this behavior also appears, even if the
secondary screen is disabled (by not extending the desktop to the secondary
screen in the windows display-settings). Although I have to add, that the screen
was still connected to the notebook (via a docking station).

There also seems to be a correlation between the runtime of the operating system
and the frequency of the issue to appear: The longer a system is up, the more
likely it is, that the rendering fails, but that may be a subjective opinion.



 Comments   
Comment by aces [ 29/Aug/08 ]

Hi

try to create your canvas 3D using below code:

/**

  • Creates a Canvas3D instance.<br>
  • This method targets multi screen systems, where Canvas3D may be
  • placed in other Screen then DefaultScreen device.
    *
  • @param compForCanvas - Component which will hold-on a Canvas3D. If null or
  • not yet added to a container, this method will use
  • default screen device.<br>
  • The parameter compForCanvas can be an instance of java.applet.Applet,
  • java.awt.Window, java.awt.Frame, javax.swing.JFrame and their sub-classes,
  • as well an instance of JPanel already attached to one of previous cited
    Containers.
  • @return a Canvas3D instance multi-screen/multi-head aware.
  • */
    public static Canvas3D createCanvas3D(java.awt.Component compForCanvas) {
    GraphicsDevice graphicsDevice;

if (compForCanvas.getGraphicsConfiguration() != null)

{ // component is, or belongs to, a live container graphicsDevice = compForCanvas.getGraphicsConfiguration().getDevice(); }

else

{ // component is not alive yet, use default graphics device graphicsDevice = GraphicsEnvironment.getLocalGraphicsEnvironment() .getDefaultScreenDevice(); }

GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D();
// change template settings here
//template.setSceneAntialiasing(GraphicsConfigTemplate3D.PREFERRED);

GraphicsConfiguration config = graphicsDevice.getBestConfiguration(template);

return new Canvas3D(config);
}

Comment by mondaymassacre [ 01/Sep/08 ]