# 3ds max dateien in java einbinden, 3d welt



## darkangel1208 (16. Okt 2012)

Morgen,
es steht mal wieder projektarbeit vor der Türmit bestimmten rahmenbedingungen. Von daher...

Weiß einer von euch ob es möglich ist, einen Hund, den man in 3ds max erstellt hat, in java einzubinden und dann dort weitere aktionen zu erstellen (z.B vorwärts laufen) oder sollte man die bewegung lieber in 3ds max erstellen/speichern und dann in java nur die entsprechende datei aufrufen.

das ganze soll am ende vereinfacht sowas in der richtung werden

augmented reality


----------



## Marco13 (16. Okt 2012)

Bits sind nur bits. Möglich ist alles. Aber wie schon in http://www.java-forum.org/allgemeine-java-themen/139261-java-3d-renderer.html und anderen Threads angedeutet kann das je nach Format beliebig aufwändig sein. Man findet zwar Importer für 3DS, wenn man danach sucht, aber wie die mit Materialien, Texturen und Animationen umgehen (und was sie ausspucken - ob irgendwelche weiterverarbeitbaren "Rohdaten" oder z.B. einen Java3D-Szenegraph) ist eine andere Frage. (@Spacerat: Wie weit bist du eigentlich?  ). In diesem EyePet werden mit Sicherheit nicht irgendwelche Dateien mit Animationen drin geladen, sondern eine Skelettanimation erstellt und die Geometrie on the fly damit deformiert.


----------



## darkangel1208 (16. Okt 2012)

naja. bisher habe ich nur brettspiele wie mensch ärgere dich nicht, poker oder schiffe versenken in vogelperpektive mit bilder laden löschen programmiert. das letzte projekt war einen mp3 zu programmieren. Doch nun steht an der uni projektarbeit an und es soll bildverarbeitung vorkommen. z.B. ein auto mit webcam eine linie hinterfahren lassen, oder sowas wie eye pet (siehe video, post davor) wir sind zu zweit für das projekt bis ende dezember.

naja ansonsten array, for schleife, if bedingung, funktionen, klassen, objekte, vererbung, threats. das sind sachen, womit ich was anfangen und programmieren kann, aber 3d noch nie.

daher hangel ich mich ran. wir wollen halt ne webcam hinstellen den hund erzeugen und der soll dahinlaufen wo man mit dem finger hintippt. alles andere is zusatz. kommt drauf an wie wir mit der zeit zurechtkommen.

über skelettanimation bin ich auch schon gestolpert, aber wie das ganze zusammen funktionieren soll die eizelnen teile dann, da hapert im kopf noch.

(denn ich hab 3ds max und möchte gern dort den hund kreieren)


----------



## Marco13 (16. Okt 2012)

Das, was bis Dezember umsetzbar wäre, und das was (auf Basis des bisher geschriebenen, soweit ich das beurteilen kann) das angebrachteste wäre, wenn dieses Laden + Animieren nicht das _eigentliche_ Ziel ist: Man könnte aus 3DS die Daten als OBJ exportieren. Das kann man sehr leicht einlesen, egal welche Engine man danach für die eigentliche Darstellung verwendet (JOGL, LWJGL, Java3D, JME...). Für eine Animation könnte man (je nachdem, wie viel Aufwand man reinstecken will) entweder einfach eine Folge von ~10 Keyframes verwenden, die dann einfach nacheinander angezeigt werden (ähnlich wie eine Animation mit einzelnen Sprites in 2D) oder ggf. zwischen den Keyframes dann noch irgendwie interpolieren. Das ist natürlich nicht besonders "elegant", und man kann nicht einfach mal so eine andere Bewegung ausführen lassen (die müßte dann wieder mit 3DS als einzelne OBJs erstellt werden usw.), aber solange man nicht einen 10-Milliarden-Dollar-Konzern wie Sony und ein XXX-köpfiges Entwicklerteam mit XX Jahren Erfahrung im Rücken hat ist das wohl realistischer, als mal schnell EyePet 2.0 runterzuschreiben. 
Bin gespannt wann Apple gegen den Namen klagt :autsch:


