স্টোরেজ কোয়ালিফায়ার inএবং outআসলে একটি উদ্দেশ্য যে রয়েছে এবং রহিত করে যে আছে varyingএবং attribute। তারা সংজ্ঞায়িত কি ভেরিয়েবল যথাক্রমে মধ্যে রাখে এবং আউট shader জন্য রাখে। দেখুন GLSL 4.2 রেফারেন্স কার্ড পৃষ্ঠা 7:
in: পূর্ববর্তী স্তর থেকে শ্যাডারে লিঙ্কেজ
out: একটি শেডার থেকে পরবর্তী পর্যায়ে লিঙ্কেজ
attribute: inভার্টেক্স শ্যাডার হিসাবে একই
varying: outভার্টেক্স শ্যাডার হিসাবে একই, inটুকরা শ্যাডার হিসাবে একই (দ্রষ্টব্য: এগুলি ভুলভাবে উল্লিখিত রেফারেন্স কার্ডের চারপাশে উল্টানো হয়))
পার্শ্ব নোটের সাহায্যে যে দ্বিতীয়টি হ'ল ধরণের হ'ল: তারা 4.2 মূল প্রোফাইলে উপস্থিত নেই, কেবলমাত্র সামঞ্জস্যতার প্রোফাইলে।
তারা ঠিক কি করবেন?
ব্যবহারের ক্ষেত্রে, একটি প্রবর্তন থেকে আধুনিক ওপেনগ্লে ভার্টেক্স শ্যাডারটি নিন। অধ্যায় 2.2: শেডার :
#version 110
attribute vec2 position;
varying vec2 texcoord;
void main()
{
gl_Position = vec4(position, 0.0, 1.0);
texcoord = position * vec2(0.5) + vec2(0.5);
}
এটি 4.2 কোরতে আবার লিখতে হবে:
#version 420
in vec2 position;
out vec2 texcoord;
void main()
{
gl_Position = vec4(position, 0.0, 1.0);
texcoord = position * vec2(0.5) + vec2(0.5);
}
সহায়তাকারী টিউটোরিয়াল
আপনি "পুরানো" টিউটোরিয়াল কোডটি খুঁজে পাওয়ার মূল কারণটি অনুমান করছি যে GLSL 3.3+ সামঞ্জস্যপূর্ণ হার্ডওয়্যারটিতে প্রত্যেকের অ্যাক্সেস নেই। নির্বিশেষে, একটি ভাল এবং আরও আধুনিক যুগের টিউটোরিয়ালটির জন্য আমি আনন্দের সাথে আপনাকে নিকল বোলাসের লার্নিং মডার্ন 3 ডি গ্রাফিক্স প্রোগ্রামিংয়ের দিক নির্দেশ করব ।