glVertexAttribPointer স্বাভাবিককরণ


11

glVertexAttribPointer (সূচক, আকার, প্রকার, নরমালাইজড, স্ট্রাইড, পয়েন্টার);

আমি যদি টাইপ = GL_UNSIGNED_BYTE এবং স্বাভাবিকীকরণ = GL_TRUE ব্যবহার করি

কিভাবে এটি স্বাভাবিক করা হয়? সাধারণকরণের জন্য ডেটা 256 দ্বারা ভাগ করা হবে? না? এর অর্থ হ'ল '1.0f' এর স্বাভাবিক মানের কোনও উপায় নেই ..

উত্তর:


13

ম্যানুয়াল থেকে,

যদি GL_TRUE এ সেট করা থাকে, সাধারণীকরণ নির্দেশ করে যে কোনও পূর্ণসংখ্যার বিন্যাসে সঞ্চিত মানগুলি [-1,1] (স্বাক্ষরিত মানের জন্য) বা [0,1] (স্বাক্ষরিত স্বাক্ষরিত মানগুলির জন্য) সীমাতে ম্যাপ করা উচিত যখন সেগুলি অ্যাক্সেস হয়ে রূপান্তরিত হয় when ভাসমান বিন্দু

আমি এর অর্থ এটি নিচ্ছি যে, একটি স্বাক্ষরযুক্ত 8 বিট প্রকারের সাথে 0 0 0.0f এ মানচিত্র করবে এবং 255 1.0f এ মানচিত্র করবে।


সুতরাং এর অর্থ এটি 255 দ্বারা বিভক্ত?
জোনাথন

ডান, স্বাক্ষরযুক্ত বাইটের পরিসীমা 0 - 255 রয়েছে। সুতরাং আপনি যদি 0xFF (যা 255 এর সমান) পাস করেন তবে আপনি 1.0f পাবেন।
notlesh

7
... আপনি কি কখনও জেলিদা খেলেন?
রুবীর

আমি জানি যে স্বাক্ষরবিহীন বাইটগুলি কেবল 255 এ যায় .. আমি কেবল ভাবছিলাম কারণ জিপিইউ-র দ্বারা একটি পাওয়ার-অফ-টু বিভক্ত করা যুক্তিযুক্ত বলে মনে হয়েছিল
জোনাথন

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