----------



## darkangel1208 (16. Okt 2012)

um eyepet 2.0 ging es nie. kanckpunkt is die bilderkennung sprich das die webcam meinem finger erkennt, also aus dem bild daten ermittelt und mit diesen daten ein neues bild erstellt, also das der hund sich in meine richtung dreht und dort hinläuft wo der finger getippt hat ( oder auch der rote punkt auf der karte ist die man hält und bewegt, aber sehen wir erst bei der umsetztung) denn das sind die aspekte der bildverarbeitung in beide richtungen die unser prof haben will, als kreative umsetztung. Ob das dann "hübsch" aussieht is nebensache(leider)


----------



## Spacerat (16. Okt 2012)

[OT]





Marco13 hat gesagt.:


> (@Spacerat: Wie weit bist du eigentlich?  )


Frag' besser nicht Bin dabei und freue mich über jeden noch so kleinen Erfolg wie'n Kleinkind. In letzter Zeit hatte ich aber eher weniger zu lachen. Schon mal versucht, mit Standardmitteln Mehrkanal-Sound auf 2 Kanäle zu reduzieren? :autsch:
Für den 3D-Bereich aber hat man schon mal die Möglichkeit Loader für starre texturierte Objekte oder ganze Szenen zu laden und 'ne experimentelle Abstraktion einer RenderEngine, die sich über Controls konfigurieren lässt. Bei den Problemen, die ich grad' mit dem Standard Soundsystem von Java habe, ist's evtl. doch 'ne gute Idee, wenn man die Loader komplett von allen Standarts löst und wie für das 3D-API erneut eigene findet. Mit dem Gedanken spiel ich gerade. Dem Nachteil erneut Loader für die Java-Standard-Formate schreiben zu müssen, stünde der Vorteil gegenüber, die Lib auch z.B. in Android verwenden zu können.
Kurz gesagt, es stagniert grad' wieder ein bissl'.[/OT]


----------



## satim (22. Nov 2012)

Hallo

brauche eigentlich dringend hilfe hab mein programm aber irgendwie funktioniert das nicht so ganz, ich weiss auch leider nicht wie ich einen neuen beitrag eröffnen kann.


----------



## Marco13 (22. Nov 2012)

Genau so wie du es schon bei http://www.java-forum.org/spiele-multimedia-programmierung/140912-schiffe-versenken.html gemacht hast, aber wenn das wieder genauso läuft würde ich mir nicht viele Hoffnungen machen.


----------



## Evil-Devil (22. Nov 2012)

darkangel1208 hat gesagt.:


> Weiß einer von euch ob es möglich ist, einen Hund, den man in 3ds max erstellt hat, in java einzubinden


Ja das ist möglich.



darkangel1208 hat gesagt.:


> dann dort weitere aktionen zu erstellen (z.B vorwärts laufen) oder sollte man die bewegung lieber in 3ds max erstellen/speichern und dann in java nur die entsprechende datei aufrufen.


Es ist empfehlenswert die jeweiligen Basisanimationen im jeweiligen 3D Programm zu erzeugen und diese dann einzeln bzw. kombiniert im Programm auszuführen. Zb. könntest du eine Laufen-, Kopfwackel-, Schwanzwedel-Animation haben und alle einzeln für sich oder in kombinierter Form abspielen.

Hierbei empfiehlt es sich alles auf Bone-System für das jeweilige Modell zu haben. Das macht Animationen grundlegend einfacher für den Preis das die Berechnungen etwas aufwendiger werden.


----------



## Marco13 (22. Nov 2012)

Das hier ist ein 
	

	
	
		
		

		
			





-Thread. Irgendwie habe ich das Gefühl, dass es bei satim nicht mal um 3D ging. Vielleicht nicht mal um Java


----------

