ডিডিএক্স (এইচএলএসএল) আসলে কী করে?


17

আমি কিছুটা বিভ্রান্ত। অফিসিয়াল ডকুমেন্টেশন ( http://msdn.microsoft.com/en-us/library/windows/desktop/bb509588(v=vs.85).aspx ) বলে যে ডিডিএক্স (ইনপুট) সম্মানের সাথে ইনপুটটির আংশিক ডেরাইভেটিভ "স্ক্রিন-স্পেস এক্স-স্থানাঙ্ক।"

আমার ক্যালকুলাস ঠিক আছে, তবে কীভাবে ইনপুটটি আসছে তা এটি কীভাবে বলতে পারে? আমি যদি এটি একটি ফাংশনটি পাস করি তবে, ঠিক আছে, আমি এটি কী করবে তা কল্পনা করতে পারি, তবে একটি সংখ্যার ডেরিভেটিভ সবসময় শূন্য হয় ...?

এটা কি কেবল একটি স্কেলিং? পছন্দ করুন, এটি এই দূরত্বে এটির আকারের দশমাংশের আকারকে বাড়িয়ে দেবে, সুতরাং এটি এক দশমাংশ ফিরে আসে? তবে তারপরে কোনও ইনপুট লাগবে না ...

আসলে কি ঘটছে তার দ্রুত ব্যাখ্যা কেউ দিতে পারেন?


2
ddxএবং ddyএমন যাদু করুন যা আপনি নিজে করতে পারবেন না। রাস্টেরাইজেশন পাইপলাইন থেকে তাদের অতিরিক্ত তথ্যে অ্যাক্সেস রয়েছে যা আপনি পিক্সেল শেডার থেকে অর্জন করতে পারবেন না। তারা ঠিক কোন সূত্র ব্যবহার করে তা আমি নিশ্চিত নই; তারা বিশ্বাস করতে পারে যে তারা একটি অনুমানের কৌশল ব্যবহার করে, তবে আমি নিশ্চিতভাবে জানি না।
শান মিডলডিচ

এটা গভীর অদ্ভুত, কিন্তু এখনও। ডিডিএক্স (5) আসলে কী উপস্থাপন করে? যদি এটি বলে .1, আমি এটি কীভাবে ব্যাখ্যা করব? বা -6?
রিচার্ড রাস্ট

1
ddx(5)এক ধরণের অর্থহীন। এটি একটি ইনপুট মান সহ ব্যবহার করুন এবং এটি আপনাকে একটি ব্লকের প্রতিবেশী পিক্সেলের সাথে সম্মানের সাথে সেই মানটির ব্যয়করূপ দেয়। আবার, আমি জানি না এটি কতটা নিখুঁতভাবে মানগুলি গণনা করে তবে একটি নন-ইনপুট অনুসন্ধানের জন্য জিজ্ঞাসা করা কেবলমাত্র অপরিজ্ঞাত আচরণ হতে পারে এবং আবর্জনা তৈরি করতে পারে। আমি সরবরাহ করতে পারি তার চেয়ে আরও তথ্যের জন্য fgiesen.wordpress.com/2011/07/10/… দেখুন ।
শান মিডলডিচ

আমি নিশ্চিত নই তবে এটি ভালভাবে হতে পারে যে এইচএলএসএল সংকলক আসলে আপনি যে অনুভূতিটি ডিডিএক্স / ডিডিতে পাস করেছেন তার সম্পূর্ণ প্রতীকী পার্থক্য করছে। blogs.msdn.com/b/chuckw/archive/2011/03/08/... research.microsoft.com/pubs/146019/...
Ziriax

এটার কাজ কি? কেবলমাত্র সামান্য যুক্তিসংগত জিনিস, স্পষ্টত।
মিকএলএইচ

উত্তর:


32

অভ্যন্তরীণভাবে, জিপিইউগুলি একবারে পিক্সেল শেডারের একটি উদাহরণ চালায় না। গ্রানুলারিটির সেরা স্তরে, তারা সিমড আর্কিটেকচারটি ব্যবহার করে একই সময়ে 32-64 পিক্সেল চালিয়ে চলেছে। এর মধ্যে, পিক্সেলগুলি আরও 2x2 কোয়াডে সজ্জিত করা হয়েছে, সুতরাং সিমডি ভেক্টরটিতে টানা 4 পিক্সেলের প্রতিটি গ্রুপ পর্দার 2x2 পিক্সেলের ব্লকের সাথে সম্পর্কিত।

চতুর্দিকে পিক্সেলের মধ্যে পার্থক্য নিয়ে ডেরিভেটিভগুলি গণনা করা হয়। উদাহরণস্বরূপ, ddxডান দিকের মানগুলি থেকে কোয়াডের বাম দিকে পিক্সেলগুলিতে মানগুলি ddyবিয়োগ করবে এবং উপরের দিক থেকে নীচের পিক্সেলগুলি বিয়োগ করবে। পার্থক্যগুলি তখন কোয়াডের চারটি পিক্সেলের ডেরাইভেটিভ হিসাবে ফিরে আসতে পারে।

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

সুতরাং একটি ধ্রুবক মানটির ডেরাইভেটিভ নেওয়া শূন্য দেবে (যেমন আপনি ক্যালকুলাস থেকে প্রত্যাশা করেছিলেন, ঠিক?) কারণ এটি চারটি পিক্সেলের একই ধ্রুবক মান value

এছাড়াও নোট "মোটা" এবং "জরিমানা" ডেরাইভেটিভস আছে, ddx_coarse/ ddy_coarseএবং ddx_fine/ ddy_fine। পার্থক্যের একটি ব্যাখ্যা এখানে দেওয়া হল । মোটা সংস্করণগুলির জন্য কেবল সাদামাটা ddx/ ddyহ'ল উপাধি।

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


+1 টি; কোনও টেক্সচারে ঘেমে যাওয়া প্রভাব প্রয়োগ করার সময় আমি এই দরকারীটি পেয়েছি; বিশৃঙ্খলাযুক্ত টেক্সকর্ডগুলি কিছু রঙ বিকৃতি দিয়েছে, তবে টেক্সট 2 ডিগ্রাডকে মূল (অবিচ্ছিন্ন) টেক্সকর্ডগুলি থেকে ডেরিভেটিভগুলি ব্যবহার করে একটি অনির্বাচিত ফলাফল দিয়েছে।
ম্যাক্সিমাস মিনিমাস

ঠিক আছে, কিছু চিন্তা করার পরে আমি মনে করি আমি আমার বিভ্রান্তিটি বুঝতে পেরেছি। আমার মনে, ddxtraditionalতিহ্যবাহী প্রোগ্রামিং ভাষায় অন্যান্য ফাংশনের মতো কাজ করে; আপনি ইনপুটটি মূল্যায়ন করুন, এটি একটি ফ্লোট বা যা কিছুতে পরিণত করুন, তারপরে বাইরের কাজটি ( ddx) করুন। তবে এটি আলাদা it এটি ইনপুট স্ট্রিং নেয় , এটি বেশ কয়েকটি স্থানে মূল্যায়ন করে, একটি ডেরাইভেটিভ গণনা করে এবং ফলাফলটি রিপোর্ট করে। এটা কি ঠিক?
রিচার্ড রাস্ট

1
পুনঃটুইট আপনি মানটি না দিয়ে আপনি ddxযে অভিব্যক্তিটি এতে প্রবেশ করেছেন তার অপারেটিং হিসাবে ভাবতে পারেন ।
নাথন রিড

তবে দেখুন, এটি এত অদ্ভুত যে এটি ডকুমেন্টেশনে থাকা উচিত। আমি আমার প্রোগ্রামিং জীবনে অন্য কোনও সময় ভাবতে পারি না যেখানে ঘটনাটি ঘটেছে।
রিচার্ড রাস্ট

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