Three.js: قطف المنطقة

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

مرحبًا ، أولاً أنا آسف حقًا إذا لم يكن هذا هو المكان الذي أقصد فيه طرح أسئلة عامة؟

هل هناك مثال على "انتقاء المنطقة" كائنات ثلاثية الأبعاد متعددة؟ هذا هو سحب إطار بالماوس واختيار جميع الكائنات داخله؟

لقد كنت ألعب باستخدام كائن THREE.Ray وهو طرق متقاطعة (طرق) ولكن لا يمكنني الالتفاف وتتبع كل تنسيق XY للعثور على جميع التقاطعات لقد فقدت بعض الشيء.

لقد بحثت في جميع أنحاء الويب ومن خلال github و stack overflow ولكن لم أجد أي مساعدة.
أي مساعدة موضع تقدير كبير.

شكرا لك مقدما
جولز

Question

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

لقد قمت بتكييف مثال اختيار Three.js لاختيار المنطقة باستخدام مجموعة فرعية مبنية على أساس مستطيل من الشاشة. انقر واسحب للتحديد. لا تبدو دقيقة مثل عرض جميع الكائنات ثلاثية الأبعاد على مساحة شاشة ثنائية الأبعاد ثم التقاطع مع مستطيل الشاشة ، لكنها تعمل بشكل لائق وأعتقد أنها أسرع.

الأسئلة ذات الصلة في Stack Overflow:
THREE.js كيفية اكتشاف تقاطع كائن مربع ثنائي الأبعاد وثلاثي الأبعاد
THREE.js كيفية اختيار كل الكائنات في منطقة ما

ال 5 كومينتر

سيكون من الأفضل لك أن تتعقب الأشياء الخاصة بك في المشهد ثم تتكرر عبر كل إحداثيات XY. في هذه الحالة لن تتمكن من استخدام THREE.Ray وسيتعين عليك تنفيذ منطق مخصص لمعرفة ما إذا كان الكائن داخل الإطار. أعتقد أن هذا النهج سيؤدي إلى تسريع التعليمات البرمجية بشكل كبير.

هممم ، هذه مشكلة مثيرة للاهتمام.

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

نعم ، هذا منطقي.
لست مهتمًا كثيرًا بالإحداثيات ثلاثية الأبعاد أو المصفوفات المعقدة ،
إذا قمت بتعريف THREE.Matrix4 عن طريق تمرير رؤوس المستطيل (سحب الماوس) والنقاط البعيدة القريبة إلى طريقة Matrix4.makeFrustum.
هل يمكنني بعد ذلك إنشاء THREE.Frustum عن طريق تمرير Matrix4 إلى طريقة Frustum.setFromMatrix؟
ثم استخدم طريقة Frustum.contains لاكتشاف ما إذا كان الكائن بداخله؟

هل هذا يبدو وكأنه لديه أمل في العمل الجحيم؟

هل ترتبط إحداثيات الماوس بأي أسلاك عالم ثلاثي الأبعاد؟ كما في موضع الماوس بالنسبة للكاميرات القريبة من الطائرة أو أي شيء من هذا القبيل؟

آسف إذا كنت مجرد n00b فأنا فقط بحاجة إلى إجابة على هذا.

تحتاج إلى عرض إحداثيات الماوس على العالم ثلاثي الأبعاد. الق نظرة على هذا المثال:
http://mrdoob.github.com/three.js/examples/webgl_interactive_cubes.html

لقد قمت بتكييف مثال اختيار Three.js لاختيار المنطقة باستخدام مجموعة فرعية مبنية على أساس مستطيل من الشاشة. انقر واسحب للتحديد. لا تبدو دقيقة مثل عرض جميع الكائنات ثلاثية الأبعاد على مساحة شاشة ثنائية الأبعاد ثم التقاطع مع مستطيل الشاشة ، لكنها تعمل بشكل لائق وأعتقد أنها أسرع.

الأسئلة ذات الصلة في Stack Overflow:
THREE.js كيفية اكتشاف تقاطع كائن مربع ثنائي الأبعاد وثلاثي الأبعاد
THREE.js كيفية اختيار كل الكائنات في منطقة ما

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

القضايا ذات الصلة

scrubs picture scrubs  ·  3تعليقات

danieljack picture danieljack  ·  3تعليقات

ghost picture ghost  ·  3تعليقات

yqrashawn picture yqrashawn  ·  3تعليقات

boyravikumar picture boyravikumar  ·  3تعليقات