Three.js: FBX-Binärformat wird nicht unterstützt?

Erstellt am 14. Okt. 2016  ·  100Kommentare  ·  Quelle: mrdoob/three.js

Beschreibung des Problems

qq 20161014151051

FBXLoader unterstützt nur das FBX-Textformat?

Three.js-Version
  • [ ] Dev
  • [x] r81
  • [ ] ...

    Browser
  • [x] Alle

  • [ ] Chrom
  • [ ] Feuerfuchs
  • [ ] Internet Explorer

    Betriebssystem
  • [x] Alle

  • [ ] Fenster
  • [ ] Linux
  • [ ] Android
  • [ ] iOS
    Hardwareanforderungen (Grafikkarte, VR-Gerät, ...)
Enhancement

Hilfreichster Kommentar

Ich werde ab April wieder am FBX Binary Parser arbeiten.
LMK, wenn es jemand eilig hat.

Alle 100 Kommentare

Jawohl. Derzeit unterstützt FBXLoader nur das ASCII-Format in Version 7.

Three.js-Version: r77

qq 20161014175807

Wieso den?

/ping @yamahigashi

Wieso den?

weil es keine Referenz-Open-Source-Implementierung gibt? wenn du eins kennst, würde ich mich freuen es zu sehen.

Ah, warte, ich dachte, es geht um binäre. Für ASCII FBX unter v7 hatte ich den Code hier und eine Reihe von Testmodellen irgendwo auf meiner Festplatte.

Jemand hier, der binäre FBX-Parser gemacht hat oder macht?
Wenn nicht, habe ich Lust, das zu versuchen...

Sie müssen Reverse Engineering lieben, um dies zu tun ) und Sie können Glück haben, wenn es sich um einfache Tags handelt, aber wenn sie jeden Datentyp eindeutig serialisieren, sind Sie richtig: Sie müssen eine Zahl pro Modell optimieren und speichern um zu sehen, was sich geändert hat, auf einmal.

Danke für den Hinweis.
Ich habe es geschafft, einen FBX-Binärparser zu erstellen, indem ich diese Site jetzt gesehen habe.

https://code.blender.org/2013/08/fbx-binary-file-format-specification/

Ich werde versuchen, ObjectParser zu erstellen, der ein Objekt erstellt
aus dem Ergebnis des binären Parsers als nächstes.

oh wow, jemand ist schon durch die hölle gegangen und es gibt spezifikationen)

https://banexdevblog.wordpress.com/2014/06/23/a-quick-tutorial-about-the-fbx-ascii-format/
Ich denke, dieser Link ist auch großartig, um das zu tun.

@takahirox Es wäre toll, wenn der neue Parser eine ähnliche Struktur wie THREE.PLYLoader . Diese Implementierung verwendet eine einheitliche Logik zum Erstellen des THREE.BufferGeometry Objekts nach dem Parsen der Daten aus einer ASCII- oder Binäreingabe (siehe Verwendung der Methode handleElement ).

OK, ich werde es versuchen. Und ich überlege, ob ich das auch für MMDLoader .

Übrigens, weiß hier jemand, ob das FBX-Binärformat auch unter Version 7 gleich bleibt?

Ich habe keine Ahnung.

Vielleicht weiß @mrdoob Bescheid?

@takahirox hast du deinen binären fbx-Parser irgendwo geteilt?

Noch nicht... mach ich bald!

@takahirox Irgendwelche Updates :) ? Vielen Dank!

Tut mir leid, dass ich in letzter Zeit beschäftigt war... aber bald!

@takahirox Genial \ o/

Ich werde ab April wieder am FBX Binary Parser arbeiten.
LMK, wenn es jemand eilig hat.

@takahirox Hast du etwas

Hallo @takahirox Ich habe es wirklich eilig, gibt es dazu ein Update? Ich kann helfen, wo ich kann, aber das ist alles noch neu für mich.

Ich fange gerade wieder an, daran zu arbeiten.
Zumindest brauche ich noch einige Wochen, um das zu teilen.

Wie viele Wochen meinst du?

Hm, vielleicht zwei oder drei Wochen?

Nur aus Neugier, könnte das in einer Woche oder so fertig sein, wenn ich einen Teil der Entwicklungsarbeit sponsern könnte?

Nun, ich kann es nicht versprechen, aber ich werde es versuchen.
Haben Sie bestimmte Modelldaten, die Sie teilen können?
Möchte mit ihnen als Referenz arbeiten.

testdatei.fbx.zip
Das ist ähnlich wie das, was wir brauchen, wenn es hilft

In der Zwischenzeit...

Für https://with.in/watch/under-neon-lights/ haben wir Klartext-FBX verwendet, aber wir haben die Erweiterung in .fbx.txt geändert, damit der Server es gzip würde. Ich habe auch ziemlich viel der FBXLoader2 optimiert. Am Ende war es ein ziemlich anständiger Workflow.

Ich frage mich, ob es etwas gibt, das FBXLoader unterstützt, das FBXLoader2 nicht unterstützt oder wir es bereits ersetzen können ...

@kyle-larson?

Randnotiz: Das FBX- Beispiel verwendet auch bereits FBXLoader2 .

@mrdoob Der einzige Unterschied zwischen FBXLoader und FBXLoader2 besteht in der Verwendung von Indexpuffern. FBXLoader2 verwendet keine Indexpuffer. Abgesehen davon sollte FBXLoader2 alle Funktionen des vorherigen Loaders enthalten.

Ah! Dann ist es Zeit, es zu ersetzen

Gibt es ein Update zu diesen Jungs? Ich helfe gerne, wo ich kann.

Haben Sie eine Textdateiversion von testfile.fbx.zip?
Ich möchte vergleichen.

Fortschritt des Binärparsers...

image

@adam-clarey

Kannst du den Screenshot des Modells teilen?
Selbst die Textdatei konnte nicht auf die Three.js geladen werden.

Screenshot eines anderen Modells....

image

Modell: https://free3d.com/3d-model/robot-2162.html

Gut aussehen! 😀

Danke euch allen!

Ich versuche demnächst einen Screenshot hochzuladen. Im Wesentlichen besteht mein Anwendungsfall darin, Materialbilder und Modelle in einer einzigen Datei zu bündeln

block.fbx.zip
screen shot 2017-05-05 at 15 19 12

Hier ist ein einfacher Block mit einem in die fbx eingebrannten Bildmaterial mit einem begleitenden Bild, wie es in Blender aussieht

Du meinst, die Texturbilddaten sollten in der fbx-Datei sein?

Jawohl. Ich habe dieses Modell möglicherweise falsch exportiert

Ich kann die Bilddaten in den fbx-Binärdaten nicht finden ...
Lassen Sie mich wissen, ob jemand die Spezifikation von gebackenen Texturbilddaten kennt.

vielleicht versuch das mal
block2.fbx.zip

Kann immer noch nicht finden...
Können diese Dateien auf andere Viewer geladen werden?

Bitte lassen Sie es mich wissen, wenn jemand die Spezifikation von gebackenen Texturbilddaten kennt.

Ich habe gerade versucht, block2.fbx.zip mit Mixer und mit 3ds max zu öffnen. Beide zeigen nur den Dateinamen, aber kein Bild. Es scheint, dass die Datei nur den Verweis auf .../Users/adamclarey/Documents/burger-screen.jpg enthält.

Ja, mein Parser extrahiert den Dateinamen, aber keine Bilddaten.

Okay. Ich mache offensichtlich etwas falsch. Blender ist nicht die intuitivste App. ich probiere was anderes

Ich habe noch nie gehört, dass Bilddaten in ein 3D-Export-/Importformat gebacken werden können (aber nur relative Pfade zu den Ressourcen).

Ist das überhaupt möglich?

Mir ist gerade aufgefallen: Es ist möglich.

Ich werde eine solche Testdatei erstellen und hier posten.

Tolles Zeug.

Diese FBX wurde in 3ds max erstellt und mit der Option "Medien einbetten" exportiert:
TestcubeWithImage.zip

Screenshot von 3ds max:

testcubescreenshot

Im Mixer geöffnet (auf einer anderen Maschine):

screenshot_blender

In Blender habe ich bisher keine Option zum Exportieren einer FBX mit gebackenen Bildern entdeckt. Vielleicht muss vor dem Export gebacken werden? - Ich habe keine Erfahrung mit Mixer.

@takahirox Hier ist die gleiche Datei, die auch in 3ds max erstellt, aber ohne die Option "Medien einbetten" exportiert wurde:

Testcube.zip

Für Vergleichszwecke könnte es interessant sein.

Wenn Sie andere Dateien zum Testen benötigen, können Sie diese gerne hier posten.

Ich habe unter der Eigenschaft Video.ID.properties.Content von TestcubeWithImage.fbx Daten gefunden, die wie Bilddaten aussehen.
Dies ist in anderen Binärdateien, die in diesem Thread gepostet wurden, nicht vorhanden.

