سؤال

أنا أبحث عن تنسيق ملف بسيط لاستخدامه في نماذج الإطار السلكي.أنا على دراية بـ VRML، وu3D، وما إلى ذلك، ولكنها تبدو ذات أهمية كبيرة بالنسبة لاحتياجاتي.معاييري هي:

  • يجب أن يكون لديك مواصفات واضحة.إما مفتوحة أو راسخة/موثقة.
  • أحتاج فقط (أريد) نماذج بسيطة - القمم والحواف.لا أريد التعامل مع الوجوه أو الأشياء.إذا كان التنسيق يدعم المزيد، فلا بأس بذلك طالما يمكنني تجاهلها.
  • أدوات المستخدم النهائي ليست شرطا، ولكنها ستكون رائعة.إذا لم يكن الأمر كذلك، فيجب أن تكون قابلة للقراءة بواسطة الإنسان (وقابلة للتحرير للنماذج البسيطة).
  • سيكون من الجيد (ولكن ليس من الضروري) أن تكون قادرًا على إضافة تعليقات توضيحية أو على الأقل تسمية العقد.
  • لا يهم اللغة التي أستخدمها، ولكن الخيارات المحتملة هي Java/C++ وOpenGL

أو هل من الأفضل أن أكتب قوائم القمم/الحواف في ملف نصي وأنتهي منها؟

هل كانت مفيدة؟

المحلول

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

أما بالنسبة للتنسيق، OBJ هو جيد وبسيط، إذا عفا عليه الزمن قليلا.ومن المحتمل أيضًا أن يكون هذا هو التنسيق الأسهل للعثور على الوثائق الخاصة به.تعد ملفات X من Microsoft رائعة للعرض السريع والقذر، لكنني كنت دائمًا متحيزًا إلى حد ما لتنسيقات Quake.ومع ذلك، فإنها تميل إلى أن تكون موجهة نحو الألعاب بشكل كبير، وبالتالي تتضمن الكثير من المعلومات التي ربما لا تريدها.

إذا لم يلبي أي منها احتياجاتك، فربما تنظر فيها كولادا.ربما لن ينجح الأمر بمفرده، ولكن يمكنك كتابة مُصدِّر سريع بتنسيقك الخاص الذي يحتوي فقط على معلومات الحافة/القمة، وعند هذه النقطة يكون لديك دعم أساسي لكل حزمة نماذج على هذا الكوكب :)

نصائح أخرى

Wavefront OBJ هو تنسيق ملف نصي بسيط للغاية لتخزين النماذج ثلاثية الأبعاد وهو مدعوم من قبل جميع تطبيقات النماذج ثلاثية الأبعاد (على سبيل المثال.maya، 3dsmax، lightwave) حتى تتمكن من تصدير واستيراد نماذجك بسهولة بالغة.

يمكنك قراءة المزيد والمواصفات هنا:

http://www.fileformat.info/format/wavefrontobj/

أوصي بعدم إنشاء تنسيق الملف الخاص بك.يعد Wavefront OBJ بسيطًا ومحددًا بشكل جيد.

فيما يلي مثال لطائرة 2x2. الخامس للإحداثيات الرأسية، F لوصف الوجوه (أي القمم متصلة):

v -0.500000 -0.000000 0.500000
v 0.000000 -0.000000 0.500000
v 0.500000 -0.000000 0.500000
v -0.500000 0.000000 0.000000
v 0.000000 0.000000 0.000000
v 0.500000 0.000000 0.000000
v -0.500000 0.000000 -0.500000
v 0.000000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
v -0.500000 -0.000000 0.500000
v 0.000000 -0.000000 0.500000
v 0.500000 -0.000000 0.500000
v -0.500000 0.000000 0.000000
v 0.000000 0.000000 0.000000
v 0.500000 0.000000 0.000000
v -0.500000 0.000000 -0.500000
v 0.000000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
f 1/1 2/2 5/5 4/4
f 2/2 3/3 6/6 5/5
f 4/4 5/5 8/8 7/7
f 5/5 6/6 9/9 8/8
f 10/10 11/11 14/14 13/13
f 11/11 12/12 15/15 14/14
f 13/13 14/14 17/17 16/16
f 14/14 15/15 18/18 17/17

قد يكون من الأسهل عمل تلك القوائم في ملف نصي.هذا هو أول ما يتبادر إلى ذهني بالنسبة لي!

بوف راي تنسيق المثلث الخام هو ما أعتبره الأبسط.أنت حقا لا تستطيع أن تصبح أكثر بساطة في رأيي.لقد قمت بتنفيذ عملية تحميل لهذا في غضون دقائق - إنها عملية حقا تنسيق بسيط حقا.

OBJ هو الأكثر انتشارًا والأبسط، ولكنه ينهار إذا كنت بحاجة إلى أكثر من موضع قمة الرأس، أو الوضع الطبيعي، وإحداثيات نسيج واحدة.إنها غير قابلة للتوسعة على الإطلاق.كما أنها تعتمد على النص لذا فهي تواجه مشكلة مع الشبكات الكبيرة.

لقد ظهر GTO كتنسيق تبادل جديد.إنه بسيط وسريع وقابل للتوسيع، ويوجد كود مفتوح المصدر مثبت الإنتاج لقراءته وكتابته:

تنسيق ملف GTO

تم استخدام هذا في الإنتاج في العديد من استوديوهات VFX والألعاب، ومع ذلك فإن كتابة محمل كملف OBJ يتطلب نفس القدر من العمل (وأحد العينات هو محول OBJ إلى GTO).

تحقق من ذلك، وساعد في وقف انتشار فيروس كولادا المنتفخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top