Three.js: تنسيق FBX الثنائي غير مدعوم؟

تم إنشاؤها على ١٤ أكتوبر ٢٠١٦  ·  100تعليقات  ·  مصدر: mrdoob/three.js

وصف المشكلة

qq 20161014151051

يدعم FBXLoader تنسيق نص FBX فقط؟

إصدار Three.js
  • [] ديف
  • [x] r81
  • [] ...

    المستعرض
  • [x] كل منهم

  • [ ] كروم
  • [ ] ثعلب النار
  • [ ] متصفح الانترنت

    نظام التشغيل
  • [x] كل منهم

  • [ ] شبابيك
  • [] لينكس
  • [ ] ذكري المظهر
  • [] IOS
    متطلبات الأجهزة (بطاقة الرسومات ، جهاز VR ، ...)
Enhancement

التعليق الأكثر فائدة

سأبدأ العمل على المحلل اللغوي الثنائي لـ FBX مرة أخرى اعتبارًا من أبريل.
LMK إذا كان أي شخص في عجلة من أمره.

ال 100 كومينتر

نعم فعلا. الآن يدعم FBXLoader تنسيق ASCII في الإصدار 7 فقط.

إصدار Three.js: r77

qq 20161014175807

لماذا ا؟

/ pingyamahigashi

لماذا ا؟

لأنه لا يوجد تنفيذ مرجعي مفتوح المصدر؟ إذا كنت تعرف واحدًا ، فسأكون فضوليًا لرؤيته.

آه ، انتظر ، اعتقدت أن الأمر يتعلق بالثنائي. بالنسبة إلى ASCII FBX أدناه الإصدار 7 ، كان لدي الرمز هنا ومجموعة من نماذج الاختبار في مكان ما في محرك الأقراص الثابتة.

أي شخص هنا قام أو يقوم بعمل محلل ثنائي في FBX؟
إذا لم يكن الأمر كذلك ، فأنا أشعر أنني أحاول فعل ذلك ...

عليك أن تحب أشياء الهندسة العكسية للقيام بذلك) ، وقد تكون محظوظًا إذا كانت علامات بسيطة ، ولكن إذا كانت تسلسل كل نوع بيانات بشكل فريد ، فأنت مناسب: أنت تواجه التغيير والتبديل في رقم واحد لكل نموذج وحفظه لنرى ما الذي تغير في وقت واحد.

شكرا على النصيحة.
لقد حققت إنشاء محلل ثنائي لـ FBX من خلال رؤية هذا الموقع الآن.

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

سأحاول أن أجعل ObjectParser الذي يصنع كائنًا
من نتيجة المحلل اللغوي الثنائي التالي.

أوه ، لقد مر شخص ما بالفعل في الجحيم ، وهناك مواصفات)

https://banexdevblog.wordpress.com/2014/06/23/a-quick-tutorial-about-the-fbx-ascii-format/
أعتقد أن هذا الرابط هو أيضًا أشياء رائعة للقيام بذلك.

takahirox سيكون رائعًا لو كان للمحلل اللغوي الجديد بنية مشابهة مثل THREE.PLYLoader . يستخدم هذا التنفيذ منطقًا موحدًا لإنشاء كائن THREE.BufferGeometry بعد تحليل البيانات من إدخال ASCII أو إدخال ثنائي (راجع استخدام الطريقة handleElement ).

حسنا سأحاول. وأنا أفكر إذا كان بإمكاني أيضًا استخدام ذلك مقابل MMDLoader .

راجع للشغل هل يعرف أي شخص هنا ما إذا كان التنسيق الثنائي FBX يظل كما هو حتى أقل من الإصدار 7؟

ليس لدي فكره.

ربما يعرف mrdoob ؟

takahirox هل قمت بمشاركة محلل fbx الثنائي الخاص بك في أي مكان؟

ليس بعد ... سأفعل قريبا!

takahirox أي تحديثات :)؟ شكرا!

آسف لقد كنت مشغولا مؤخرا ... ولكن قريبا!

takahirox رائع \ س /

سأبدأ العمل على المحلل اللغوي الثنائي لـ FBX مرة أخرى اعتبارًا من أبريل.
LMK إذا كان أي شخص في عجلة من أمره.

takahirox هل لديك شيء خشن تشاركه؟ نحن نقدم عرضًا تقديميًا في نهاية الأسبوع ويمكن حقًا استخدام التحميل الثنائي لـ FBX للعرض التوضيحي.

مرحبًا takahirox ، أنا في عجلة من

