বাফার অবজেক্ট এবং শেডার সহ শিট স্প্রিট করুন


9

শেডার এবং বাফারগুলির সাথে স্প্রিট শিটগুলি হ্যান্ডেল করার "সেরা" উপায় কী? তাত্ক্ষণিক মোডে কোনও স্প্রিটের টেক্সকর্ডগুলি এটি আঁকলে সংশোধন করা সহজ তবে আধুনিক ওপেনজিএল দিয়ে এটি কীভাবে করা যায় তা আমি জানি না। আমার কি সমস্ত টেক্সকর্ডগুলি বাফারে সংরক্ষণ করা উচিত এবং প্রতিটি স্প্রাইটের জন্য পয়েন্টারটি পরিবর্তন করা উচিত, না এর চেয়ে ভাল উপায় আছে?

উত্তর:


11

আপনি সর্বদা লুং বাফারকে "ভার্টেক্স; টেক্সকর্ড" পুনরাবৃত্তি করতে পারেন। এবং আপনি কীভাবে বলেছেন তা কেবল সূচকগুলি ব্যবহার করুন। এটি সম্ভবত সবচেয়ে সহজ এবং কিন্ডা আপনি জানেন কি অনুরূপ।

কিছু স্মৃতি সঞ্চয় করতে চাইলে। বেশ সুন্দর ঝরঝরে সমাধান রয়েছে এবং এটি হ'ল টেক্সটকার্ডগুলিকে একত্রিত করে বাফারে একটি স্প্রিট রাখা এবং ইউভিগুলি রূপান্তর ম্যাট্রিক্স তৈরি করা এবং এটি আপনার শেডারে প্রেরণ করুন এবং এর সাথে টেক্সকর্ডগুলি গুণান (ভার্টেক্স শ্যাডারে)।

আপনি যদি এটির সাথে ভাল না হন তবে আপনার নিজের দ্বারা ম্যাট্রিক তৈরি করতে হবে না। আপনি কেবল নিয়মিত জিএল ফাংশন এবং glGetFloatvফাংশন সহ ম্যাট্রিক্স পড়ার চেয়ে বেশি ব্যবহার করতে পারেন । এটার মত:

glGetFloatv (GL_MODELVIEW_MATRIX ,&g_TexCoordMat);

আমি আরও ভাল বর্ণনা করতে ইমেজ তৈরি করেছি। glTranslate এ glScale এ দেখা যাবে যে তারা কেবলমাত্র UV স্পেস ভিত্তির সাথে চলছে।

স্প্রিটশিট uvs

আপনি যদি শেডারে ম্যাট্রিক্স প্রেরণ করতে না জানেন তবে আমি আপনার সাথে কিছু কোড ভাগ করতে পারি।

সম্পাদনা করুন: যুক্ত ছবি
(আমি ব্যবহৃত স্প্রিটশিটের উত্স: funorb.com )


ওহ ধন্যবাদ! নিখুঁত উত্তর. আমি এই সমাধানটি সত্যিই পছন্দ করি এবং আমি কাজ থেকে ফিরে আসার সাথে সাথেই এটি অনুসন্ধান করব। :-) যদি আমি আটকে যাই, আমি আপনাকে আরও কিছু প্রশ্ন নিয়ে বিরক্ত করব।
uggwar

এটি, যতদূর আমি দেখতে পাচ্ছি, প্রতিটি স্প্রাইটের জন্য একটি করে কল কল উত্পন্ন করবে। একটি মসৃণ বাস্তবায়নের জন্য এই স্প্রিটগুলি ব্যাচ করার কোনও উপায় আছে?
uggwar

@ বাগওয়ার তাত্ক্ষণিক অঙ্কন?
নোটবেইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.