تحديث: تم إهمال هذا المستودع. الرجاء استخدام Meshfinity أو مستودع TripoSR الرسمي إذا كنت تحتاج ببساطة إلى إنشاء شبكات مزخرفة. سيظل محتوى هذا الريبو متاحًا على الإنترنت في حالة احتياجك على وجه التحديد إلى تعديل هندسة الشبكة التي تم إنشاؤها قبل خبز النسيج - ولكن لن يحتاج العديد من المستخدمين إلى هذه الوظيفة.
يعد TripoSR نموذجًا ممتازًا مفتوح المصدر لاستنتاج بيانات الشكل والملمس ثلاثي الأبعاد من شبكات ثنائية الأبعاد. مثل العديد من النماذج الحديثة القائمة على التعلم الآلي للرسومات ثلاثية الأبعاد التوليدية، يستخدم TripoSR التمثيل الحجمي NeRF (مجال الإشعاع العصبي) لبياناته ثلاثية الأبعاد، على عكس الشبكة المضلعة التقليدية. يتضمن مستودع TripoSR تعليمات برمجية لتحويل NeRF الذي تم إنشاؤه إلى شبكة باستخدام خوارزمية Marching Cubes، ولكنه يخزن بيانات الألوان بألوان قمة بدلاً من الأنسجة، مما يحد بشدة من الدقة ويمنع المزيد من التلاعب بالهندسة (مثل تبسيط الشبكات) دون تدمير بيانات الألوان.
يقوم برنامج TripoSR Bake بتقسيم عملية تصدير الشبكة إلى قسمين. في 01-mesh.py
، يتم استخراج تقريب للشبكة باستخدام Marching Cubes وكتابته إلى .obj
(كما في مستودع TripoSR الأصلي)، ومع ذلك فإنه يحفظ أيضًا ملف .pkl
يحتوي على تنبؤ NeRF من استنتاج نموذج TripoSR. يمكن بعد ذلك تحرير ملف .obj
يدويًا (على سبيل المثال، تنعيمه أو تبسيطه)، طالما تم الحفاظ على حدود الشبكة (على سبيل المثال، لا تقم بقياس/تدوير/ترجمة الشبكة ككل). بعد تحرير الشبكة، يتم استخدام البرنامج النصي 02-texture.py
لإنشاء أطلس للأشعة فوق البنفسجية للشبكة ووضع بيانات NeRF على خريطة الأشعة فوق البنفسجية هذه. باستخدام هذه الطريقة، حتى الشبكة منخفضة التبولي قد تحتوي على تفاصيل الألوان عالية الدقة لمخرج NeRF الأصلي. ضع في اعتبارك أن جودة النسيج ستنخفض عندما تتشوه رؤوس الشبكة بعيدًا عن الحجم الأصلي للشبكة. كالعادة، ستختلف النتائج اعتمادًا على صورة الإدخال، وجودة الشبكة التي تم إنشاؤها، والمرشحات/التحريرات المطبقة قبل تركيب الشبكة، وكفاءة أطلس الأشعة فوق البنفسجية المعبأ.
git clone https://github.com/iffyloop/TripoSR-Bake.git
cd TripoSR-Bake
# TripoSR requires a real virtualenv environment,
# not the built-in venv that comes with Python
pip install virtualenv
python -m virtualenv venv
# Now we install dependencies for this repo
source venv/bin/activate # venvScriptsactivate.bat on Windows
pip install torch # For CUDA support, follow the instructions at https://pytorch.org/get-started/locally/
pip install -r requirements.txt
للحصول على شرح كامل للخيارات المتاحة، يرجى تشغيل python 01-mesh.py --help
و python 02-texture.py --help
.
# Generate Marching Cubes mesh
python 01-mesh.py --input input/chair.png --output-mesh output/chair.obj --output-scene-codes output/chair.pkl --no-remove-background --density-threshold 15.0 --marching-resolution 512 --marching-oversampling 1 --tsr-chunk-size 8192 --device cpu
# Bake texture
# Before this stage, you probably want to smooth and remesh the generated chair.obj mesh in MeshLab,
# then use that as the --input-mesh below instead of the raw Marching Cubes mesh.
# Editing the mesh is merely a suggestion, not a requirement. The original mesh can also be textured.
python 02-texture.py --input-mesh output/chair.obj --input-scene-codes output/chair.pkl --output-mesh output/chair-textured.obj --output-texture output/chair-textured.png --texture-resolution 1024 --texture-padding 2 --tsr-chunk-size 8192 --device cpu