لقد بدأت للتو في العمل على ذلك مرة أخرى.
على الأقل ، ما زلت بحاجة إلى بضعة أسابيع لمشاركة ذلك.

كم عدد الأسابيع في رأيك؟

حسنًا ، ربما أسبوعين أو ثلاثة أسابيع؟

بدافع الفضول فقط ، هل يمكن أن يتم ذلك في غضون أسبوع أو نحو ذلك إذا كنت قادرًا على رعاية بعض أعمال التطوير؟

حسنًا ، لا يمكنني أن أعدك لكنني سأحاول.
هل لديك أي بيانات نماذج محددة يمكنك مشاركتها؟
تريد العمل معهم كمرجع.

testfile.fbx.zip
هذا مشابه لما نحتاجه إذا كان يساعد

في هذه الأثناء...

بالنسبة إلى https://with.in/watch/under-neon-lights/ استخدمنا FBX بنص عادي ولكننا غيرنا الامتداد إلى .fbx.txt حتى يقوم الخادم بتنسيق gzip. لقد قمت أيضًا بتحسين FBXLoader2 . انتهى به الأمر إلى أن يكون سير عمل لائقًا جدًا.

وأتساءل عما إذا كان هناك أي شيء FBXLoader الدعم الذي FBXLoader2 لا أو أننا يمكن أن تحل محل ذلك بالفعل ...

@ كايل لارسون؟

ملاحظة جانبية: مثال FBX يستخدم بالفعل FBXLoader2 أيضًا.

mrdoob الاختلاف الوحيد بين FBXLoader و FBXLoader2 هو استخدام مخازن الفهرس المؤقتة. لا يستخدم FBXLoader2 المخازن المؤقتة للفهرس. بخلاف ذلك ، يجب أن يتضمن FBXLoader2 جميع ميزات أداة التحميل السابقة.

آه! حان الوقت لاستبداله ثم 👌

هل هناك أي تحديث على هؤلاء الرجال؟ يسعدني المساعدة حيث يمكنني ذلك.

هل لديك نسخة ملف نصي من testfile.fbx.zip؟
اريد المقارنة.

تقدم المحلل الثنائي ...

image

@ adam-clarey

هل يمكنك مشاركة لقطة الشاشة للنموذج؟
حتى الملف النصي لا يمكن تحميله على Three.js.

لقطة شاشة لنموذج آخر ....

image

النموذج: https://free3d.com/3d-model/robot-2162.html

تبدو جيدة! 😀

شكرا لكم جميعا!

سأحاول تحميل لقطة شاشة قريبًا. تتمثل حالة الاستخدام الخاصة بي بشكل أساسي في القدرة على تجميع الصور المادية والنموذج في ملف واحد

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

هذه كتلة بسيطة بها صورة مادة مخبوزة في fbx مع صورة مصاحبة لما تبدو عليه في الخلاط

تقصد ، يجب أن تكون بيانات صورة النسيج في ملف fbx؟

نعم فعلا. ربما قمت بتصدير هذا النموذج بشكل غير صحيح

لا يمكنني العثور على بيانات الصورة في البيانات الثنائية fbx ...
اسمحوا لي أن أعرف ما إذا كان أي شخص يعرف مواصفات بيانات صورة النسيج المخبوزة.

ربما جرب هذا
block2.fbx.zip

لا يزال يتعذر العثور ...
هل هذه الملفات قابلة للتحميل على مشاهدين آخرين؟

يرجى إعلامي إذا كان أي شخص يعرف مواصفات بيانات صورة الملمس المخبوزة.

لقد حاولت للتو فتح block2.fbx.zip مع الخلاط و 3 ds max. كلاهما يظهر اسم الملف فقط ، لكن لا يظهر أي صورة. يبدو أنه لا يوجد سوى الإشارة إلى .../Users/adamclarey/Documents/burger-screen.jpg في الملف.

نعم ، يقوم المحلل اللغوي الخاص بي باستخراج اسم الملف ولكن لا توجد بيانات للصورة.

نعم. من الواضح أنني أفعل شيئًا خاطئًا. Blender ليس التطبيق الأكثر سهولة في الاستخدام. سأحاول شيئًا آخر

لم أسمع أبدًا أنه يمكن تخزين بيانات الصورة في تنسيق تصدير / استيراد ثلاثي الأبعاد (ولكن فقط المسارات النسبية للمصادر).

هل هذا ممكن حتى؟

لقد لاحظت للتو: هذا ممكن.

