জিএলএসএল, সমস্ত এক বা অনেক শেডার প্রোগ্রামে?


17

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

একটি ভার্টেক্স / টুকরা শেডার জোড়ায় সমস্ত কিছুর সমর্থন করা ভাল বা অনেকগুলি ভার্টেক্স / টুকরা শেডার তৈরি করা এবং বর্তমানে নির্বাচিত উপাদানের ভিত্তিতে সেগুলি নির্বাচন করা ভাল? ওপেনজিএল বা ডি 3 ডি-তে স্বাভাবিক শেডার কৌশল কী?



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

উত্তর:


12

উত্তরটি হল, এটি নির্ভর করে।

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

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

সর্বোত্তম সমাধান সম্ভবত না হয়, তবে একরকম হাইব্রিড। কিছু কিছু ক্ষেত্রে বিশেষত শেডারগুলির সাথে মিলিয়ে কয়েকটি উবার-শেডার বা উবার-শেডার ers

ছোট শেডার

পেশাদাররা:

  • দ্রুত / আরও অনুকূল হতে পারে
  • আপনি যা করতে চান ঠিক তা করে
  • অদ্ভুত, কাস্টম স্টাফ সহজেই করতে পারে

কনস:

  • সহজেই হাতছাড়া হয়ে যায়, বিশেষত যখন বৈশিষ্ট্যের সংখ্যা বৃদ্ধি পায়
  • সম্ভবত আরও কাজ, যদি না আপনার খুব কম সংখ্যক শেডার থাকে

উবার-shader

পেশাদাররা:

  • সবকিছু এক জায়গায়
  • আরও শিল্পী-বান্ধব (প্রথমবারের জন্য এক্স বৈশিষ্ট্যযুক্ত এ বৈশিষ্ট্যটি প্রথমবারের জন্য কোডার সময় প্রয়োজন হয় না)

কনস:

  • দীর্ঘতম শেডার বার সংকলন
  • কম অনুকূল ফলাফল (উদাহরণস্বরূপ ইউনিফর্ম বৈশিষ্ট্যগুলি চালু / বন্ধ করতে ব্যবহৃত হয়)
  • ডিবাগ / অপ্টিমাইজ করা আরও কঠিন হতে পারে

Uber-shaderএই উপস্থাপনে কোনও ভাল জিনিস নয় :) আমি পূর্বনির্ধারিত উপর ভিত্তি করে ভাল শেডার ম্যানেজার লিখার প্রস্তাব দেব - তাই আমাদের কাছে অনেকগুলি ওবার-শেডার কোড #ifdefথাকবে যা বিভিন্ন উপকরণের জন্য টগল হবে।
ব্রিগেডিয়ার

2
আমি যুক্ত করব যে একটি উবার শ্যাডারের আরেকটি প্রো হ'ল শ্যাডারগুলির স্যুইচিংয়ের পারফরম্যান্সের ক্ষেত্রে একটি ব্যয় হয়, তাই আপনি যদি কম ঘন ঘন স্যুইচ করেন তবে আপনি পারফরম্যান্সটি উন্নত করতে সক্ষম হতে পারেন।
ঝাড়িকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.