স্তরযুক্ত আলফা কোয়াড ব্যবহার করে গ্রাউন্ড কুয়াশার উপযুক্ততা?


16

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

বিকল্পভাবে, প্রাথমিকভাবে শেডার-ভিত্তিক পদ্ধতির পরিবর্তে স্থল কুয়াশার স্তরটিতে দেখার দূরত্বের কার্যকারিতা হিসাবে ঘনত্ব গণনা করা হবে এবং তার ভিত্তিতে টুকরাটির মান আউটপুট হবে।

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

এই ধরণের প্রভাবের ক্ষেত্রে একটি বড় প্রশ্ন রয়েছে:

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

(চিত্র ক্রেডিট lume.com এর Lume যায়)

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


1
আপনি কেন এর জন্য আলফা কোয়াড স্তর ব্যবহার করতে চান ? "শেডার-ভারী পদ্ধতির" কেবল আরও সঠিক নয়, এটি ধীর হওয়ার জন্যও ঠিক জানা যায় না ।
নিকল বোলাস

1
@ স্টেফানভেনডেন হিউভেল শিওর, তবে এটি দর্শন-স্থান সমন্বিত, দূরত্ব ভিত্তিক কুয়াশা। কুয়াশা স্থল-প্রান্তিক নয়। সঠিক?
ইঞ্জিনিয়ার

1
@ নিক উইগগিল হ্যাঁ আপনি ঠিক আছেন।
স্টিফান ভ্যান ড্যান হিউভেল

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

1
ভূমিকম্প 3 GL1.1 এর সাথে কাজ করে এমন একটি স্থির-পাইপলাইন পদ্ধতির ব্যবহার করে এর অনুরূপ কিছু করেছিল। আমার কাছে সবচেয়ে বড় উদ্বেগটি হ'ল ভরাট / ওভারড্রগুলি খারাপভাবে পাইল করতে পারে তবে এটি সম্ভবত Q3 উত্স কোডটি ডাউনলোড করে তাদের বাস্তবায়ন পর্যালোচনা করা; আপনি ঠিক একই কাজ নাও করতে পারেন তবে কমপক্ষে এটি কোনও সিদ্ধান্ত নিতে আপনাকে সহায়তা করতে পারে।
ম্যাক্সিমাস মিনিমাস

উত্তর:


15

যেহেতু আপনি অভিজ্ঞতা চেয়েছেন, এখানে আমার।

আমি যখন পিএস 2 গেমস প্রোগ্রাম করছিলাম তখন আমি "লেয়ার্ড আলফা কোয়াডস" পন্থাটি এমন একটি উপায় ছিল যা আমরা প্রায়শই কুয়াশা প্রয়োগ করি। মাঝেমধ্যে গ্রাউন্ড কুয়াশা হিসাবে, তবে পুরোপুরি স্ক্রীন কুয়াশা হিসাবে বেশি। এবং এটি উভয় ক্ষেত্রে ঠিক কাজ করেছে। হ্যাঁ, প্রাক-খণ্ড-শেডার দিনগুলিতে এটি কার্যকর ছিল।

ভাল ধরণের. সমস্যাটি যেমনটি আপনি উল্লেখ করেছেন যে হ'ল আপনি যদি স্ক্রিনশটের মতো মসৃণ কুয়াশা চান তবে আপনার আলফা কোয়াডের চেয়ে একটি অযৌক্তিক সংখ্যার প্রয়োজন।

পিএস 2 এ আমরা সাধারণত তিন থেকে পাঁচ স্তরগুলির মধ্যে কোথাও বহন করতে পারি। যা অবশ্যই আপনার সামনে ভাসমান কুয়াশার "দেয়াল" এর মতো লাগছিল। এর চেয়েও বেশি এবং ভরাট হারটি আমাদের ফ্রেমের হারকে মারতে শুরু করে।

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

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

তবে ধরে নেওয়া যাক আমরা এই গ্রাউন্ড কুয়াশাটি করতে প্রশস্ত, পর্দার মুখোমুখি কোয়াড ব্যবহার করছি এবং কীভাবে এই পদ্ধতিটি ব্যবহার করে ফ্ল্যাট গ্রাউন্ডে সোজা সামনে তাকানো যায় তার জন্য কিছু গণনা করি - এটি আমাদের আদর্শ পরিস্থিতি । আসুন এইচডি রেজোলিউশন ধরে নিই: 1920x1080, যা আমাদের দিগন্তকে স্ক্যানলাইন 540 এ ফেলেছে। আসুন আমরা ধরে নিই যে আমাদের দিগন্তের সমস্ত পথই দৃশ্যমান রয়েছে (এটি ধরে নিলেন যে দিগন্তে পৌঁছানোর আগে আপনার কাছে কুয়াশা পূর্ণ অস্বচ্ছতায় পৌঁছেছে না)। একটি ধোঁয়া কোয়াড শুরু এবং প্রতিটি স্ক্যানলাইনে একটি থামার সাথে (মসৃণ কুয়াশা পেতে) আমাদের প্রয়োজন (540 * 2 ==) 1080 কুয়াশা কোয়াড। এই প্রতিটি 1080 টি কুয়াশা কোয়াড স্ক্রিনের পুরো অনুভূমিক প্রসারিত করবে,

আসুন কম অনুমান করুন এবং বলুন যে, গড়ে একটি কুয়াশা বিমানটি প্রায় 300 সারি পিক্সেলের আচ্ছাদন করে। নিকটতমগুলি কম কভার করবে, সর্বাধিকতমগুলি কম কভার করবে, মাঝারি সারিগুলি আরও অনেকগুলি কভার করবে।

এই অনুমানের সাথে, আমরা পাই (1920x300 ==) 576,000 পিক্সেল গড় কুয়াশা কোয়াড দ্বারা স্পর্শ করা হচ্ছে। মোট, এটি (576,000 * 1080 ==) 622,080,000 পিক্সেল পুরো "স্পর্শকাতর জ্যামিতির প্রচুর রেন্ডারিংয়ের মাধ্যমে মসৃণ কুয়াশা" প্রভাবের জন্য মোট ছোঁয়া হচ্ছে। এবং এই সংখ্যাটি উচ্চতর রেজোলিউশনে চালিত লোকদের জন্য এগিয়ে যাবে। এবং আরও কী, আমরা জেড-বাফারের বিপরীতে একই সংখ্যক পরীক্ষাগুলি পেয়েছি এবং প্রায় একই সংখ্যক পিক্সেল মিশ্রণ ক্রিয়াকলাপ, যেহেতু এই সমস্ত স্বচ্ছ স্তরগুলি একে অপরের উপর বার বার আঁকছে। এটি অনেকটা পিক্সেল।

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

মনে রাখবেন যেহেতু আমরা 1080 কোয়াডকে ওভারল্যাপ করছি, আমরা সম্ভবত প্রতিটিটির উপর (1.0 / 1080 ~ =) 0.0009 সেট এর একটি আলফা মান চাই, যাতে আপনি যদি সমস্ত 1080 কোয়াড দেখতে চান তবে আমাদের কুয়াশা সম্পূর্ণ অস্পষ্টতায় পৌঁছে যায়। (আমরা এর চেয়েও বেশি যেতে পারব, তবে এটি এমন মান ধরে নেওয়া হচ্ছে যে আমরা যতটা সম্ভব পরিসীমা ছড়িয়ে দিতে চাই)) মনে রাখবেন যে এই মানটি 32-বিট রঙের মান (256 * 0.0009 0.2 = 0.237 এর আলফা উপাদান হিসাবে প্রতিনিধিত্ব করতে পারে না এবং তাই চেষ্টা করলে এটি 0 এর চেয়ে কম হয়)। এটিকে কাজ করার জন্য আপনাকে ওপেনজিএলকে 0.0009 মানটি ভাসমান পয়েন্টের মান হিসাবে সরবরাহ করতে হবে। (এছাড়াও নোট করুন যে আপনি প্রকৃতপক্ষে প্রতিটিের জন্য এই একই মানটি সেট করতে চাইবেন না - যদিও আমরা নির্ধারণ করেছি যে আমাদের মসৃণ কুয়াশা দেওয়ার জন্য আমরা এক কোয়াড শুরু করতে এবং একটি দিগন্তের নীচে প্রতিটি স্ক্যানলাইন শেষ করতে চাই,

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

এর সবকটিই বলতে হয়: দয়া করে কেবল একটি খণ্ড শেডার ব্যবহার করুন।

সত্যিই না. এটি সহজ এবং সস্তায় এবং দ্রুত এবং দ্রুত প্রয়োগ করতে এবং ত্রুটি-প্রবণতার চেয়ে কম এবং বাস্তবে আপনার গেমটি তৈরি করতে আপনাকে ফিরে পেতে দেয় এবং প্রতিটি সম্ভাব্য উপায়ে আরও ভাল। আমরা যদি পিএস 2 এর যুগে এটি সম্পূর্ণরূপে করতাম তবে যদি এটি এমনকি অস্পষ্টভাবে সম্ভব ছিল।


1
বাস্তব বিশ্বের অভিজ্ঞতার ভিত্তিতে বিস্তৃত উত্তরের জন্য +1।
ধারণা 3 ডি

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