سؤال

أنا أريد وضع تمييز مرئي (مربع اختيار حقا) على واحد من العديد من TGLPlane الذي يحتوي على العديد من القوام المختلفة المعينة لهم. كيف يمكنني تطبيق نسيج صائق الثاني على تلك الطائرة باستخدام GLSCENE؟

بعض الخلفية. يتم تخزين جميع القوام المختلفة المختلفة المطبقة على الطائرات في مادية ومخصصة لمواد الطائرات المعنية. MaterialLibrary والمواد. LibmaterialName. هذا هو إعادة استخدام القوام بشكل فعال بشكل مناسب حيث يتم تحميلها مرة واحدة فقط بغض النظر عن عدد المرات التي يتم استخدامها.

ما لا يمكنك القيام به هو استخدام أي من الخصائص الموجودة على TGlplane لأنها يتم تجاهلها بمجرد تطبيق نسيج مادي الريال به.

الطرق التي يمكنني العثور عليها من أجل القيام بذلك يبدو أن يطلب مني تغيير الليبي الذي ينطبق عليه بالطبع بعد ذلك على جميع الطائرات الأخرى التي تشترك في هذا الملمس معين، لذلك هذا لا يذهب.

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

إذا لم يكن هناك إمكانية مدمجة في GLSCENE، فهل هناك طريقة لاعتراض التقديم عندما تصل إلى تلك الطائرة بالذات، ثم استخدم بعض البدائيات OpenGL لتطبيق نسيج صائق بعد تطبيق نسيج MaterialLibrary؟

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

المحلول

هنا هي طريقة واحدة، دون تطبيق نسيج ثان ولكن مع ذلك صنع علامة واضحة.

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

هذا لا يستهلك ذاكرة الملمس لأنك لا إعادة تحميل الملمس.

ثم في التعليمات البرمجية تحدد الكائن الذي ترغب في إبرازه، والقيام بشيء مثل هذا.

giveacodicetagpre.

fpickedmaterial يحفظ اسم المواد الأصلي بحيث يمكنني استعادته لاحقا.

ليس تماما ما أريد، لكنه يعمل.نسميها في العمل الآن.

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