কম্পিউটার টিউটোরিয়াল

ডেটা স্ট্রাকচরে B-Reps কে ট্রিতে কনভার্ট করা

১ B-rep স্ট্রিমস (Streams)

এটি স্পষ্টভাবে স্টেট করা হয়েছে একটি প্রোডিউসার প্রসেস সেট আপ করার জন্য যা একটি B-rep ইম্পোর্ট করে, এক্সटার্নালি ডিফাইনড কিছু স্ট্যান্ডার্ড পলিগোনাল ফরম্যাট দ্বারা, যেমন বায়েব ফ্রন্ট বা java3D obj ফাইল, আমাদের জ্যামিতিক পাইপলাইনের জন্য একটি ইনপুট স্ট্রিমে। পলিগন এবং নরমাল দ্বারা প্রদত্ত বাউন্ডারি রিপ্রেজেন্টেশন কোহেরেন্টলি অরিয়েন্টেড হতে হবে। ইনপুট ফাইল ফিল্টারিং করা প্রয়োজন হতে পারে নন-প্ল্যানার পলিগন এবং অন্যান্য জ্যামিতিক ইনঅ্যাকুরেসি মোকাবিলা করতে সাধারণত আর্কাইভড জ্যামিতিক মডেলের জন্য যারা প্রায়ই কম্পিউটার গ্রাফিক্স-এ বাস্তবায়িত হয়। কোহেরেন্টলি-অরিয়েন্টেড ট্রায়্যাঙ্গলের আউটপুট স্ট্রিম, তারপর আমাদের টুইন প্রোগ্রেসিভ-BSP (বাইনারি সার্চ পার্টিশনিং) ট্রিয়ে রূপান্তরিত হয় নিচের অ্যালগরিদমিক স্টেপগুলো দ্বারা।

২ B-rep থেকে BSP অ্যালগরिदম আউटलাইন

আমাদের মেথডের একটি বেসিক প্রসিডিউর হলো ট্রায়্যাঙ্গেল সাবসেটের ইনারশিয়া ক্যালকুলেশন প্রি-কম্পিউটেড ইনারশিয়া অফ ইয়ার ট্রায়্যাঙ্গেল দ্বারা কনট্রাকশন, এবং ট্রায়্যাঙ্গেল সাবসেটের ইনারশিয়ার আইগেন ডিকম্পোজিশন তাদের শেপ অপ্টিমালি এবং রিকার্সিভলি বাউন্ড করতে।

d-ডাইমেনশনাল কেসে, শেপ কনফাইনমেন্ট অর্জিত হয় ২টি এক্সট্রিমাল ট্যাঞ্জেন্ট হাইপারপ্লেন বাস্তবায়ন করে প্রতিটি d আইগেনভেক্টরের জন্য অয়লার ম্যাট্রিক্সের। সংশ্লিষ্ট ২d হাইপারস্পেসের ইন্টারসেকশন তৈরি করে বেস্ট-ফিটিং (হাইপার)প্যারালлеলোপাইপেড বাউন্ডারি সাবসেটের যেটি করেন্ট সেলে ইনক্লুডেড। ৩ডাইমেনশনে, ৬=২×৩টি এমন প্লেন থাকে।

ইনিশিয়ালাইজেশন (Initialization)

  • প্রতিটি ইনপুট ট্রায়্যাঙ্গেলের অ্যাফাইনলি এক্সটেনডেড অয়লার টেনসর প্রথমে ক্যালকুলেট করা হয় (লিনিয়ার টাইমে)।
  • পুরো ইনপুট ট্রায়্যাঙ্গেল সেট BSP রুটের সাথে জয়েন করা হয়।
  • পুরো E3 স্পেস (যেটি কনভেক্স) রুটের সাথে জয়েন করা হয়।
  • রুট লেবেল সেট করা হয় FUZZY।

রিকার্সিভ কেস (Recursive case)

  • কারেন্ট FUZZY সেল বিভক্ত হয় সর্বোচ্চ ৬টি অর্থোগোনাল হাইপারপ্লেন দ্বারা যা করেন্ট ট্রায়্যাঙ্গেল সাবসেটের অয়লার টেনসরের ম্যাট্রিক্স রিপ্রেজেন্টেশনের আইগেনভেক্টরের লম্ব।
  • ऐसे প্লেনগুলো ক্যালকুলেট করা হয় লোয়েস্ট এবং হাইএস্ট ভ্যালু অফ দ্য লিনিয়ার ফাংশন w = a • v করেন্ট ট্রায়্যাঙ্গেল সাবসেটের ভের্টেক্স v-এ ইভ্যালুয়েট করে, যেখানে a ডেনোট করে করেন্ট আইগেনভেক্টর।
  • প্রতিটি আইগেনভেক্টরের জন্য, সর্বোচ্চ তিনটি কনভেক্স সেল তৈরি হয় দুটি ম্যাক্স-মিন প্যারালেল হাইপারপ্লেন দ্বারা, যারা হয় {OUT, FUZZY, IN} অথবা {OUT, FUZZY, OUT}।
  • প্রতিটি FUZZY সেল আরও ভাগ হয় প্রিন্সিপাল হাইপার-প্লেন দ্বারা যা ম্যাক্সিমাম আইগেনভেক্টরের সাথে জড়িত।
  • ট্রায়্যাঙ্গেলের একটি ছোট সাবসেট প্রতিটি ভাগ করা সেলের সাথে জয়েন করা হয় তাদের ভের্টেক্সের কন্টেইনমেন্ট টেস্টের মাধ্যমে।
  • এক ডিভাইডিং প্লেন ক্রস করা ট্রায়্যাঙ্গেলগুলো ভাগ করা হয়, এবং (সাব)ট্রায়্যাঙ্গেলগুলো নোড সাবট্রিতে জয়েন করা হয়।

বেসিক কেস (Basic case)

রিকার্সিভ ইনারশিয়া-বেসড ডিভিশন থামে যখন করেন্ট সেল শুধু একটি ছোট সংখ্যক বাউন্ডারি ট্রায়্যাঙ্গেল নিয়ে গঠিত। একটি ফাইনাল সেল ডিভিশন এক্সিকিউট করা হয় বাউন্ডারি ট্রায়্যাঙ্গেলের প্লেন বাস্তবায়ন করে।

  1. ডেটা স্ট্রাকচরে BSP ট্রি

  2. ডেটা স্ট্রাকচরে রেঞ্জ ট্রি

  3. হাফ-এজ ডেটা স্ট্রাকচার

  4. ডেটা স্ট্রাকচরে হাইট লিমিটেড হাফম্যান ট্রি