# Texturkoordinaten Pixelgenau angeben



## DiniM (19. Jun 2007)

Hallo,
Ich habe das Problem dass ich auf einer fläche der masse 1*1 eine Textur aufkleben will, welche genau 32 pixel lang und breit ist. Dabei soll die Textur diese fläche weder über- noch unterschreiten, d.h. sie soll genau draufpassen. Wie genau kann ich das anstellen?

Ausserdem: angeblich sind die masseinheiten in Java3D ja in metern (?). Ist es möglich, diese masseinheit umzuwandeln, also in Pixel?


----------



## Evil-Devil (20. Jun 2007)

Ich vermute mal das es in Java3D auch eine Orthogonale Perspektive gibt bzw. man sie selbst erzeugen kann. In dem Fall hättest du Pixelgenaue Angaben für dein Objekt.

Aber wozu brauchst du bei einem regulären Objekt pixelgenaue Werte? Einfach 0/0 für links oben, 0/1 für rechts oben, 1/0 für links unten und 1/1 für rechts unten. Eventuell die Werte noch austauschen im Falle einer geflippten Texture.


----------



## DiniM (20. Jun 2007)

```
SAp.setTexCoordGeneration(new TexCoordGeneration(TexCoordGeneration.OBJECT_LINEAR,
	    						  						 TexCoordGeneration.TEXTURE_COORDINATE_2,  
	    						  						 new Vector4f(1,0,0,0), 
	    						  						 new Vector4f(0,1,0,0)));
```

Ja das mache ich ja hier eigentlich auch, aber die Textur wird dann einfach so lange wiederholt bis das objekt vollgezeichnet ist, und nicht auf das Objekt "gespannt"


----------



## Evil-Devil (20. Jun 2007)

Hmm, hab mal eben bei Google geschaut und da wird das in dem Tutorial gänzlich anders gemacht.

http://www.vrupl.evl.uic.edu/LabAccidents/java3d/lesson05/index.html

Vielleicht hilft dir das.


----------



## Lutherion (20. Jun 2007)

Man kann die Texturen skalieren mit nem Transform3D Objekt in den TextureAttributes des Appearance.

Hoffe das hilft,

mfG


----------



## DiniM (2. Jul 2007)

@Evil-Devil

Wenn ich das so mache wie im Tutorial krieg ich Fehlermeldungen in der Konsole und eine "deprecated"-meldung in eclipse. Scheinbar ist diese Variante schon veraltet...
Es gibt eine Klasse namens TexCoordGeneration, in der man Vector4f-Daten angeben kann. Ich weiss jedoch nicht, wie ich diese Daten anwenden muss, damit es nicht einfach die Textur kachelt, sondern die Textur auf das Objekt spannt.

Kennt sich jemand damit aus?


----------



## madman907 (13. Jul 2007)

experimentier mal mit den Werten die Du dem Vector3f übergibst und aktuell den Wert (float)1 bei dir habem. Laut Specs sind hier 0.0f bis 1.0f zugelassen, aber dieses Limit besteht eigentich garnicht, mit den übrigen Werten definierst Du die Position wenn ich mich recht entsinne.
HTH!


----------

