ইউনিটি 3 ডি তে কীভাবে আলোকসজ্জা করা যায়?


9

প্রথমত, আমি ইউনিটি প্রো এর মালিক।

পারফরম্যান্সের উন্নতির জন্য যখন কিছুক্ষণের জন্য তাদের দেখা হচ্ছে না তখন আমি অবসন্ন আলোগুলিতে সন্ধান করি। আমি যে প্রধান পদ্ধতিগুলি অনুসরণ করেছিলাম সেগুলি ছিল BecameVisible () ব্যবহার করা এবং ক্যামেরার হতাশার পরীক্ষা করা।

আমার মূল সমস্যাটি হ'ল প্লেয়ার যদি এমন কোনও অঞ্চল দেখেন যা আলোর দ্বারা আলোকিত হয় তবে আমি এখনও আলোটি চালু রাখতে চাই।

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

কেউ কি লাইট বন্ধ করতে ইউনিটি প্রোয়ের কোনও সহজ উপায় সম্পর্কে জানেন? অথবা আপনি যে ক্যামেরাটির কথা বলছিলাম ফুলক্রাম পদ্ধতিটি ব্যবহার করার একটি ভাল উপায় বলতে পারেন?


1
ক্যামেরা হতাশ এবং লাইটের হতাশাকে ছেদ করে কিনা তা আপনি পরীক্ষা করতে পারেন তবে আমি আশা করি unityক্য ইতিমধ্যে এটি করছে।
আরকি

1
ইউনিটি প্রোতে, ওকুলেশনকুলিংয়েরও লাইটগুলি পরিচালনা করা উচিত।
আরচি

ঠিক আছে, আমার শিল্পী বলেছিলেন যে অলকুলেশন কুলিং লাইটের জন্য কাজ করবে না। সুতরাং আমি সম্ভবত আমার বিভিন্ন আলোক উত্সগুলি ইতিমধ্যে সেট করে রেখেছি এমন জায়গাগুলির সংক্ষেপ হিসাবে সেট করব?
টিমোথি উইলিয়ামস

এবং ক্যামেরার পরীক্ষা করা এবং একে অপরের বিরুদ্ধে হালকা হতাশার মতো কিছু কাজ করতে পারে, যদিও আমার এটি 360 ডিগ্রীতে কাজ করা দরকার।
টিমোথি উইলিয়ামস

শিল্পী এবং আমি যা চেষ্টা করেছিলাম তা সত্ত্বেও অবজেকশন কুলিং লাইট নিয়ে কাজ করছে না বলে মনে হচ্ছে। আমি ঠিক কীভাবে একটি আলোকপাত করব?
টিমোথি উইলিয়ামস

উত্তর:


1

আপনি লাইট অন্তর্ভুক্ত করতে আপনার নিজস্ব স্ক্রিপ্ট লিখতে পারেন। মূল ক্যামেরার সাথে এমন কিছু সংযুক্ত:

List<Light> Lights = new List<Light>();
const float OccludeDist = 100;
void Update()
{
    foreach (Light light in Lights)
    {
        if ((transform.position - light.transform.position).sqrMagnitude > OccludeDist * OccludeDist))
        {
            light.enabled = false;
        }
        else{
            light.enabled = true;
        }
    }
}

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


দুর্দান্ত এবং সহজ :)
25
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.