سأقوم بإنشاء ملف الاختبار هذا ونشره هنا.

أشياء عظيمة.

تم إنشاء FBX هذا في 3ds max وتم تصديره باستخدام خيار "تضمين الوسائط":
TestcubeWithImage.zip

لقطة شاشة من 3ds max:

testcubescreenshot

يفتح في الخلاط (على آلة مختلفة):

screenshot_blender

في الخلاط ، لم أجد خيارًا لتصدير FBX بصور مخبوزة حتى الآن. ربما يجب عمل الخبز قبل التصدير؟ - ليس لدي خبرة في الخلاط.

takahirox هنا هو نفس الملف ، تم إنشاؤه أيضًا في 3ds max ، ولكن تم تصديره بدون خيار "embed media":

Testcube.zip

قد يكون من المثير للاهتمام مقارنة الأغراض.

إذا كنت بحاجة إلى ملفات أخرى للاختبار ، فلا تتردد في نشرها هنا.

لقد وجدت بيانات تشبه بيانات الصورة ضمن خاصية Video.ID.properties.Content الخاصة بـ TestcubeWithImage.fbx.
هذا غير موجود في الملفات الثنائية الأخرى المنشورة في هذا الموضوع.

سألقي نظرة فاحصة ...

image

تقدم ... 😄

image

لذا ، يبدو النسيج المضمن جيدًا الآن.
هل يمكن لأي شخص مشاركة fbx الثنائي بما في ذلك الرسوم المتحركة إذا كان لديك؟

فيما يلي 3 ملفات اختبار بأنواع مختلفة من الرسوم المتحركة للإطارات الرئيسية:

AnimationTranslate.zip
الرسوم المتحركة
AnimationBones.zip

لكن للأسف لم أتمكن من إنتاج ملفات تعمل بنفس الطريقة في برامج مختلفة.

تم إنشاؤها جميعًا باستخدام 3ds max.

  • كل شيء على ما يرام عند إعادة الاستيراد إلى 3ds max.
  • مثال AnimationTranslate مقبول في Blender و Clara.io.
  • مثال AnimationMorph مقبول في Blender ، لكن الرسوم المتحركة لا تعمل في Clara.io.
  • مثال AnimationBones مقبول في Clara.io ، لكن الرسوم المتحركة ليست جيدة تمامًا في Blender.

takahirox فريقنا يبحث عن محلل ثلاثي FBX ثنائي. منذ فترة حتى الآن ، وهذا يبدو رائعًا! هل جعلت المصدر متاحًا في أي مكان حتى الآن؟ لأغراضنا ، نحتاج إلى أن نكون قادرين على استخراج الشبكات ، والقياسات ، والأشعة فوق البنفسجية والمشهد المرئي من FBX ، ويبدو أن هذا يعمل بشكل جيد.

إذا كان المصدر متاحًا ، فسيكون من الرائع أن توجهني إلى مكانه.

شكرا على العمل العظيم!

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

لاحظ أن هذا مؤقت للغاية.
أحتاج إلى تنظيف الشفرة وتحسينها.
ويمكن أن تتعطل الوظيفة الآن.

takahirox يرجى ملاحظة: بعد إجراء بعض الاختبارات في برامج مختلفة قمت بتحديث تعليقي السابق.

تضمين التغريدة

شكرا.
يبدو أن "ترجمة" و "بون" يعملان الآن.
لا يدعم FBXLoader الرسوم المتحركة Morph حتى الآن مع ملف ascii.
سيكون عملنا التالي ....

لقد حاولت تحميل ملف testcube في مشروع three.js الخاص بي ولكن لا يتم تحميل أي شيء.
حصلت على 404 في ملف الصورة ، بعد فحص كائن FBXTree يمكنني رؤيته لا يزال يحمل إشارة إلى مسار الملف المطلق.

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

لقد اختبرته للتو (على جهاز لا يتوفر فيه ملف jpg الأصلي) ، وهو يعمل بشكل جيد.

ملاحظة: يجب عليك استخدام ملفات
https://github.com/takahirox/three.js/blob/FixLoaderBinaryParser/examples/js/loaders/FBXLoader2.js
لكن المحمل يسمى ببساطة THREE.FBXLoader (بدون رقم الإصدار 2).

هذا ما أستخدمه. سأحقق أكثر

جرب TestcubeWithImage.fbx
لا يتضمن Testcube.fbx بيانات الصورة لذا يجب أن تحصل على 404

