আমি কীভাবে স্তরগুলির মধ্যে 2D ছায়া কাটা প্রয়োগ করব?


10

আমি কীভাবে 2 ডি শ্যাডোগুলি প্রয়োগ করতে পারি যা বিভিন্ন স্তরে অবজেক্টস দ্বারা কাস্ট করা হয়?

ক্যাটালিন জিমার সুপরিচিত টিউটোরিয়ালটিতে গতিশীল আলো পছন্দ নয় :

এখানে চিত্র বর্ণনা লিখুন

তবে এই ভিডিওর পাইপের ছায়ার মতো :

এখানে চিত্র বর্ণনা লিখুন

প্ল্যাটফর্মের ছায়া এবং এই ভিডিওর চরিত্রের মতো :

এখানে চিত্র বর্ণনা লিখুন

আমি একটি দৃশ্যে একই স্তরের বিভিন্ন স্তর সহ অনেক স্তর এবং প্রচুর আলো ব্যবহার করতে চাই।

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

উত্তর:


1

এটি মাস্কিং দিয়ে করা যেতে পারে। এটি করার একাধিক উপায় রয়েছে।

এক উপায় হ'ল অগ্রভাগ উপাদানগুলির ছায়া সংস্করণ রেন্ডার করার উপায় রয়েছে। পটভূমি আঁকুন। তারপরে অগ্রভাগের উপাদানগুলি আঁকুন, আপনি কীভাবে আলো সরিয়ে নিতে চান তার উপর নির্ভর করে কিছুটা অফসেট করুন, যাতে আপনি কেবল কালো রঙের আউটপুট পান। তারপরে অগ্রভাগটি সাধারণত আঁকুন।

আরেকটি উপায় হ'ল অগ্রভাগটি একটি বাফারে রেন্ডার করা, আপনি যা দেখতে চেয়েছিলেন তার চেয়ে খানিকটা বেশি। তারপরে কিছু "কালো" পাস এবং সম্ভবত একটি ঝাপসা পাস। এখন এই সেটগুলির পাসের আউটপুট এবং তারপরে অগ্রভাগের বাফারের দৃশ্যমান বিভাগটি রেন্ডার করুন।

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

draw background
for each light intersecting viewing bounds:
  offset = light.position - camera.position
  offset *= SCALE FACTOR (0.25 maybe)
  draw shadow foreground at offset
draw foreground

দৃশ্যের "কাছাকাছি" থাকা লাইটগুলির একটি ছোট স্কেল ফ্যাক্টর থাকবে। আপনি যদি একাধিক গভীরতা চান, তবে সেখানে কাজ করার মতো কিছু গণিত রয়েছে, সাধারণ জ্যামিতিক জিনিস।


হ্যাঁ এটাই ঠিক আমি নিজের সাথে উঠে এসেছি। যদিও এটি মাস্কিংয়ের জন্য সঠিক শব্দটি জানত না। তবে আমি আশা করেছি যে 3 ডি স্পেসে শেডো ভলিউমগুলি কীভাবে কাজ করবে তার সাথে আরও একটি অ্যালগরিদম হতে পারে ..
বেরি

আপনি যখন কোনও ছিদ্রযুক্ত পৃষ্ঠের উপর ছায়া ফেলে দিচ্ছেন, তখন আপনাকে তার পিছনের স্তরের উপরে আবাসিক ছায়া ফেলে দিতে হবে। এছাড়াও, স্বচ্ছতার সাথে কাজ করা কিছুটা জটিল হয়ে উঠবে। আমি ইতিমধ্যে এই সমস্যার জন্য সব সমাধান চিন্তা! তবে আমি ভেবেছিলাম যে বাস্তব সময়ে প্রয়োগ করা খুব ব্যয়বহুল হয়ে উঠবে, বিশেষত যখন প্রচুর স্তর (20) এবং প্রচুর আলো (50) নিয়ে কাজ করে। সে কারণেই আমি আলাদা পদ্ধতির আশা করছিলাম।
বেরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.