মুলতুবি রেন্ডারিংয়ের ছায়া


12

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

যদি আপনি শ্যাডোম্যাপগুলি রেন্ডারিং শুরু করেন, তবে এটি ফরোয়ার্ড রেন্ডারিংয়ের মতোই বেশ একই রকম মনে হয় shadow প্রতিটি আলোতে শ্যাডম্যাপগুলি রেন্ডার করার জন্য আপনি দৃশ্যের সমস্ত জ্যামিতি রেন্ডার করেন।

তাহলে কীভাবে পিছিয়ে দেওয়া রেন্ডারিং ছায়া গোছানো সমাপ্ত করে?

উত্তর:


14

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

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

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


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

6

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

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

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

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

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

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

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

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

যেভাবেই হোক, আপনার ক্যামেরা-স্পেস অবস্থান রয়েছে। এবং, যেমন উপরে বর্ণিত হয়েছে, আমরা ক্যামেরা-স্থান থেকে শ্যাডো প্রজেক্টিভ টেক্সচার স্পেসে রূপান্তর করতে একটি ম্যাট্রিক্স প্রয়োগ করতে পারি। তো ... তা করো। তারপরে আপনার ছায়ার মানচিত্রটি অ্যাক্সেস করুন।

সমস্যা সমাধান.


মুলতুবি রেন্ডারিংয়ে (অপ্টিমাইজেশানের খাতিরে) প্রতি আলোক জ্যামিতি বাদ দেওয়া কি সম্ভব?
সামুরসা

@ সমরসা: "হালকা প্রতি জ্যামিতি বাদ দিন" কী থেকে? ছায়া মানচিত্রে যেতে থেকে? জ্বলানো থেকে?
নিকল বোলাস

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