আপনি কী প্রোগ্রামিং করছেন তা আমি জানি না, তবে এক্সএনএতে আমি এটি হ্যান্ডেল করেছিলাম:
- ড্র কলটিতে, একটি
List<Light>
অবজেক্ট তৈরি করা / সাফ করা হয়।
- টাইল আঁকার লুপ চলাকালীন, প্রতিটি টাইলের সাথে এটির কোনও লাইট যুক্ত আছে কিনা তা পরীক্ষা করে নেওয়া হয়। যদি এটি হয় তবে
Light
অবজেক্টগুলি যুক্ত করা হবে List<Light>
।
- টাইলস তাদের নিজস্ব আঁকা হয়
RenderTarget2D
।
- টাইল লুপের পরে, এর তালিকাটি আমার
Light
নিজের মতো RenderTarget2D
করে দেওয়া একটি টেক্সচার ব্যবহার করে তাদের নিজস্ব দ্বারা পুনরাবৃত্তি করা হবে এবং আঁকা হবে :
(দ্রষ্টব্য: আমি এখানে আর, জি এবং বি মান ব্যবহার করেছি তবে আপনার সম্ভবত আলফা চ্যানেলটি ব্যবহার করা উচিত আসল জমিন।)
- একটি কাস্টম শেডার ব্যবহার করে, আমি পর্দাতে টাইলের পৃষ্ঠটি রেন্ডার করি এবং পরামিতি হিসাবে আলোক পৃষ্ঠে পাস করি যা প্রতিটি পিক্সেলের "অন্ধকার" মানের জন্য নমুনা পায়।
এখন, কয়েকটি বিষয় লক্ষণীয়:
পয়েন্ট 4 সম্পর্কিত:
আমার কাছে দুটি কাস্টম শেডার রয়েছে, একটি আলোক রেন্ডার টার্গেটের দিকে লাইট আঁকতে (ধাপ 4) এবং অন্যটি লাইটার রেন্ডার টার্গেট (ধাপ 5) ব্যবহার করে স্ক্রিনে টাইল রেন্ডার লক্ষ্য আঁকতে।
৪ ম পয়েন্টে ব্যবহৃত শেডার আমাকে "আলোকিতকরণ" মান যুক্ত করতে (যা আমি বলি) অনুমতি দেয়। এই মানটি এমন float
যা রেন্ডার টার্গেটে যুক্ত হওয়ার আগে জমিনের প্রতিটি পিক্সেলের বিপরীতে বহুগুণ হয় যাতে আমি লাইটগুলি আরও উজ্জ্বল বা গাer় করতে পারি make
এই মুহুর্তে আমি আলোর "স্কেল" মানটিও বিবেচনা করি যার অর্থ আমি কেবল একটি টেক্সচার ব্যবহার করে বড় বা ছোট লাইট রাখতে পারি।
5 পয়েন্ট সম্পর্কিত:
লাইটিং রেন্ডার টার্গেটটি মূলত 0 (কালো) থেকে 1 (সাদা) থেকে প্রতিটি পিক্সেলের জন্য একটি মান হিসাবে বিবেচনা করুন। শ্যাডারটি মূলত চূড়ান্ত অঙ্কিত চিত্র তৈরির জন্য টাইল রেন্ডার টার্গেটে পিক্সেলের জন্য আরজিবি মানগুলির তুলনায় সেই মানটি বাড়িয়ে দেয়।
আমার এখানে আরও কিছু কোড রয়েছে যেখানে আমি দিন / রাতের ওভারলে রঙ হিসাবে ব্যবহার করার মতো একটি মান (শেডারে) পাস করি। এটি আরজিবি মানগুলিতেও গুণিত হয় এবং আলোকে রেন্ডার টার্গেট গণনার অন্তর্ভুক্ত করে।
এখন, এটি আপনাকে অবজেক্টের কাছাকাছি যেতে এবং ব্লক লাইটের মতো জিনিসগুলি করতে দেয় না তবে কমপক্ষে আমার উদ্দেশ্যগুলির জন্য, এটি সহজ এবং ভালভাবে কাজ করে।
আমি এখানে এবং এখানে আরও বিস্তারিত ব্লগ পোস্ট লিখেছি যা আপনাকে সহায়তা করতে পারে। আমার এখনই সময় নেই, তবে আপনি যদি চান তবে আমি এখানে গেমদেভে আরও বিশদে যেতে পারি।
ওহ, এবং এটি আমার মানচিত্র সম্পাদকে এটি একবার দেখুন: