# Texturing-geht das auch anders?



## Developer_X (15. Apr 2009)

Wie ihr auf dem Folgenden Bild sehen könnt, ist bei diesem Shape links, einmal das bild horizontal umgelegt, und bei dem anderen rechts, vertikal, ich möchte aber das alle vertikal liegen, außer die oben und unten liegen, versteht ihr was ich meine?
Im code siehts bei mir so aus

```
protected Appearance DefineAppearance()
	{	    	
		
		Appearance app = new Appearance();		
		app.setTexture((new TextureLoader("F:/Rayman/Bilder/Henchman_Bilder/Henchman_Bod.jpg",null)).getTexture());
		app.setTextureAttributes(new TextureAttributes(TextureAttributes.REPLACE,new Transform3D(),new Color4f(),TextureAttributes.FASTEST));
	   
	    
		return app;
	}

	
	protected Node buildShape1() 
	{
		
	IndexedQuadArray indexedCube = new IndexedQuadArray(8,
										 IndexedQuadArray.COORDINATES|
										 IndexedQuadArray.NORMALS|
										 IndexedQuadArray.TEXTURE_COORDINATE_2, 24);
	Point3f[] cubeCoordinates = {
			            new Point3f(0.8f,1f,-0.5f),
						new Point3f(-0.8f,1f,-0.5f),
						new Point3f(-0.8f,1f,0.5f),
						new Point3f(0.8f,1f,0.5f),
						
						new Point3f(1f,-1f,-0.7f),
						new Point3f(-1f,-1f,-0.7f),
						new Point3f(-1f,-1f,0.7f),
						new Point3f(1f,-1f,0.7f)};

	Vector3f[] normals= {new Vector3f( 0.0f, 0.0f, 1.0f),
				   new Vector3f( 0.0f, 0.0f,-1.0f),
				   new Vector3f( 1.0f, 0.0f, 0.0f),
				   new Vector3f(-1.0f, 0.0f, 0.0f),
				   new Vector3f( 0.0f, 1.0f, 0.0f),
				   new Vector3f( 0.0f,-1.0f, 0.0f)};

	TexCoord2f[] textCoord = {	new TexCoord2f(1.0f,1.0f),
						new TexCoord2f(0.0f,1.0f),
						new TexCoord2f(0.0f,0.0f),
						new TexCoord2f(1.0f,0.0f)};
	int coordIndices[] =  {0,1,2,3,7,6,5,4,0,3,7,4,5,6,2,1,0,4,5,1,6,7,3,2};
	int normalIndices[] = {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5};
	int textIndices[] =   {0,1,2,3,3,0,1,2,1,2,3,0,1,2,3,0,3,0,1,2,1,2,3,0};
	indexedCube.setCoordinates(0, cubeCoordinates);
	indexedCube.setCoordinateIndices(0, coordIndices);
	indexedCube.setNormals(0,normals);
	indexedCube.setNormalIndices(0, normalIndices);
	indexedCube.setTextureCoordinates(0,0,textCoord);
	indexedCube.setTextureCoordinateIndices(0,0,textIndices);
	return new Shape3D(indexedCube, DefineAppearance());
	}
```
Könntet ihr mir vielleicht einen Tipp geben, wo ich etwas verändern soll?
PS: schaut mal hier drauf
IndexedQuadArray.TEXTURE_COORDINATE_2, 24);
ich hab mal versucht die Texture Coordinate umzu wandeln, in drei, dann kamen fehlermeldungen
wenn ich die 24 in eine 25 änderte, kam auch eine Fehlermeldung, ich weiß auch nciht worans sonst liegen könnte, vielleicht an den textCoord wenn ihr versteht was ich meine.
Auf jeden Fall wie soll ich denn diese TextUre Coordinates umwandeln, damit alle BIlder nach oben zeigen
wie die rechte seite meines Shapes auf dem Bild unten?

Kanns mir bitte einer erklären?


----------



## Illuvatar (15. Apr 2009)

Du hast nicht zufällig irgendeine Ahnung, was Texture Coordinates machen?
Texture Mapping ? Wikipedia

Ich werd bestimmt nicht versuchen nachzuvollziehen, welche Koordinate jetzt wo liegt und welche Texturkoordinate wo - im Endeffekt musst du bloß ein kleines bisschen in dem textIndices-Array vertauschen. Wenn du den Code da selbst geschrieben hast, solltest du wissen was du tauschen musst; wenn nicht, dann frag am besten den der ihn geschrieben hat.


----------



## Marco13 (15. Apr 2009)

Du kannst den hier geposteten code verwenden : http://www.java-forum.org/java-basics-anfaenger-themen/78097-array-alle-moeglichen-reihenfolgen.html Um alle möglichen Permutationen des textIndices-arrays zu erstellen. Dann jeweils neu compilieren, und schauen, ob es so aussieht, wie du es möchtest.


----------



## hdi (15. Apr 2009)

lol


----------



## Vayu (15. Apr 2009)

try by error ^^ is doch ne altangewandte methode


----------



## Developer_X (15. Apr 2009)

Marco13 dein beitrag hilft mir nicht weiter, 
außerdem habe ich es schon des öfteren versucht, ich komm einfach nciht drauf!


----------

