Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
*.max oder *.3ds nach *.x oder *.fbx konvertieren
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 520
Herkunft: Henstedt-Ulzburg

Themenstarter:

*.max oder *.3ds nach *.x oder *.fbx konvertieren

beantworten | zitieren | melden

Hallo alle zusammen,

kennt vielleicht jemand einen kostenlosen konverter, um MAX oder 3DS Files nach X oder FBX Files zu konvertieren?

mfg.
markus111
private Nachricht | Beiträge des Benutzers
Manu32
myCSharp.de - Member



Dabei seit:
Beiträge: 4
Herkunft: Bayern

beantworten | zitieren | melden

Hi,

Blender soll viele Import- und Exportformate kennen.

MfG
Manu32
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Manu32 am .
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1407

beantworten | zitieren | melden

Wenn Blender ein Formatnicht unterstützt kann man ihn auch mit PlugIns erweitern.

Gruß pdelvo
private Nachricht | Beiträge des Benutzers
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 520
Herkunft: Henstedt-Ulzburg

Themenstarter:

beantworten | zitieren | melden

Ja, wollt ich auch schon. Nur Blender, und anscheint auch kein Plugin unterstützt MAX.
Oder gibt es doch eins?
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1407

beantworten | zitieren | melden

Glaub nicht. Siehe hier.

Gruß pdelvo
private Nachricht | Beiträge des Benutzers
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 520
Herkunft: Henstedt-Ulzburg

Themenstarter:

beantworten | zitieren | melden

Jopp, da hab ichs her. Und was anderes?
private Nachricht | Beiträge des Benutzers
egrath
myCSharp.de - Member

Avatar #avatar-2119.jpg


Dabei seit:
Beiträge: 937
Herkunft: Österreich / Steyr

beantworten | zitieren | melden

Hallo,

Autodesk selbst bietet einen Converter an, der 3DS, OBJ und DXF nach FBX konvertieren kann:

http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=10775855

Grüße,
Egon
private Nachricht | Beiträge des Benutzers
Absturztaube
myCSharp.de - Member

Avatar #avatar-2699.png


Dabei seit:
Beiträge: 61
Herkunft: Wallis, Schweiz

beantworten | zitieren | melden

Für 3DS Max gibt es noch den Panda DirectX Exporter. Der kann jedoch nur ins X-Format exportieren.

http://www.andytather.co.uk/Panda/directxmax_downloads.aspx
private Nachricht | Beiträge des Benutzers
Siassei
myCSharp.de - Member



Dabei seit:
Beiträge: 411

beantworten | zitieren | melden

Servus,

ich suche zur Zeit einen Konverter für *.max und *.3ds, der auch mit OpenGL arbeiten kann. Ich bräuchte den für ein Projekte (License: BSD) und das ganze soll auf Mono oder C++ laufen.

Gruß,
Thomas
private Nachricht | Beiträge des Benutzers
egrath
myCSharp.de - Member

Avatar #avatar-2119.jpg


Dabei seit:
Beiträge: 937
Herkunft: Österreich / Steyr

beantworten | zitieren | melden

Hallo,

ein Konverter hat grundsätzlich mal nichts mit OpenGL, DirectX oder irgend einer anderen 3D API zu tun - der konvertiert ja nur von einem Datenformat in ein anderes. Ich denke was Du suchst ist eine möglichkeit mit den in den Geometrie-Files gespeicherten Daten weiterzuarbeiten, oder?

Bin zwar mit OpenGL nicht so fit, doch denke ich dass es sicherlich schon fertige Libraries geben wird welche alle möglichen Formate lesen und das ganze in ein VBO (Vertex Buffer Object) oder eine andere Datenstruktur bringen. Bei einer schnellen Suche nach "OpenGL load OBJ 3DS" in Google habe ich schon eine Menge links entdecken können die dir entsprechende Anhaltspunkte liefern :-)

Wenn Du eine gewisse Herausforderung suchst, kannst Du dir einen entsprechenden Importer für deine Datenstruktur auch mit einem gewissen Aufwand selbst schreiben. Wenn möglich würde ich dann als Ursprungsformat OBJ (also zuerst 3DS/MAX nach OBJ Konvertieren) wählen, da es relativ simpel aufgebaut ist (Vertices, Triangles, Materials, etc.).

Als guten Allround Konverter kann ich "3D Object Converter" empfehlen - der kostet zwar ein paar (wenige) Euros, kann dafür aber mit etlichen hunderten Formaten umgehen: http://web.axelero.hu/karpo/

Grüße,
Egon
private Nachricht | Beiträge des Benutzers
Osirisbob2406
myCSharp.de - Member



Dabei seit:
Beiträge: 35

beantworten | zitieren | melden

Hallo,

ich suche einen Konverter, der Pfade (B-Splines oder Bezier) aus 3ds Max sind eine txt kovertiert. Oder in ein anderes Format.

Der Hintergrund meiner Frag ist: ich möchte beliebige Pfade erstellen, in 3ds MAx, und die exportierte Datei dann in meinem C#-Code einlesen. Ich möchte in meinem Programm solch eine Klasse schreiben, die diese Pfade dann einliest. An diesen Pfaden möchte ich dann zb eine Box lang laufen lassen bzw. animieren. Jedoch weiss ich noch nicht aus welchem Dateiformat ich das am besten tue. Ich habe mal eine Kurve in MAX erstellt und diese dann in eine X-File, mittels Panda, exportiert. Wenn ich mir die Datei anschaue weiss ich jedoch nicht was ich da weiterverarbeiten kann. Hat jemand von euch sowas schonmal gemacht?

Vielen Dank im Voraus!!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Osirisbob2406 am .
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5985
Herkunft: Leipzig

beantworten | zitieren | melden

Da gibs mehrere Möglichkeiten:

- Exportiere deine Splines in das DWG- bzw- DXF-Format (AutoCAD), dafür gibt es meiner Meinung nach auch einen Parser bei CodeProject oder sonstwo im Internet.

- Schreib dir einen einfachen Exporter selbst mit MaxScript. Für solche Zwecke ist das relativ einfach, du gehst in einer Schleife alle Knoten der selektierten Splines ab und speicherst die Daten in einer Datei (oder gibst sie einfach im Listener aus).

Ich würde die letzte Variante vorziehen, weil du dabei das Ausgabeformat selbst bestimmten kannst und so einfach wie möglich gestalten kannst. Der Einstieg in MaxScript ist ziemlich einfach, weil jeder Befehl in 3ds max einem MaxScript-Befehl entspricht. Eine MaxScript-Referenz liegt auch im AutoDesk-Ordner.

Christian
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
Osirisbob2406
myCSharp.de - Member



Dabei seit:
Beiträge: 35

beantworten | zitieren | melden

Hallo Christian,