@ في اختباري الذي يعمل بشكل جيد ، أحصل على نفس إخراج وحدة التحكم تمامًا مثل @ adam-clarey - باستثناء الرسالة GET ... 404 .

راجع للشغل: لقد اختبرت على نظام التشغيل Windows 10.

تقدم...
يبدو أن الرسوم المتحركة تعمل بشكل جيد الآن 😄

image

هل يمكنك لصق الكود الذي تستخدمه لتحميل النموذج من فضلك؟ لسبب ما لا يتم تحميله بالنسبة لي.

لقد حاولت استبدال ملف Testcube في مثال webgl_loader_fbx.html (أيضًا تبديل ملف FBXLoader2.js) ولا يزال لا يعرض النموذج.

@ adam-clarey هذا بالضبط ما فعلته (ألغي تنشيط الرسوم المتحركة ، بالطبع) ، وقد نجح الأمر دون أي تغييرات أخرى.

كم هو غريب ...

screen shot 2017-05-08 at 09 50 40

ومن المؤكد أنك تستخدم TestcubeWithImage.fbx (كما أشار takahirox
أي رسائل خطأ أخرى؟
ما هو نظام التشغيل الذي تستخدمه؟
نفس الشيء في جميع المتصفحات؟

AAHHH ، ما أنا فارغة! لقد قمت بالتمرير لأعلى حتى عثرت على أول ملف testcube.

غلطتي

أهلا! أتلقى هذا الخطأ أيضًا عند محاولة تحميل نموذج .fbx خارجي يتم تصديره من Autodesk. يمكن لأي شخص أن يعطيني حلا لهذا

شكرا لك!

https://github.com/takahirox/three.js/blob/FixLoaderBinaryParser/examples/js/loaders/FBXLoader2.js
لاحظ أن هذا مؤقت للغاية.
أحتاج إلى تنظيف الشفرة وتحسينها.
ويمكن أن تتعطل الوظيفة الآن.

@ hmtri1011

RicoLiu هذا ما حصلت عليه عندما استخدمت THREE.FBXLoader. لقد نفذت مثالً loader_fbx عن طريق استبدال عنوان URL الخاص بالنموذج.

وعندما استخدمت THREE.FBXLoader2 حصلت على الخطأ THREE.FBXLoader2 is not a constructor

image

يمكنك استخدام webgl_loader_fbx.example:

  1. تحميل https://github.com/takahirox/three.js/blob/FixLoaderBinaryParser/examples/js/loaders/FBXLoader2.js
    بدلاً من FBXLoader2.js لفرع threejs الحالي ،
  2. استخدم THREE.FBXLoader ( بدون رقم الإصدار 2! ) ،
  3. (قم بإلغاء تنشيط الرسوم المتحركة ، إذا لم تكن هناك رسوم متحركة في نموذجك) ،

ويجب أن تعمل.

jostschmithals أتبع خطوتك ثم أحصل على خطأ جديد Zlib is not defined

يبدو أن ملف النموذج الخاص بك مضغوط؟

image
خطأ كامل ما أحصل عليه

أضف هذا السطر في المثال الخاص بك.

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

image
انتهى وظهر خطأ آخر .... :(

كما كتبت أعلاه ، يجب عليك إلغاء تنشيط رمز الرسوم المتحركة (في قسم التحميل وفي حلقة العرض) ، إذا كنت تستخدم رمز المثال مع ملف نموذج لا يحتوي على أي رسوم متحركة.

أواجه مشكلة مختلفة ، أنا متأكد من أنها متعلقة بالمواد. مشكلتي هي أنه في ظل ظروف معينة ، يتم عرض بعض نماذج fbx وبعضها لا.

لإعادة إنتاج:
في ملف مثال webgl_loader_fbx.html ، فقط داخل init () ضع الكود التالي لإنشاء بيئة

 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);
              }

والذي يضيف فقط قفزًا وأرضيًا مع صورتين.

ثم بعد تهيئة المشهد ، قم بتشغيل: loadSkyDomeAndGroundBowl (scene)؛

سترى أن طرازي fbx يتم تحميلهما وتقديمهما بشكل جيد في هذه البيئة الجديدة.

الآن ، إذا قمت باستبدال مرجع xsi_man_skinning.fbx بـ TestcudeWithImages.fbx (يمكنك أيضًا التعليق على رمز الرسوم المتحركة) ، فسترى أن الكود لا يتم عرضه على الإطلاق.

