|
Hi:
I have an Immediate Mode application that lets a
user walk around a scene by using the keyboard. My scene consists of a cube that
is composed of 6 TriangleArrays, one for each side of the cube. Each side of the
cube has a different appearance.
When the user is still, the cube renders perfectly.
However, when the user starts to move the geometry begins to tear. Gaps appear
between each of the cubes faces. These gaps grow and shrink as the user is
moving. As soon as the user stops the gaps disappear and the cube renders fine.
It looks to me that even though I am drawing all 6
faces between a single GraphicsContext3D.clear() and Canvas3D.swap() pair that
in fact not all of the faces are being drawn during one frame. So what I think
is happening is that some of the faces are being drawn with one viewing
transform and then the transform is updated and then the other faces are draw.
Perhaps this is a threading bug, or perhaps OpenGL flush() is being called
inappropriately?
I am updating the model transform using
SimpleUniverse.getViewingPlatform().getViewPlatformTransform(). If I switch to
using the standard ColorCube then this cube renders fine even while moving, but
I believe it consists of only a single GeometryArray, not multiple arrays and
appearances like my application.
Has any else noticed this problem?
- John
I am using Java3D beta 2 Open GL under Windows 200
with a GeForce based card.
|
