Three.js: ما هي اتفاقية استخدام الخرائط العادية لـ Three.js؟

تم إنشاؤها على ١١ مايو ٢٠١٧  ·  3تعليقات  ·  مصدر: mrdoob/three.js

قد يكون من المفيد أن يكون هذا موثقا. أشار emackey إلى وجود مشكلة في GLTF2Loader (https://github.com/donmccurdy/three-gltf-viewer/issues/10) ويبدو أن انعكاس الخريطة العادي هو المسؤول. للمقارنة:

BabylonJS: المحور س = يسار ، المحور ص = أسفل
برنامج OpenGL: المحور السيني = اليمين ، المحور الصادي = الأعلى
DirectX: المحور السيني = اليمين ، المحور الصادي = الأسفل

Question

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

تم وضع الإجابات بواسطة WestLangley و donmccurdy هنا: https://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

آمل أن ألخص بشكل صحيح:

  • استخدام الخريطة العادية الافتراضية لـ ThreeJS هو OpenGL ، اليد اليمنى ، مثل glTF.
  • أصل الأشعة فوق البنفسجية الافتراضي لـ ThreeJS هو أسفل اليسار ، عكس أصل الأشعة فوق البنفسجية في الجزء العلوي الأيسر من glTF.
  • نتيجة لذلك ، يجب أن يقلب GLTFLoader الأشعة فوق البنفسجية ثم يقلب اليد العادية للتعويض.

ال 3 كومينتر

هل كان هناك تقدم في هذا؟

في مشاريعي الخاصة ، أقوم بإصلاح هذا يدويًا عن طريق تعيين:

    material.normalScale.x = -1;

لم اسمع شيئا. سيكون من الجيد معرفة ذلك ، لكنني أميل إلى قلب normalScale.x إذا كان ذلك يعمل بشكل صحيح مع النماذج النموذجية.

تم وضع الإجابات بواسطة WestLangley و donmccurdy هنا: https://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

آمل أن ألخص بشكل صحيح:

  • استخدام الخريطة العادية الافتراضية لـ ThreeJS هو OpenGL ، اليد اليمنى ، مثل glTF.
  • أصل الأشعة فوق البنفسجية الافتراضي لـ ThreeJS هو أسفل اليسار ، عكس أصل الأشعة فوق البنفسجية في الجزء العلوي الأيسر من glTF.
  • نتيجة لذلك ، يجب أن يقلب GLTFLoader الأشعة فوق البنفسجية ثم يقلب اليد العادية للتعويض.
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات