আমি কীভাবে একটি চকচকে প্রভাব তৈরি করতে পারি?


9

আমি আমার রিয়েলটাইম শেডারটির জন্য একটি চকচকে প্রভাব তৈরি করার চেষ্টা করছি তবে কীভাবে তা আমি জানি না।

এখানে একটি উদাহরণ এবং অন্য একটি উদাহরণ

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

এটি বাস্তবায়নের জন্য আমি কোন কৌশলটি ব্যবহার করতে পারি?


এটি পুষ্প-প্রসেস প্রভাবের মাধ্যমে অর্জন করা যেতে পারে, এটি পুষ্পিত ফুলের মতো, তবে ডাউন-স্যাম্পল পর্যায়ে একটি প্যাটার্ন (একটি স্টার টেক্সচার) প্রয়োগ করে। এটি সবই অনুমান করা শক্ত।
aktartar

1
কোনও সাধারণ এবং নির্দিষ্ট ম্যাপ কি কোনও টেক্সচারের মাধ্যমে এটি করতে দেয় না?
জনবি

আমি সাধারণ মানচিত্র ব্যবহার করে কিছু পরীক্ষা করেছি। তবে দৃ thing় বিষয় হ'ল দৃষ্টিভঙ্গি এবং হালকা ওরিয়েন্টেশন অনুযায়ী তাদের চকচকে করা।
ম্যাট

উত্তর:


10

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

সবার আগে আসুন আমরা শ্যাডারের সরাসরি অংশ নয় এমনটি জানিয়ে রাখি:

  1. ছায়া কাটা শেডারের অংশ নয় এবং এটি পৃথক শেডোং পাসের মাধ্যমে সম্পন্ন হয়।
  2. আমি ধরে নিচ্ছি এর পরিবেষ্টনের উপস্থিতি রয়েছে (বিশেষত যে প্রশ্নটিতে প্রদর্শিত এই চিত্রটি বিশেষত রিয়েল টাইম রেন্ডারার ব্যবহার করছে না তবে এটি একটি অনুমান)।

দ্বিতীয়ত, আসল শেডারকে পৃথক প্রভাবগুলিতে বিভক্ত করুন:

  1. আলোকসজ্জার মতো একটি অ্যানিসোট্রপিক রয়েছে, এটি শেডারটির সামগ্রিক চেহারার জন্য অত্যন্ত প্রাবন্ধিক। এর পেছনের কারণটি হ'ল প্রকৃত উপাদানগুলিতে কাপড় রয়েছে, এই চকচকে কাপড়গুলি আলোক প্রতিবিম্বকে নির্দেশমূলক পক্ষপাতী করে তোলে, সেই নির্দিষ্ট দিকটিতে সর্বাধিক পরিমাণে প্রতিফলিত আলোকে তৈরি করে ।

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

এখানে চিত্র বর্ণনা লিখুন নোট করুন যে এই জাতীয় কাপড়গুলি সীমাহীনভাবে অনেকগুলি স্বাভাবিক থাকে , তবে এখানে বর্ণিত কৌশলটি সর্বাধিক উল্লেখযোগ্য স্বাভাবিকের সান্নিধ্যে

সর্বাধিক উল্লেখযোগ্য স্বাভাবিককে আনুমানিকভাবে করার জন্য, একটি উপায় হ'ল জালটির টেক্সটেন্টগুলি স্থানাঙ্ক ব্যবহার করে এবং গণনার পরিবর্তে এন গণনা করা । এল আপনি গণনা 1- (এনটি)।

এখানে সম্পূর্ণ ব্যাখ্যা । এবং আপনার সম্ভবত তারা যে ভার্টেক্স কৌশলটির বিষয়ে কথা বলছেন তার চেয়ে খণ্ড শেডারে এটি প্রয়োগ করতে হবে। অন্যান্য অ্যানিসোট্রপিক মডেলগুলিও প্রয়োগ করতে পারে।

চকচকে প্রভাবের জন্য এখন:

এটি ওয়ার্ল্ড স্পেস / লোকাল টেক্সচার স্পেস বা স্ক্রিন স্পেসে আলাদা পাস হিসাবে করা যেতে পারে।

আমি যে অ্যালগরিদমটি ভাবতে পারি তা চিত্র প্রক্রিয়াকরণ কৌশল ব্যবহার করে (জাল টেক্সচার কর্ডগুলি ধরে রেখে) ass

  • টেক্সচারের স্থানাঙ্কগুলি ব্যবহার করে জাল পৃষ্ঠে উচ্চ ফ্রিকোয়েন্সি 2 ডি শব্দ উত্পন্ন করুন, পার্লিন শব্দটি একজন ভাল প্রার্থী বলে মনে হচ্ছে।
  • গোলমালে 3x3 কার্নেল ব্যবহার করে একটি সর্বাধিক ফিল্টার প্রয়োগ করুন। এটি নীচের চিত্রের মতো একটি প্রভাব তৈরি করবে এবং সর্বোচ্চ ফিল্টারটি এখানে বর্ণিত হয়েছে

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

উল্লেখ্য উপরের চিত্রটি সর্বাধিক ফিল্টারের উদাহরণ, এবং শব্দে এটি প্রয়োগ করা একটি স্টার ফিল্ডের মতোই স্টাথ দেবে।

  • একবার এটি হয়ে গেলে, আকৃতির মতো তারকা পেতে গোলমালের উপর নির্দিষ্ট বিচ্যুতি সহ গাউসিয়ান ফিল্টার প্রয়োগ করুন।

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

সর্বাধিক (এড) শব্দে গাউসিয়ান ফিল্টার প্রয়োগ করা হয়েছে filter

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

দ্রষ্টব্য, এই কৌশলটির রিয়েল টাইম শেডারের জন্য উল্লেখযোগ্য অপ্টিমাইজেশনের প্রয়োজন হতে পারে।


3

এএমডি একটি আকর্ষণীয় নিবন্ধ আছে - পদ্ধতি প্রাপ্তি

দেখে মনে হচ্ছে স্পার্কলসগুলি আমার চেয়ে বেশি শক্ত।
শালীন সমাধান: 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);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.