This is mostly likely being caused by the winding of the points on your
terrain, coupled with a culling of backfacing polygons. Try setting the
rendering attributes of your terrain to not cull backfacing polygons. If
that works then you will need to fix the winding of your data points.
David Yazel
Cosm Development Team
http://www.cosm-game.com
-----Original Message-----
From: Fredrik Andersson [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, September 25, 2001 2:41 AM
To: [EMAIL PROTECTED]
Subject: [JAVA3D] My Shape3D appears upside down??
Hello!
Sorry! I forgot to set a subject, so I send this again.
I'm tying to create a ground_surface, but it allways apper upside down
and I can't get it right. It appears with the image-surface facing down
so I can't see it. I have to rotate my KeyNavigatorBehavior upside down
so I look at the ground like it was the sky, hope you understand what I
mean.
I use a Shape3D which I add a texture on like this:
1) Apperance-class (I do not add the import statements here)
public class TextureAppearance extends Appearance
{
public TextureAppearance(String imageName, Applet applet)
{
TextureLoader textureLoader = new
TextureLoader(imageName, applet);
ImageComponent2D imageComponent2D =
textureLoader.getImage();
Texture2D texture2D = new
Texture2D(Texture.BASE_LEVEL,Texture.RGBA,imageComponent2D.getWidth(),im
ageComponent2D.getHeight());
texture2D.setImage(0, imageComponent2D);
setTexture(texture2D);
}
}
2) The Shape3D class (I do not add the import statements here)
public class TextureGround extends Shape3D
{
float x = 2;
float y = 4;
float z = 2;
float posX = 0;
float posY = 0;
float posZ = 0;
int type = 0;
public TextureGround(float x, float y, float z, String
imageName, Applet applet, int type)
{
this.x = x;
this.y = y;
this.z = z;
QuadArray quadArray = new
QuadArray(4,GeometryArray.COORDINATES |
GeometryArray.TEXTURE_COORDINATE_2);
Point3f point3f = new Point3f(posX, posY, posZ);
quadArray.setCoordinate(0, point3f);
point3f.set(posX, posY, posZ - z);
quadArray.setCoordinate(1, point3f);
point3f.set(posX + x, posY, posZ - z);
quadArray.setCoordinate(2, point3f);
point3f.set(posX + x, posY, posZ);
quadArray.setCoordinate(3, point3f);
Point2f point2f = new Point2f(0.0f, 1.0f);
quadArray.setTextureCoordinate(0, point2f);
point2f.set(0.0f, 0.0f);
quadArray.setTextureCoordinate(1, point2f);
point2f.set(1.0f, 0.0f);
quadArray.setTextureCoordinate(2, point2f);
point2f.set(1.0f, 1.0f);
quadArray.setTextureCoordinate(3, point2f);
setAppearance(new TextureAppearance(imageName, applet));
setGeometry(quadArray);
}
}
3) I create this with:
new TextureGround(25.6f, 0.0f, 25.6f, "images/dead_end_s.gif",
applet,Constants.DEAD_END_S);
The Constants.DEAD_END_S is not in use yet so you can ignore that!
....I can't understand why it always get's uppdown, I use to navigate
around this ground with a KeyNavigatorBehavior with this inside a
Applet:
TransformGroup transformGroup1
=simpleUniverse.getViewingPlatform().getViewPlatformTransform();
KeyNavigatorBehavior keyNavigatorBehavior =
newKeyNavigatorBehavior(transformGroup1);
keyNavigatorBehavior.setSchedulingBounds(newBoundingSphere(new
Point3d(0.0f, 0.0f, -8.0f),10000.0));
branchGroup.addChild(keyNavigatorBehavior);
So if someone understand why it won't appare with the texture in the
right way, please let me know.
Best Regards
Fredrik Andersson
Ps A good deed a day brings good karma to the world in these days.
==========================================================================To
unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".