ich schau mal genauer hin...

image

Fortschritt...

image

Die eingebettete Textur sieht jetzt also in Ordnung aus.
Kann jemand die binäre fbx einschließlich Animation teilen, wenn Sie haben?

Hier sind 3 Testdateien mit verschiedenen Arten von Keyframe-Animationen:

AnimationTranslate.zip
AnimationMorph.zip
AnimationBones.zip

Aber leider habe ich es nicht geschafft, Dateien zu erzeugen, die sich in verschiedenen Programmen gleich verhalten.

Sie sind alle mit 3ds max erstellt.

  • Beim erneuten Importieren in 3ds max ist alles in Ordnung.
  • Das AnimationTranslate-Beispiel ist in Blender und Clara.io in Ordnung.
  • Das AnimationMorph-Beispiel ist in Blender in Ordnung, aber die Animation funktioniert nicht in Clara.io.
  • Das AnimationBones-Beispiel ist in Clara.io in Ordnung, aber in Blender ist die Animation nicht ganz in Ordnung.

@takahirox Unser Team sucht seit einiger Zeit nach einem drei.js-binären FBX-Parser, und dieser sieht großartig aus! Hast du die Quelle schon irgendwo verfügbar gemacht? Für unsere Zwecke müssen wir in der Lage sein, die Meshes, die Normals, UVs und die visuelle Szene aus der FBX zu extrahieren, und das scheint gut zu funktionieren.

Wenn die Quelle verfügbar ist, wäre es toll, wenn Sie mich darauf hinweisen könnten, wo sie ist.

Danke für die tolle Arbeit!

https://github.com/takahirox/three.js/blob/FixLoaderBinaryParser/examples/js/loaders/FBXLoader2.js

Beachten Sie, dass dies sehr zeitlich ist.
Ich muss den Code aufräumen und optimieren.
Und die Funktionalität könnte jetzt gebrochen sein.

@takahirox Bitte beachte: Nach einigen Tests in verschiedenen Programmen habe ich meinen vorherigen Kommentar aktualisiert.

@jostschmithals

Vielen Dank.
Translate und Bone scheinen jetzt zu funktionieren.
FBXLoader unterstützt noch keine Morph-Animation, auch nicht mit ASCII-Dateien.
Es wäre unsere nächste Arbeit....

Ich habe versucht, die Testcube-Datei in mein Three.js-Projekt zu laden, aber nichts wird geladen.
Ich erhalte einen 404 in der Bilddatei, nachdem ich das FBXTree-Objekt untersucht habe, kann ich sehen, dass es immer noch einen Verweis auf den absoluten Dateipfad enthält.

screen shot 2017-05-07 at 15 01 23
screen shot 2017-05-07 at 14 59 00

Ich habe es gerade getestet (auf einem Computer, auf dem das Original-JPG nicht verfügbar ist) und es funktioniert gut.

Hinweis: Sie müssen verwenden
https://github.com/takahirox/three.js/blob/FixLoaderBinaryParser/examples/js/loaders/FBXLoader2.js ,
aber der Loader heißt einfach THREE.FBXLoader (ohne Versionsnummer 2).

Das verwende ich. ich recherchiere weiter

TestcubeWithImage.fbx ausprobieren
Testcube.fbx enthält keine Bilddaten, daher sollten Sie 404 erhalten

@ In meinem Test, der gut funktioniert, erhalte ich genau die gleiche Konsolenausgabe wie @adam-clarey - außer der Nachricht GET ... 404 .

Übrigens: Ich habe unter Windows 10 getestet.

Fortschritt...
Animation scheint jetzt gut zu funktionieren 😄

image

Können Sie bitte den Code einfügen, den Sie zum Laden des Modells verwenden? Aus irgendeinem Grund lädt es bei mir einfach nicht.

Ich habe versucht, die Testcube-Datei in das Beispiel webgl_loader_fbx.html zu ersetzen (auch die Datei FBXLoader2.js auszutauschen), und das Modell wird immer noch nicht gerendert.

@adam-clarey Genau das habe ich gemacht (natürlich die Animationen deaktiviert) und es hat ohne weitere Änderungen funktioniert.

wie bizarr...

screen shot 2017-05-08 at 09 50 40

Und es ist sicher, dass Sie TestcubeWithImage.fbx verwenden (wie @takahirox darauf hingewiesen hat)?
Irgendwelche weiteren Fehlermeldungen?
Welches Betriebssystem verwendest du?
In allen Browsern gleich?

