স্টোরেজ কোয়ালিফায়ার 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 ডি গ্রাফিক্স প্রোগ্রামিংয়ের দিক নির্দেশ করব ।