আমি কীভাবে কণাগুলি আলোকিত করতে পারি এবং এর আশেপাশে আলো ফেলতে পারি?


22

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


3
এখানে আসল বিষয়টি হ'ল "আলো ব্যয়বহুল"। আপনি কিছু নির্দিষ্ট পয়েন্ট লাইট স্থাপনের চেয়ে ভাল হতে পারেন যা অঞ্চলটি যথেষ্ট পরিমাণে আলোকিত করে, লাইটগুলিকে একটি লাইটম্যাপে বেক করুন, তারপরে কয়েক ডজন ভয়ঙ্কর ব্যয়বহুল গতিশীল লাইট ব্যবহার না করে আলোক সূত্রটি কোথা থেকে আসছে তা ব্যাখ্যা করতে কণাগুলি ব্যবহার করুন।
Draco18s

@ ড্রাকো 18 গুলি কয়েক ডজন ফায়ারফ্লাই নেই। তারা কেবল প্লেয়ারের দর্শনের মধ্যে উপস্থিত হতে চলেছে। এটি শীর্ষে এবং নিয়ন্ত্রণ করা যেমন সহজ। এবং যে কোনও সময় 10 টিরও কম ফায়ারফ্লাই থাকতে হবে। আমি মনে করি না 10 গতিশীল পয়েন্ট হালকা ব্যয়বহুল?
ডার্কডেস্ট্রি

ডিফল্টরূপে, ইউনিটি একবারে মাত্র দুটি সক্রিয় গতিশীল আলোককে জ্যামিতি আলোকিত করতে দেয় (যদিও এটি 2 ডি সেটআপের জন্য পৃথক হতে পারে)। অবশ্যই আপনি এটি বাড়াতে পারেন তবে মনে রাখবেন যে +1 আলো ড্র কলগুলিতে এক্স 2 প্রভাব।
ড্রাকো 18

2
@ ড্রাকো 18 এটি অগ্রণী রেন্ডারিং পথের ক্ষেত্রে সত্য হতে পারে, তবে ডকস অনুসারে " ডিফার্ড শেডিং ব্যবহার করার সময় কোনও বস্তুকে প্রভাবিত করতে পারে এমন লাইটের সংখ্যার কোনও সীমা নেই " - অনেকগুলি ছোট আলো যা কেবলমাত্র একটি ছোট অংশকে প্রভাবিত করে স্ক্রিনটি হ'ল ব্যবহারের ক্ষেত্রে হ'ল পিছনে দেওয়া রেন্ডারিং পাথগুলি দক্ষতার সাথে পরিচালনা করতে পারা যায়। (ফরোয়ার্ড রেন্ডারিংয়ের চেয়ে গুণক নয়, অনন্য আলোতে একটি ড্র কলের একটি সাধারণ মূল্যে)
ডিএমগ্রিগরি

এটা একটা ভাল দিক. আমি বেশিরভাগ সময় বিভিন্ন রেন্ডারিং পাথগুলি সম্পর্কে ভুলে যাই।
ড্রাকো 18

উত্তর:


7

হালকা নির্গমনকারী কণাগুলি এখন 5.5-এ ইউনিট বৈশিষ্ট্যের অন্তর্নির্মিত।

কেবলমাত্র কণা পরিদর্শককে আলো সক্ষম করুন, একটি হালকা প্রিফ্যাবের (একটি পয়েন্ট এবং স্পট লাইট উভয়ই কাজ করে) রেফারেন্সটি ছুড়ে দিন এবং অনুপাতটি 1 এ পরিবর্তন করুন।

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

এবং ভয়েলি, কণা যা আলোক নির্গত করে: ! [চিত্রের বর্ণনা এখানে প্রবেশ করান

দেখা যাচ্ছে, এটি একটি বরং অনুকূলিতাপূর্ণ সেটআপ, আমার রগের উপরে এমনকি শত শততম আলো সহ 1500 + fps এ চলছে।

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

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


1
এটি ভাল খবর! :) এই উত্তরটি আরও ভাল হবে যদি এটিতে নতুন কণা সিস্টেমের বৈশিষ্ট্যগুলির সাথে এটি সেট আপ করার জন্য কিছু ধাপে ধাপে নির্দেশাবলী অন্তর্ভুক্ত করা হয়।
ডিএমগ্রিগরি

1
আপনি যে ভার্টেক্স আলোটি দেখছেন সেটি কিছুটা অপটিমেশনের মতো শোনাচ্ছে Unক্য ফরোয়ার্ড রেন্ডারিংয়ে প্রযোজ্য। আপনি পিছনে পাথ ব্যবহার করার সময় কি একই আচরণ দেখেন?
ডিএমগ্রিগরি

তুমি ঠিক বলছো! মুলতুবি রেন্ডারিং পাথ ব্যবহার করার সময় শৈল্পিকাগুলি আর উপস্থিত থাকে না।
ग्रहणবিদ

31

হুঁশিয়ার:

এই উত্তরটি পুরানো। ইউনিটি এখন পয়েন্ট লাইট কণাকে দেশীয়ভাবে সমর্থন করে। সম্পূর্ণ বিবরণের জন্য দয়া করে এই উত্তরটি দেখুন।

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


আমি নিশ্চিত নই কেন এত উত্তর দাবি করে যে এটি কঠিন বা অসম্ভব। কয়েক ডজন ডায়নামিক পয়েন্ট লাইট হ্যান্ডেল করা পিসিতে চলমান একটি আধুনিক মুলতুবি রেন্ডারিং পাইপলাইনের জন্য প্রচলিত ।

আমি রান্না করা একটি দ্রুত উদাহরণ এখানে: আলোকসজ্জার সাথে দমকলের উদাহরণ

আমি এই স্ক্রিপ্টটি আমার সর্বাধিক কণাগুলির জন্য যথেষ্ট পরিমাণে আলো জ্বালানোর জন্য ব্যবহার করি (এটি নিশ্চিত করুন যে আপনি আপনার পার্টিকাল সিস্টেম সেটিংস সমন্বিত করেছেন যাতে সর্বোচ্চটি যুক্তিসঙ্গত হয় - 1000 এর ডিফল্টটি আপনার গ্রাফিক্স কার্ডটিকে খুব খুশি করবে না) এবং তারপরে সক্রিয়টিকে অনুসরণ করতে আপডেট করুন কণা:

[RequireComponent(typeof(ParticleSystem))]
public class ParticleLights : MonoBehaviour {

    public Light lightPrefab;

    ParticleSystem _system;
    ParticleSystem.Particle[] _particles;
    Light[] _lights;


    void Start () {
        _system = GetComponent<ParticleSystem>();
        _particles = new ParticleSystem.Particle[_system.maxParticles];

        _lights = new Light[_system.maxParticles];
        for(int i = 0; i < _lights.Length; i++)
        {
            _lights[i] = (Light)Instantiate(lightPrefab);
            _lights[i].transform.parent = transform;
        }
    }

    void Update () {

        int count = _system.GetParticles(_particles);
        for(int i = 0; i < count; i++)
        {
            _lights[i].gameObject.SetActive(true);
            _lights[i].transform.localPosition = _particles[i].position;

            // Looks like the GetCurrentColor function was added in 5.3.
            // You can use other methods in earlier Unity versions.
            _lights[i].color = _particles[i].GetCurrentColor(_system);
        }

        for (int i = count; i < _particles.Length; i++)
        {
            _lights[i].gameObject.SetActive(false);
        }
    }
}

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

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

আপনি হয়ত দেখতে পেলেন যে আপনি যদি বিলবোর্ড কোয়াড এবং একটি কাস্টম মুভমেন্ট / ব্লিঙ্কিগ স্ক্রিপ্টের সাথে সংযুক্ত একটি হালকা দিয়ে প্রত্যেককে নিজস্ব গেমবজেক্ট তৈরি করেন তবে ফায়ারফ্লাইসের ফ্লাইটের উপর আপনার আরও ভাল নিয়ন্ত্রণ রয়েছে কারণ যেহেতু দৃinc়প্রত্যয়ী ঘোরাঘুরির চেয়ে আরও বেশি কণা সিস্টেম শৈল্পিকতা লাগে আমি জানি. ;)


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

আপনি কীভাবে হালকা প্রিফ্যাব তৈরি করবেন?
ডার্কডেস্ট্রি

এছাড়াও, কোনও কারণে, পার্টিকেল সিস্টেম P পার্টিকালটি উত্তরাধিকারের কণাকে বোঝায়। এর জন্য একটি গেটকন্টারালার বা গেটকন্ট্রেনসাইজ পদ্ধতি নেই।
ডার্কডেস্ট্রি

@ ডার্কডেষ্ট্রি আমি প্রিফ্যাব তৈরির বিষয়ে উত্তরে একটি নোট যুক্ত করেছি। অনুপস্থিত ফাংশন হিসাবে, এটি একটি সংস্করণ সমস্যা হতে পারে - আমি 5.3-এ কাজ করছি, ইউনিটির পূর্ববর্তী সংস্করণগুলিতে আপনি এটি অন্যভাবে করতে পারেন। আসুন আমরা আড্ডায় প্রয়োগের বিশদ আলোচনা করব , হামজা হাসান সদয়ভাবে তৈরি ঘরটি ব্যবহার করে।
ডিএমগ্রিগরি

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

3

বছর আগে, গতিশীল আলোগুলি সাশ্রয়ী হওয়ার আগে, আমরা কেবল অ্যাডিটিভ ব্লেন্ডিং সহ একটি 2 ডি-বিলবোর্ডযুক্ত কণা প্রভাব ব্যবহার করতাম। এটি দৃশ্যটি সাদা রঙের দিকে আলোকিত করবে। ফায়ারফ্লাইয়ের সঠিক গভীরতার সাথে এঁকে দিয়ে আপনি প্রায় সঠিক বাছাই পেতে পারেন। আলফা মিশ্রণের তুলনায় নিজেই ওভারড্রয়িংয়ের সময় অ্যাডিটিভ আলফাকে বাছাই করার দরকার নেই। এটি সমস্ত দৃশ্য আলোকিত করবে না, তবে এটি আগুনের চারপাশের অঞ্চলটি আলোকিত করবে। তারপরে আপনার প্রয়োজন হলে আপনি দৃশ্যটি আলোকিত করতে প্রতি কয়েক সেকেন্ডে একটি গতিশীল আলো নিতে পারেন এবং ফায়ারফ্লাইগুলির একটি বেছে নিতে পারেন।

গ্লো ইফেক্ট সম্পর্কে ইতিমধ্যে একটি প্রশ্ন ও উত্তর আছে 2 ডি গেমসের জন্য ইউনিটিতে কীভাবে এইভাবে আলোকপাত করা যায়?


0

দুর্ভাগ্যক্রমে, ইউনিটির বর্তমান ফর্মটিতে আমার খুব বেশি অভিজ্ঞতা হয়নি (আমি বহু বছর আগে এটি নিয়ে কথা বললাম), তাই ইঞ্জিনে আপনাকে কী বৈশিষ্ট্যটি সেট করতে হবে তা ঠিক জানি না।

যাই হোক না কেন, আপনি যে ইঞ্জিন নিয়ে কাজ করছেন তা বিবেচনা করুন না কেন, ডাইনামিক লাইট যখনই পারে এড়াতে পারে something এগুলি খুব গণ্যকর ব্যয়বহুল এবং খুব ঘৃণ্য উপায়ে দৃশ্যের জটিলতা যুক্ত করার প্রবণতা। তবে, বেশিরভাগ থ্রিডি রেন্ডারিংয়ের জন্য দিনের ক্রম অনুসারে, প্রতারণার মাধ্যমে আপনি একইভাবে প্রভাব অর্জন করতে পারেন এমন অনেকগুলি উপায় রয়েছে;

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

অবশ্যই এই পদ্ধতির বেশ কয়েকটি ত্রুটি রয়েছে। কোনও আলো ব্যবহার না হওয়ায় আপনি ছায়া ফেলে দেবেন না এবং আপনি বিশ্বের কোনও জ্যামিতিকে প্রভাবিত করবেন না (প্রপস, পাতাগুলি ইত্যাদি)


-2

Lightআগুনের উত্সে ব্যবহার করুন এবং স্ক্রিপ্টে এর আকারের সাথে খেলুন যাতে এটি জ্বলনের প্রভাব দেয়। এবং আপনার কণা সিস্টেম ব্যবহার করুন :)


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

তো, চুক্তি কী? আপনি আপনার কণা প্রিফাবের পরিবর্তে পূর্বনির্ধারিত অবস্থানগুলিতে আলো সংযুক্ত করতে পারেন
হামজা হাসান

প্রশ্নটি কীভাবে এটি করা যায় is আমি unityক্যের কণা সিস্টেমটি ব্যবহার করছি। এবং আমি সেখানে একটি প্রিফাব দেখতে পাচ্ছি না। আপনি যদি না আমাকে কেবল একটি প্রিফাব তৈরি করতে বলেন যা একটি আলো থাকে এবং স্ক্রিপ্টের ভিত্তি তৈরি করে
ডার্কডেস্ট্র্রি

সুতরাং আপনার দৃশ্যে কণা গেম অবজেক্ট রয়েছে। একই গেমের অবজেক্টে একটি হালকা সংযুক্ত করুন এবং সেই গেমঅজেক্টটিকে ইউনিটি ফাইল এক্সপ্লোরারে টেনে এনে প্রিফ্যাব তৈরি করুন।
হামজা হাসান

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