danke Dir für die Antwort! Ich mache es jetzt ganz anders :). Ich möchte eine ASE-Datei mit folgendem Inhalt Parsen:
*3DSMAX_ASCIIEXPORT	200
*COMMENT "AsciiExport-Version  2,00 - Fri Oct 08 08:39:01 2010"
*SCENE {
	*SCENE_FILENAME "jk.max"
	*SCENE_FIRSTFRAME 0
	*SCENE_LASTFRAME 100
	*SCENE_FRAMESPEED 30
	*SCENE_TICKSPERFRAME 160
	*SCENE_BACKGROUND_STATIC 0.0000	0.0000	0.0000
	*SCENE_AMBIENT_STATIC 0.0000	0.0000	0.0000
}
*SHAPEOBJECT {
	*NODE_NAME "Linie01"
	*NODE_TM {
		*NODE_NAME "Linie01"
		*INHERIT_POS 0 0 0
		*INHERIT_ROT 0 0 0
		*INHERIT_SCL 0 0 0
		*TM_ROW0 1.0000	0.0000	0.0000
		*TM_ROW1 0.0000	1.0000	0.0000
		*TM_ROW2 0.0000	0.0000	1.0000
		*TM_ROW3 22.4222	20.6001	0.0000
		*TM_POS 22.4222	20.6001	0.0000
		*TM_ROTAXIS 0.0000	0.0000	0.0000
		*TM_ROTANGLE 0.0000
		*TM_SCALE 1.0000	1.0000	1.0000
		*TM_SCALEAXIS 0.0000	0.0000	0.0000
		*TM_SCALEAXISANG 0.0000
	}
	*SHAPE_LINECOUNT 1
	*SHAPE_LINE 0 {
		*SHAPE_VERTEXCOUNT 3
		*SHAPE_VERTEX_KNOT	0	-20.1490	53.7415	0.0000
		*SHAPE_VERTEX_KNOT	1	28.4945	27.9187	0.0000
		*SHAPE_VERTEX_KNOT	2	58.9210	-19.8598	0.0000
	}
}
*SHAPEOBJECT {
	*NODE_NAME "Linie02"
	*NODE_TM {
		*NODE_NAME "Linie02"
		*INHERIT_POS 0 0 0
		*INHERIT_ROT 0 0 0
		*INHERIT_SCL 0 0 0
		*TM_ROW0 1.0000	0.0000	0.0000
		*TM_ROW1 0.0000	1.0000	0.0000
		*TM_ROW2 0.0000	0.0000	1.0000
		*TM_ROW3 0.1832	-6.7871	0.0000
		*TM_POS 0.1832	-6.7871	0.0000
		*TM_ROTAXIS 0.0000	0.0000	0.0000
		*TM_ROTANGLE 0.0000
		*TM_SCALE 1.0000	1.0000	1.0000
		*TM_SCALEAXIS 0.0000	0.0000	0.0000
		*TM_SCALEAXISANG 0.0000
	}
	*SHAPE_LINECOUNT 1
	*SHAPE_LINE 0 {
		*SHAPE_VERTEXCOUNT 3
		*SHAPE_VERTEX_KNOT	0	-42.3880	26.3542	0.0000
		*SHAPE_VERTEX_KNOT	1	6.2556	0.5314	0.0000
		*SHAPE_VERTEX_KNOT	2	36.6820	-47.2471	0.0000
	}
}

Ich möchte jedoch nur die Punkte der jeweiligen Linie haben, die ich angebe.Hier mein bisheriger Code:

    class Path
    {
        String f_name;
        String obj_name;
        List<Vector3> punkte = new List<Vector3>();

        private int line_num_obj_name = 0;
        private int line_num_shapeobj = 0;
        private int counterzahl = 0;
        private int gesamt_zeilen = 0;
        

        public Path()
        {
            this.f_name = "";
            this.obj_name = "";
            this.punkte = null;
        }

        public Path(String f_name, String obj_name)
        {
            this.f_name = f_name;
            this.obj_name = obj_name;
            this.punkte = null;
            Loadpath(f_name, obj_name);
        }

        public void Loadpath(String f_name, String obj_Name)
        {
            StreamReader stream = new StreamReader(f_name);
            string line = "";
            int gesamt_zeilen = 0;

            while ((line = stream.ReadLine()) != null)
            {
                gesamt_zeilen++;
            }

            try
            {
                while ((line = stream.ReadLine()) != null)
                {
                    counterzahl++;
                    //Console.WriteLine(counterzahl);
                    if (line.Contains(obj_Name))
                    {
                        line_num_obj_name = counterzahl;

                        for (int i = line_num_obj_name; i < gesamt_zeilen; i++)
                        {
                            if (line.Contains("*SHAPE_LINE 0"))
                            {
                                line_num_shapeobj = i;
                                Console.WriteLine(line_num_shapeobj);
                            }
                        }
                    }
                    Console.WriteLine(counterzahl);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Kein Objekt mit diesem Namen gefunden", e);
            }

        }

Also vorweg, mir ist klar, dass der Code wie er da ist nicht funktioniert. :) War nur ein Test. Ich komme leider nicht weiter. Ich brauche nur die Punkte eines Objektes aus der ASE Datei und möchte die in die Liste speichern. Ist bestimmt ne ganz blöde Kleinigkeit. Bin auch nicht gerade sehr Programmiererfahren aber möchte es werden.

Könnt ihr mir helfen?

Gruß,

Robbie
private Nachricht | Beiträge des Benutzers