لقد لاحظت هذا مع ملفات fbx الأخرى أيضًا. لا يبدو أن ملفات fbx الثنائية متوافقة مع البيئات.

أو يمكن أن أفعل شيئًا خاطئًا ...
(ونعم باستخدام أحدث ملف FBXLoader2)

هذا هو مثال الكود الخاص بي:
"



three.js - اختبار FBXLoader
<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 هل يمكن أن تعطيني الحل الصحيح لهذا. أنا أيضًا ألغي تنشيط رمز الرسوم المتحركة

@ adam-clarey لقد اختبرته ، والسبب الذي يجعلك لا تستطيع رؤية المكعب هو أنه يجلس تحت مستوى الأرض (إذا قمت بتدويره بالكاميرا يجب أن تراه). إلى جانب هذا كل شيء يعمل بشكل جيد بالنسبة لي مع التعليمات البرمجية الخاصة بك.

takahirox : تتم ترجمة الشبكة الموجودة داخل المجموعة التي تم إنشاؤها بواسطة FBXLoader وتدويرها بحيث لا يتم وضع النقطة المحورية في وسط المكعب كما في النموذج الأصلي ولكن في منتصف جانبه العلوي. يبدو أن هذا خطأ بسيط؟

(يتم عرض الصورة بشكل صحيح في الأعلى على الرغم من ...)

@ hmtri1011 لقد قمت بإلغاء تنشيط وظيفة animate (). لذلك لا يتم عرض المشهد الخاص بك على الإطلاق 😉

(يجب أن يكون كافيًا في هذه الحالة إلغاء تنشيط الأسطر التي علقت عليها بالفعل فقط.)

jostschmithals tks: D يعمل الآن

مكان جيد jostschmithals ، شكرًا.

هل يجب أن يهم ما هو الإصدار الثنائي للملف؟ لدي ملفات fbx بالإصدار 7400 التي تقدم بشكل جيد ، ولكن أحدها يحتوي على الإصدار 7500 وقد انتهى به الأمر.

"FBXLoader: نوع خاصية غير معروف"
حيث يكون المتغير "type" سلسلة فارغة

@ adam-clarey ليس لدي معرفة تفصيلية بـ fbx. لقد انضممت فقط إلى هذا الموضوع لأنني وجدت السؤال المثير للاهتمام حول ما إذا كان / كيف يمكن تخزين بيانات الصورة في ملف النموذج. لذا أود توجيه هذا السؤال إلىtakahirox.

أعلم أن مواصفات> = 7500 مختلفة قليلاً عن <7500 ، و
أعمل على ذلك لدعم> = 7500.
هل يمكنك مشاركة بيانات النموذج الثنائي للإصدار 7500 للاختبار؟

لذلك بعد المزيد من الاختبارات ، يبدو أن 7200 و 7500 على ما يرام.

ومع ذلك ، لا يتم عرض 6100 و 7300.
house_fs.fbx.zip
DutchHouse.FBX.zip

هل تود مشاركة ملفات إصدار أسكي؟
يمكننا توضيح ما إذا كانت المشكلة ثنائية محددة أم لا.

وآمل أن نغلق هذه المشكلة لأن FBXLoader يدعم النظام الثنائي الآن (ربما لم يكن مثاليًا بعد).
دعنا نطرح مشكلة أخرى لتحسين FBXLoader .

takahirox يبدو جيدًا!

@ adam-clarey
أعتقد أنني حصلت على هذا الخطأ.

"FBXLoader: نوع خاصية غير معروف"
حيث يكون المتغير "type" سلسلة فارغة

في FBXLoader.js
تغيير إلى

            while ( ! this.endOfContent( reader ) ) {

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

            }

11956

مرحبا بالجميع،
لقد لاحظت أن FBXLoader يدعم فقط ملف FBX ليكون> ​​= 7.0.
الآن أريد تحميل ملف fbx أقل من 7.0 ، من فضلك أخبر كيف أفعل ذلك؟
ها هي ملفات fbx الخاصة بي https://github.com/nxhoang/Three.js-Fxb-and-Textures/tree/master/models/fbx
شكرا جزيلا.

nxhoang كما ناقشنا هنا ، نحن ندعم فقط إصدارات FBX أعلى من 6100 (ثنائي) أو 7000 (ASCII).

إذا كنت بحاجة إلى استخدام ملفات FBX القديمة ، فستحتاج إلى تحديثها (من الأفضل تحميلها إلى 3ds max أو Maya للقيام بذلك) ، أو تحويلها إلى تنسيق آخر.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات