মাঝের পথে রঙ পরিবর্তন করে এমন হালকা কীভাবে অর্জন করবেন?


11

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

আমি জানি যে এখানে বর্ণিত প্রভাবটি উইন্ডোটির "রঙিন" পাশের এরিয়া লাইট ব্যবহার করে নকল হতে পারে, তবে আমি যদি কেবল একটি সাদা পয়েন্ট আলো করতে চাই?


আলোর রঙ পরিবর্তন করার পরিবর্তে, আপনি কাচের ওপারের আলোকিত বস্তুর ভিত্তি রঙটি পরিবর্তন করতে পারবেন? সম্ভবত যে কৌতুক করতে হবে?
হিউম্যানটগফুড

স্বচ্ছ উইন্ডোটি দ্বিতীয় পাস হিসাবে রেন্ডার করা হয়, এর শেডারটি প্রতিটি পিক্সেল আউটপুটটির রঙের ভারসাম্যকে কেবল পরিবর্তন করে। এটি কি কাজ করবে না?
প্যাট্রিক হিউজেস

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

উত্তর:


14

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

দ্রুত এবং ময়লা

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

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

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

এই কৌশলগুলি করিডোর শ্যুটারের জন্য যুক্তিসঙ্গতভাবে ভালভাবে কাজ করবে তবে গতিশীল বা উন্মুক্ত বিশ্বের পক্ষে এতটা ভাল নয় কারণ খুব বেশি টুইট করা খুব সম্ভবত এটি সঠিকভাবে দেখার প্রয়োজন হবে। এছাড়াও, এই কৌশলগুলি দ্রুত কিছুটা তীব্র হয়ে উঠতে পারে, সুতরাং একটি পিছিয়ে শেড পাইপলাইনে যাওয়ার পরামর্শ দেওয়া হবে।

ছায়া মানচিত্র

আর একটি বিকল্প শ্যাডো ম্যাপিংয়ের অনুরূপ কিছু করা।

শ্যাডো ম্যাপিংয়ে আপনি একটি আলো দ্বারা প্রভাবিত বিশ্বের কিছু বিটম্যাপ চিত্র তৈরি করেন। প্রতিটি পিক্সেল, রঙের পরেও প্রকৃতপক্ষে অ-স্বচ্ছ জ্যামিতির নিকটতম অংশের দূরত্ব (আপনি 4 টি রঙের পরিবর্তে 1 টি ফ্লোটের জন্য চার বাইট ব্যবহার করেন)। যদি আপনি আলোক থেকে জ্যামিতির কোনও অংশের দূরত্ব গণনা করেন এবং এটি ছায়া মানচিত্রে সম্পর্কিত মানের চেয়ে আরও বেশি হয় তবে আপনার জ্যামিতির অংশটি ছায়ায় রয়েছে (আপনি সাধারণত জ্যামিতি এবং আলোর মাঝখানে রশ্মিকে মানচিত্রের সূচক হিসাবে ব্যবহার করেন)।

আপনি যদি এই সমস্যাটিকে আপনার সমস্যায় প্রয়োগ করেন তবে আপনি যা করবেন তা হ'ল স্বচ্ছ জ্যামিতির নিকটতম অংশের আলো থেকে দূরত্বের একটি মানচিত্র সংরক্ষণ করুন এবং সেই জ্যামিতির মধ্য দিয়ে যাওয়ার পরে আলোর বর্ণের একটি দ্বিতীয় মানচিত্রও তৈরি করুন ( কেবল জ্যামিতির রঙ যদি আলো সাদা হয়)।

যদি আপনার জ্যামিতির অংশটি এই মানচিত্রের দূরত্বের চেয়ে আরও দূরে থাকে তবে মানচিত্রের রঙটি ব্যবহার করুন, যদি তা না হয় তবে মূল হালকা রঙটি ব্যবহার করুন।

মানচিত্রে প্রতিটি পিক্সেলের জন্য রঙ গণনা করার জন্য ফাংশনটি মোটামুটি হওয়া উচিত; লাইট কালার - ইনভার্টড উইন্ডো কালার। সুতরাং একটি খাঁটি সাদা আলো এবং একটি খাঁটি লাল উইন্ডো যা আমাদের পাওয়া লাল বর্ণালীগুলির কোনওটিই শোষণ করে না; (255,255,255) - (0,255,255) = (255,0,0)। তাই অন্যদিকে আলোর রঙ খাঁটি লাল। আরও জটিল স্বচ্ছ বস্তুর জন্য, যেমন একটি দাগযুক্ত কাচের উইন্ডোটির জন্য, আপনি উপাদানটির রঙ পেতে একটি টেক্সচার লুক করতে চাইতে পারেন।

আপনি যদি অনুরূপ কিছু সন্ধান করছেন তবে প্রতিচ্ছবি ছায়ার মানচিত্র দেখুন

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

একটি সাধারণ সমাধানের চেষ্টা করা

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

সাধারণ ধারণাটি এখানে:

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

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

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


দীর্ঘ পোস্টের জন্য ধন্যবাদ! আমি বর্তমানে যে প্রকল্পে কাজ করছি তার জন্য আমি এগিয়ে যাচ্ছি বা পিছিয়ে দেওয়া রেন্ডারিং করব কিনা তা আমি বর্তমানে অনুসন্ধান করছি। এই মুহুর্তে সম্ভবত এটি পিছিয়ে যেতে চলেছে। উইন্ডোটি বহু রঙের হয়ে গেলে আপনি কী করবেন (বলুন, গির্জার একটি দাগযুক্ত গ্লাস)?
manabreak

@ মানব্রিয়াক - আমি ছায়া মানচিত্রের এক্সটেনশনটি ব্যবহার করব কারণ এটি সেই ক্ষেত্রে বিশ্বস্ততার সেরা স্তর সরবরাহ করবে। আমি এটি ব্যাখ্যা করতে পোস্ট সম্পাদনা করব।
অরিজিনাল

ইই ......... ধন্যবাদ! এই পোস্টটি সত্যিই আমার দিনটি তৈরি করেছে, আমি সম্ভবত কোনও একক পোস্টে এত প্রচেষ্টা কখনও দেখিনি।
মনব্রিয়েক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.