A
apfelsaft
Gast
Hallo,
ich habe ein Bild das ich gerne im Raum darstellen möchte. Dazu habe ich ein Texture2D auf einer Ebene (QuadArray) dargestellt, was auch soweit funktioniert. Allerdings kann ich die Textur nur von einer Seite betrachten. Wenn ich die Kameraposition ändere und von hinten auf das Bild schauen möchte, ist die Ebene bzw. die Textur gar nicht mehr zu sehen.
Kann mir jemand sagen, wie es möglich ist das Bild darzustellen, so dass man es von beiden Seiten betrachten kann? Von hinten sollte es dann entsprechend spiegelverkehrt zu sehen sein.
Hier noch mein Quellcode den ich derzeit verwende:
ich habe ein Bild das ich gerne im Raum darstellen möchte. Dazu habe ich ein Texture2D auf einer Ebene (QuadArray) dargestellt, was auch soweit funktioniert. Allerdings kann ich die Textur nur von einer Seite betrachten. Wenn ich die Kameraposition ändere und von hinten auf das Bild schauen möchte, ist die Ebene bzw. die Textur gar nicht mehr zu sehen.
Kann mir jemand sagen, wie es möglich ist das Bild darzustellen, so dass man es von beiden Seiten betrachten kann? Von hinten sollte es dann entsprechend spiegelverkehrt zu sehen sein.
Hier noch mein Quellcode den ich derzeit verwende:
Code:
...
ImageComponent2D image = ...;
Texture2D texture = new Texture2D(Texture.BASE_LEVEL, Texture.RGBA, image.getWidth(), image.getHeight());
texture.setImage(0, image);
Appearance appear = new Appearance();
appear.setTexture(texture);
QuadArray plane = new QuadArray(4, GeometryArray.COORDINATES | GeometryArray.TEXTURE_COORDINATE_2);
// Koordinaten im Raum festelgen
float x=2.56f/2,y=2.56f/2,z=1.00f/2;
Point3f[] coords = new Point3f[4];
coords[0] = new Point3f(-x, y, z);
coords[1] = new Point3f(-x, -y, z);
coords[2] = new Point3f(x, -y, z);
coords[3] = new Point3f(x, y, z);
plane.setCoordinates(0, coords);
// Texturkoordinaten auf Ebene festelgen
TexCoord2f[] texCoords = new TexCoord2f[4];
texCoords[0] = new TexCoord2f(0.0f, 1.0f);
texCoords[1] = new TexCoord2f(0.0f, 0.0f);
texCoords[2] = new TexCoord2f(1.0f, 0.0f);
texCoords[3] = new TexCoord2f(1.0f, 1.0f);
plane.setTextureCoordinates(0,0,texCoords);
Shape3D planeObj = new Shape3D(plane, appear);
rootTG.addChild(planeObj);
...