আমি আমার রিয়েলটাইম শেডারটির জন্য একটি চকচকে প্রভাব তৈরি করার চেষ্টা করছি তবে কীভাবে তা আমি জানি না।
এখানে একটি উদাহরণ এবং অন্য একটি উদাহরণ ।
এটি বাস্তবায়নের জন্য আমি কোন কৌশলটি ব্যবহার করতে পারি?
আমি আমার রিয়েলটাইম শেডারটির জন্য একটি চকচকে প্রভাব তৈরি করার চেষ্টা করছি তবে কীভাবে তা আমি জানি না।
এখানে একটি উদাহরণ এবং অন্য একটি উদাহরণ ।
এটি বাস্তবায়নের জন্য আমি কোন কৌশলটি ব্যবহার করতে পারি?
উত্তর:
ঠিক আছে, যখন কোনও শেডার ডিজাইন করতে বলা হয়, তখন আমাদের ছোট ছোট সমস্যাগুলি ভেঙে শুরু করা উচিত। এবং ঠিক যেমন চকচকে প্রভাবটি শেডারটিকে ভাল দেখায় না, তবে সামগ্রিক আলো এবং প্রভাব, কেবলমাত্র তাদের মধ্যে একটির ব্যবহার করলে দেখতে তেমন ভাল লাগবে না।
সবার আগে আসুন আমরা শ্যাডারের সরাসরি অংশ নয় এমনটি জানিয়ে রাখি:
দ্বিতীয়ত, আসল শেডারকে পৃথক প্রভাবগুলিতে বিভক্ত করুন:
নোট করুন যে এই জাতীয় কাপড়গুলি সীমাহীনভাবে অনেকগুলি স্বাভাবিক থাকে , তবে এখানে বর্ণিত কৌশলটি সর্বাধিক উল্লেখযোগ্য স্বাভাবিকের সান্নিধ্যে
সর্বাধিক উল্লেখযোগ্য স্বাভাবিককে আনুমানিকভাবে করার জন্য, একটি উপায় হ'ল জালটির টেক্সটেন্টগুলি স্থানাঙ্ক ব্যবহার করে এবং গণনার পরিবর্তে এন গণনা করা । এল আপনি গণনা 1- (এনটি)।
এখানে সম্পূর্ণ ব্যাখ্যা । এবং আপনার সম্ভবত তারা যে ভার্টেক্স কৌশলটির বিষয়ে কথা বলছেন তার চেয়ে খণ্ড শেডারে এটি প্রয়োগ করতে হবে। অন্যান্য অ্যানিসোট্রপিক মডেলগুলিও প্রয়োগ করতে পারে।
চকচকে প্রভাবের জন্য এখন:
এটি ওয়ার্ল্ড স্পেস / লোকাল টেক্সচার স্পেস বা স্ক্রিন স্পেসে আলাদা পাস হিসাবে করা যেতে পারে।
আমি যে অ্যালগরিদমটি ভাবতে পারি তা চিত্র প্রক্রিয়াকরণ কৌশল ব্যবহার করে (জাল টেক্সচার কর্ডগুলি ধরে রেখে) ass
উল্লেখ্য উপরের চিত্রটি সর্বাধিক ফিল্টারের উদাহরণ, এবং শব্দে এটি প্রয়োগ করা একটি স্টার ফিল্ডের মতোই স্টাথ দেবে।
সর্বাধিক (এড) শব্দে গাউসিয়ান ফিল্টার প্রয়োগ করা হয়েছে filter
দ্রষ্টব্য, এই কৌশলটির রিয়েল টাইম শেডারের জন্য উল্লেখযোগ্য অপ্টিমাইজেশনের প্রয়োজন হতে পারে।
এএমডি একটি আকর্ষণীয় নিবন্ধ আছে - পদ্ধতি প্রাপ্তি ।
দেখে মনে হচ্ছে স্পার্কলসগুলি আমার চেয়ে বেশি শক্ত।
শালীন সমাধান: 3 ডি শব্দটি ফাংশন সূচী করতে 3 ডি পজিশনটি ব্যবহার করুন, ভিউ ভেক্টর যুক্ত করুন, জিনিসগুলিকে আরও এলোমেলো করে আনার জন্য ফ্র্যাক ফাংশন ব্যবহার করুন।
Sparkle:
float specBase = saturate(dot(reflect(-normalize(viewVec), normal),
lightDir));
// Perturb a grid pattern with some noise and with the view-vector
// to let the glittering change with view.
float3 fp = frac(0.7 * pos + 9 * Noise3D( pos * 0.04).r + 0.1 * viewVec);
fp *= (1 - fp);
float glitter = saturate(1 - 7 * (fp.x + fp.y + fp.z));
float sparkle = glitter * pow(specBase, 1.5);