সমস্যাটি মূলত এটি:
লাইনরেেন্ডার লাল ডট অবস্থানগুলি সংযোগ করার চেষ্টা করছে is এটি একটি জাল তৈরির জন্য সবুজ শীর্ষকে তৈরি করছে। সুতরাং শীর্ষ লাইন বিভাগটি দুর্দান্ত দেখাচ্ছে। তবে লাইনরেেন্ডার অর্থনৈতিক হওয়ার চেষ্টা করে, এটি দ্বিতীয় লাইন বিভাগের শেষে একটি রেখাংশের শেষে থেকে শীর্ষকে আবার ব্যবহার করে। যখন একটি তীক্ষ্ণ কোণ রয়েছে, আপনি যে সমস্যাটি দেখছেন তা পেয়ে যাবেন। দ্বিতীয় লাইন বিভাগটি ছেদ করা হয়েছে কারণ এটির 'শেষ ক্যাপ' অন্যান্য 'শেষ ক্যাপ' দিয়ে লম্ব নয়।
সমাধানটি হ'ল আপনার নিজস্ব লাইন রেন্ডারার তৈরি করা এবং এটি এতটা অর্থনৈতিক হিসাবে তৈরি করা উচিত নয়। আপনি গতিশীল জাল তৈরি করে এটি করতে পারেন । জালটি পাতলা কোয়াডগুলির একটি সিরিজ সমন্বিত থাকবে। প্রতিটি লাইন বিভাগের জন্য, আপনি রেখার সাধারণ এবং নির্দিষ্ট রেখার প্রস্থ গণনা করে কোয়াডের চারটি কোণ গণনা করতে পারেন:
Vector3 normal = Vector3.Cross(start, end);
Vector3 side = Vector3.Cross(normal, end-start);
side.Normalize();
Vector3 a = start + side * (lineWidth / 2);
Vector3 b = start + side * (lineWidth / -2);
Vector3 c = end + side * (lineWidth / 2);
Vector3 d = end + side * (lineWidth / -2);
এখানে, a
, b
,c
এবংd
আপ একটি একক লাইন সেগমেন্ট চার কোণায় করতে, শুধু উপরের ছবিতে সবুজ বিন্দু মত। এই শিখাগুলি জালটিতে যুক্ত হবে এবং আপনি চারটি শীর্ষকে দুটি ত্রিভুজ তৈরি করতে সূচকগুলিও যুক্ত করবেন (সুতরাং ছয়টি সূচক যুক্ত হবে, এবিসি এবং বিডিসি)।
এটি স্পষ্টতই জটিল হতে পারে। আমি বিশ্বাস করি যে ityক্য তাদের লাইনরেেন্ডারকে তারা যেভাবে কার্যকর করেছিল, কারণ করণীয় সেভাবে এটি করা অন্য কোনও সমস্যা এড়ায়। আপনি যখন প্রতিটি লাইন বিভাগকে আঁকতে শুরু করবেন তখন আপনি দুটি লাইন খণ্ডটি কোথায় একসাথে আসে এবং একটি কুরুচিপূর্ণ যৌথ গঠন করে তা দেখতে শুরু করবেন। উভয় লাইনের মধ্যে ভাগ করে নেওয়া স্বাভাবিক গণনা করে এবং তাদের শীর্ষকে ভাগ করে নেওয়া স্বাভাবিকের সাথে আপডেট করে এর সাথে মোকাবিলা করার বিভিন্ন উপায় রয়েছে তবে এটি কেবল আংশিকভাবে সমস্যার সমাধান করে, যেহেতু আপনি এখনও খুব সহজেই পিঞ্চযুক্ত লাইনগুলি দিয়ে শেষ করতে পারেন। সর্বাধিক দৃ to় সমাধানটি কোণগুলির হিসাবে কাজ করার জন্য জয়েন্টগুলিতে অতিরিক্ত শীর্ষগুলি তৈরি করা।