AAHHH, was bin ich doch für ein Dummkopf! Ich habe einfach nach oben gescrollt, bis ich die erste Testcube-Datei gefunden habe.

Mein Fehler

Hi! Ich erhalte diesen Fehler auch, wenn ich versuche, ein externes .fbx-Modell zu laden, das aus Autodesk exportiert wird. Kann mir jemand eine Lösung dafür geben

Dankeschön!

https://github.com/takahirox/three.js/blob/FixLoaderBinaryParser/examples/js/loaders/FBXLoader2.js
Beachten Sie, dass dies sehr zeitlich ist.
Ich muss den Code aufräumen und optimieren.
Und die Funktionalität könnte jetzt gebrochen sein.

@hmtri1011

@RicoLiu Das habe ich bei der Verwendung von THREE.FBXLoader erhalten. Ich habe ein loader_fbx-Beispiel implementiert, indem ich die URL des Modells ersetzt habe.

Und als ich THREE.FBXLoader2 benutzte, bekam ich den Fehler THREE.FBXLoader2 is not a constructor

image

Sie können das webgl_loader_fbx.example verwenden:

  1. laden https://github.com/takahirox/three.js/blob/FixLoaderBinaryParser/examples/js/loaders/FBXLoader2.js
    statt der FBXLoader2.js des aktuellen Threejs-Zweigs,
  2. verwende THREE.FBXLoader ( ohne die Versionsnummer 2! ),
  3. (deaktivieren Sie die Animationen, wenn Ihr Modell keine Animationen enthält),

und es sollte funktionieren.

@jostschmithals Ich folge deinem Schritt und Zlib is not defined

Scheint, dass Ihre Modelldatei komprimiert ist?

image
Voller Fehler was ich bekomme

Fügen Sie diese Zeile in Ihr Beispiel ein.

    <script src="js/libs/zlib_and_gzip.min.js"></script>

image
Fertig und ein weiterer Fehler ist aufgetreten.... :(

Wie ich oben geschrieben habe, müssen Sie den Animationscode (im Ladeabschnitt und in der Renderschleife) deaktivieren, wenn Sie den Beispielcode mit einer Modelldatei verwenden, die keine Animationen enthält.

Ich habe ein anderes Problem, das mit den Materialien zusammenhängt. Mein Problem ist, dass unter bestimmten Bedingungen einige fbx-Modelle rendern und andere nicht.

Fortpflanzen:
Fügen Sie in der Beispieldatei webgl_loader_fbx.html direkt in init() den folgenden Code ein, um eine Umgebung zu erstellen

 var loadSkyDomeAndGroundBowl = function(scene, onLoad, onProgress, onError) {
                var pathtop="path/to/top.jpg";
                var pathbot="path/to/bottom.jpg";
                var radius=40;
                var bottomtopfactor=0.1;
                var sinkin=0.05;

                var texturetop;
                var texturebot;

                var onTextureLoadTop=function(texture) {
                  console.log('onTextureLoadTop');
                  texturetop=texture;
                  onTextureLoaded();
                };
                var onTextureLoadBot=function(texture) {
                  console.log('onTextureLoadBot');
                  texturebot=texture;
                  onTextureLoaded();
                };

                var onTextureProgress=function(xhr) {
                  console.log('onTextureProgress');
                  if(onProgress)
                    onProgress('Loading sky dome / ground bowl texture');
                };
                var onTextureError=function(xhr) {
                  console.log('onTextureError');
                  if(onError)
                    onError('Error loading sky dome / ground bowl texture');
                };

                var onTextureLoaded=function() {
                  console.log('onTextureLoaded');
                  if(texturetop && texturebot) {
                    console.log('onTextureLoaded 2');
                    var geometrytop = new THREE.SphereGeometry( radius*10, 600, 400, 0, Math.PI*2, 0, Math.PI*0.5);
                    var materialtop = new THREE.MeshBasicMaterial();

                    materialtop.map = texturetop;
                    materialtop.side = THREE.BackSide;
                    var skydome = new THREE.Mesh( geometrytop, materialtop );
                    skydome.position.y=bottomtopfactor*radius+sinkin;
                    scene.add( skydome );

                    var geometrybot = new THREE.SphereGeometry( radius, 60, 40, 0, Math.PI*2, Math.PI*0.5, Math.PI*0.5);
                    var materialbot = new THREE.MeshBasicMaterial();
                    materialbot.map = texturebot;
                    materialbot.side = THREE.BackSide;
                    var groundbowl = new THREE.Mesh( geometrybot, materialbot );
                    groundbowl.scale.set(1,bottomtopfactor,1);
                    groundbowl.position.y=bottomtopfactor*radius+sinkin;
                    scene.add( groundbowl );

                    if(onLoad)
                      onLoad();
                  }
                };

                var loader=new THREE.TextureLoader();
                loader.load(pathtop, onTextureLoadTop, onTextureProgress, onTextureError);
                loader.load(pathbot, onTextureLoadBot, onTextureProgress, onTextureError);
              }

Was im Grunde nur einen Skydome und einen Boden mit 2 Bildern hinzufügt.

Führen Sie nach der Initialisierung der Szene Folgendes aus: loadSkyDomeAndGroundBowl(scene);

Sie werden sehen, dass die 2 fbx-Modelle in dieser neuen Umgebung gut geladen und gerendert werden.

Wenn Sie nun die xsi_man_skinning.fbx-Referenz durch die TestcudeWithImages.fbx ersetzen (auch Animationscode auskommentieren), werden Sie feststellen, dass der Code überhaupt nicht gerendert wird.

Das ist mir auch bei anderen fbx-Dateien aufgefallen. Binäre fbx-Dateien scheinen nicht mit Umgebungen kompatibel zu sein.

Oder ich könnte einfach etwas falsch machen...
(und ja, es wird die neueste FBXLoader2-Datei verwendet)

Das ist mein Beispielcode:
`



Three.js - FBXLoader-Test
<script src="../build/three.js"></script>

<script src="js/controls/OrbitControls.js"></script>

<script src="js/curves/NURBSCurve.js"></script>
<script src="js/curves/NURBSUtils.js"></script>
<script src="js/loaders/FBXLoader2.js"></script>

<script src="js/Detector.js"></script>
<script src="js/libs/stats.min.js"></script>
<script src="js/libs/zlib_and_gzip.min.js"></script>
<script>
    if (!Detector.webgl) Detector.addGetWebGLMessage();

    var container, stats, controls;
    var camera, scene, renderer, light;

    var clock = new THREE.Clock();

    var mixers = [];

    init();

    function init() {

        container = document.createElement('div');
        document.body.appendChild(container);

        camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 2000);

        scene = new THREE.Scene();

        // grid
        var gridHelper = new THREE.GridHelper(28, 28, 0x303030, 0x303030);
        gridHelper.position.set(0, - 0.04, 0);
        scene.add(gridHelper);

        // stats
        stats = new Stats();
        container.appendChild(stats.dom);

        // model
        var manager = new THREE.LoadingManager();
        manager.onProgress = function (item, loaded, total) {

            console.log(item, loaded, total);

        };

        var onProgress = function (xhr) {

            if (xhr.lengthComputable) {

                var percentComplete = xhr.loaded / xhr.total * 100;
                console.log(Math.round(percentComplete, 2) + '% downloaded');

            }

        };

        var onError = function (xhr) {

            console.error(xhr);

        };

        var loader = new THREE.FBXLoader(manager);
        loader.load('models/fbx/accient_2_full.fbx', function (object) {

            //object.mixer = new THREE.AnimationMixer(object);
            //mixers.push(object.mixer);

            //var action = object.mixer.clipAction(object.animations[0]);
            //action.play();

            scene.add(object);


        }, onProgress, onError);

        loader.load('models/fbx/nurbs.fbx', function (object) {

            scene.add(object);

        }, onProgress, onError);

        renderer = new THREE.WebGLRenderer();
        renderer.setPixelRatio(window.devicePixelRatio);
        renderer.setSize(window.innerWidth, window.innerHeight);
        renderer.setClearColor(0x000000);
        container.appendChild(renderer.domElement);

        // controls, camera
        controls = new THREE.OrbitControls(camera, renderer.domElement);
        controls.target.set(0, 12, 0);
        camera.position.set(2, 18, 28);
        controls.update();

        window.addEventListener('resize', onWindowResize, false);

        light = new THREE.HemisphereLight(0xffffff, 0x444444, 1.0);
        light.position.set(0, 1, 0);
        scene.add(light);

        light = new THREE.DirectionalLight(0xffffff, 1.0);
        light.position.set(0, 1, 0);
        scene.add(light);

        //animate();

    }

    function onWindowResize() {

        camera.aspect = window.innerWidth / window.innerHeight;
        camera.updateProjectionMatrix();

        renderer.setSize(window.innerWidth, window.innerHeight);

    }

    //

    function animate() {

        requestAnimationFrame(animate);

        if (mixers.length > 0) {

            for (var i = 0; i < mixers.length; i++) {

                mixers[i].update(clock.getDelta());

            }

        }

        stats.update();

        render();

    }

    function render() {

        renderer.render(scene, camera);

    }
</script>

`

@jostschmithals kannst du mir dafür eine richtige Lösung geben. Ich deaktiviere auch den Animationscode

@adam-clarey Ich habe es getestet, und der Grund, warum Sie den Würfel nicht sehen können, ist, dass er unter der Grundebene sitzt (wenn Sie ihn mit der Kamera umkreisen, sollten Sie ihn sehen). Ansonsten funktioniert bei mir mit deinem Code alles einwandfrei.

@takahirox : Das Netz innerhalb der von FBXLoader erstellten Gruppe wird verschoben und gedreht, sodass der Drehpunkt nicht wie im Originalmodell in der Mitte des Würfels platziert wird, sondern in der Mitte seiner Oberseite. Das scheint ein kleiner Bug zu sein?

(das Bild wird jedoch oben korrekt angezeigt ...)

@hmtri1011 Sie haben Ihre animate()-Funktion deaktiviert. Daher wird deine Szene überhaupt nicht gerendert 😉

(In diesem Fall sollte es ausreichen, nur die Zeilen zu deaktivieren, die Sie bereits auskommentiert haben.)

@jostschmithals tks :D es funktioniert jetzt

Guter Ort @jostschmithals , danke.

Sollte es eine Rolle spielen, um welche Binärversion es sich bei der Datei handelt? Ich habe fbx-Dateien mit Version 7400, die gut gerendert werden, aber eine mit Version 7500 und Fehler.

"FBXLoader: Unbekannter Eigenschaftstyp"
wobei die Variable 'Typ' eine leere Zeichenfolge ist

@adam-clarey Ich habe keine detaillierten Kenntnisse über fbx. Ich habe mich diesem Thread nur angeschlossen, weil ich die Frage interessant fand, ob/wie man Bilddaten in die Modelldatei einbacken könnte. Daher möchte ich diese Frage gerne an @takahirox weiterleiten.

Ich weiß, dass die Angabe von >=7500 etwas anders ist als <7500, und
arbeite daran, um >= 7500 zu unterstützen.
Können Sie die Binärmodelldaten der Version 7500 für den Test freigeben?

Nach weiteren Tests scheinen 7200 und 7500 in Ordnung zu sein.

6100 und 7300 rendern jedoch nicht.
house_fs.fbx.zip
DutchHouse.FBX.zip

Würden Sie die Dateien der ASCII-Version freigeben?
Wir können klären, ob das Problem binärspezifisch ist oder nicht.

Und ich hoffe, wir schließen dieses Problem, weil FBXLoader jetzt Binärdateien unterstützt (vielleicht aber noch nicht perfekt).
Lassen Sie uns ein weiteres Problem für die Verbesserung von FBXLoader .

@takahirox Klingt gut!

@adam-clarey
Ich glaube, ich habe diesen Fehler.

"FBXLoader: Unbekannter Eigenschaftstyp"
wobei die Variable 'Typ' eine leere Zeichenfolge ist

in FBXLoader.js
ändern

            while ( ! this.endOfContent( reader ) ) {

                var node = this.parseNode( reader, version );
                if ( node !== null ) 
                    allNodes.add( node.name, node );
                else
                    break;

            }

11956

Hallo alle zusammen,
Mir ist aufgefallen, dass FBXLoader nur FBX-Dateien mit >= 7.0 unterstützt.
Jetzt möchte ich eine fbx-Datei unter 7.0 laden. Sagen Sie bitte, wie das geht.
Hier sind meine fbx-Dateien https://github.com/nxhoang/Three.js-Fxb-and-Textures/tree/master/models/fbx
Danke vielmals.

@nxhoang wie hier besprochen, unterstützen wir nur FBX-Versionen über 6100 (Binär) oder 7000 (ASCII).

Wenn Sie ältere FBX-Dateien verwenden müssen, müssen Sie diese aktualisieren (am besten dazu in 3ds max oder Maya laden) oder in ein anderes Format konvertieren.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

seep picture seep  ·  3Kommentare

filharvey picture filharvey  ·  3Kommentare

fuzihaofzh picture fuzihaofzh  ·  3Kommentare

donmccurdy picture donmccurdy  ·  3Kommentare

yqrashawn picture yqrashawn  ·  3Kommentare