জিএলএসএল শেডারগুলির জন্য সঠিক ফাইল এক্সটেনশনটি কী? [বন্ধ]


127

আমি জিএসএসএল শেডিং শিখছি এবং আমি বিভিন্ন ফাইল ফর্ম্যাটগুলি পেয়েছি। আমি লোকদের তাদের ভার্টেক্স এবং খণ্ড ছায়া গো .vertএবং .fragএক্সটেনশানগুলি দিতে দেখেছি । তবে আমি দেখেছি .vshএবং .fshএক্সটেনশানগুলি, এবং এমনকি উভয় শেডারের একক .glslফাইলেও একসাথে । সুতরাং আমি ভাবছি যদি কোনও স্ট্যান্ডার্ড ফাইল ফর্ম্যাট আছে, বা 'সঠিক' কোনটি?


10
যতদূর আমি জানি, তাদের "সঠিক" এক্সটেনশন নেই, কারণ ওপেনজিএল এগুলি যে কোনওভাবেই ডিস্ক থেকে পড়বে না।
জেনেক করুন

2
কিছু লোক তাদের ভিতরে .vs এবং .fs (এবং .gs) বলে যা তারা ভিতরে রয়েছে make তবে জিনাক যেমন বলেছিল, আসলে এটি কিছু যায় আসে না, কোনও "সঠিক" জিনিস নেই।
দামন

11
GEdit ব্যবহার করে .glslvএবং .glslfসিনট্যাক্স হাইলাইট করার সময়। এটিই একমাত্র জায়গা যেখানে আমি দেখেছি এটি গুরুত্বপূর্ণ।
পাইওটর প্রস্ম্মো

উত্তর:


90

জিএলএসএল শেডারগুলির জন্য কোনও স্ট্যান্ডার্ড ফাইল এক্সটেনশন নেই। সর্বাধিক সাধারণ হ'ল সম্ভবত .vertএবং এবং .fragএগুলি এমন কিছু এক্সটেনশন যা 3 ডি ল্যাবগুলি তাদের কয়েকটি সরঞ্জামে ব্যবহার করেছিল। তবে এটি কোনও প্রকারের স্ট্যান্ডার্ড এক্সটেনশনের জন্য এটি।


20
আমি ভাবি না .আরভার্ট | .ফ্রেগ শেডারগুলির জন্য ভাল এক্সটেনশন নাম। এক্সটেনশন এমন একটি জিনিস যা কোনও ফাইলের সাধারণ শ্রেণি চিহ্নিত করে। তাদের সম্ভবত তাদের vertex.glsl এবং ফ্রেগমেন্ট.glsl বলা উচিত ছিল।
অটোডিডেক্ট

5
আমিও অবাক হয়েছি, তবে @ সংদীপদত্ত, ভারটিেক্স এবং টুকরা ছায়ার মধ্যে সিনট্যাক্সের মধ্যে সামান্য পার্থক্য নেই? একইভাবে .h এবং .c খুব সাধারণভাবে ভাগ করে নিতে পারে তবে সেগুলি বিভিন্ন উপায়ে ব্যবহার করা হয়।
জোসেফ হামফ্রে

7
@ সন্দীপদত্ত .hppবনাম .cpp? .hবনাম .c? সি / সি ++ শিরোনাম এবং উত্স ফাইলগুলির মধ্যে ভার্টেক্স এবং টুকরা শেডারের মধ্যে আরও সিনট্যাক্স এবং শব্দার্থক পার্থক্য রয়েছে।
মাইলস রাউট

1
@ মাইলসআরউট। সিসি

42
GLSLang, নামেও পরিচিত GLSL রেফারেন্স পার্সার বা রেফারেন্স কম্পাইলার , সরঞ্জাম দ্বারা উন্নত এক 3Dlabs । এটি opengl.org এবং khronos.org উভয়তেই এসডিকে সরঞ্জাম হিসাবে তালিকাভুক্ত। README তালিকা ফাইল এক্সটেনশন এটা shader ফাইলের জন্য প্রত্যাশা করে: .vert(প্রান্তবিন্দু), .frag(টুকরা), .tesc(চৌখুপী অংকন নিয়ন্ত্রণ), .tese(চৌখুপী অংকন মূল্যায়ন), .geom(জ্যামিতি), .comp(Compute)।
TachyonVortex

93

অনুমানটিতে কোনও আনুষ্ঠানিক বর্ধন নেই। ওপেনজিএল ফাইলগুলি থেকে লোডিং শেডারগুলি পরিচালনা করে না; আপনি কেবল একটি স্ট্রিং হিসাবে শেডার কোডটিতে পাস করেছেন, সুতরাং কোনও নির্দিষ্ট ফাইল ফর্ম্যাট নেই।

তবে, glslang , খ্রোনাসের রেফারেন্স GLSL সংকলক / যাচাইকারী, ফাইলটি কী ধরণের শেডার তা নির্ধারণ করতে নিম্নলিখিত এক্সটেনশনগুলি ব্যবহার করে:

  • .vert - একটি ভার্টেক্স শ্যাডার
  • .tesc - একটি পরীক্ষার নিয়ন্ত্রণ শেডার
  • .tese - একটি পরীক্ষামূলক মূল্যায়ন শেডার
  • .geom - একটি জ্যামিতি শেডার
  • .frag - একটি খণ্ড শেডার
  • .comp - একটি গণনা শ্যাডার

18

এক্সটেনশন দ্বারা ফাইলের ধরণ চিহ্নিত করা উইন্ডোজের জন্য নির্দিষ্ট একটি জিনিস। অন্যান্য সমস্ত অপারেটিং সিস্টেম পৃথক পদ্ধতির ব্যবহার করে: ম্যাকোস এক্স ফাইল প্রকারটিকে ফাইল সিস্টেমের এন্ট্রিগুলিতে একটি বিশেষ মেটাডেটা স্ট্রাকচারে সঞ্চয় করে। বেশিরভাগ * নিক্সগুলি "ম্যাজিক বাইটস" এর একটি ডাটাবেসের বিরুদ্ধে তাদের অভ্যন্তরীণ কাঠামোটি পরীক্ষা করে ফাইলগুলি সনাক্ত করে; তবে পাঠ্য সম্পাদকরা এক্সটেনশনটি ব্যবহার করেন।

যাইহোক, জিএলএসএল উত্সগুলি অন্য কোনও প্রোগ্রাম উত্স ফাইলের মতো: সাধারণ পাঠ্য, এবং এটি তাদের ফাইলের ধরণ।

আপনার পছন্দসই পছন্দটি আপনি বেছে নিতে পারেন। আমি নিম্নলিখিত নাম ব্যবহার করি:

  • ts.glsl
  • gs.glsl
  • vs.glsl
  • fs.glsl

তবে এটি আমার পছন্দ এবং প্রযুক্তিগতভাবে আমার প্রোগ্রামগুলি কোনও নামকরণ বা এক্সটেনশন স্কিম প্রয়োগ করে না। নামকরণটি মানুষের পড়ার এবং এতে কী রয়েছে তা জানার জন্য; একটি সাধারণ বড় এক্সটেনশন থাকার জন্য কেবলমাত্র একটি ফাইল এক্সটেনশান সেটের জন্য একটি সিনট্যাক্স হাইলাইটিং নিয়ম থাকা প্রয়োজন।


5
ডাউনভোটেড কারণ ওএস এক্স মূলত বছরের পর বছর ধরে ফাইল এক্সটেনশন ব্যবহার করছে।
ফ্রেডেরিক স্লিজ্কারম্যান

6
@ ফ্রেডেরিকস্লিজকারম্যান: না, তা হয় না। ম্যাকোস এক্স এর মূল একটি ইউনিক্স এবং জিনিস সনাক্তকরণের জন্য ফাইল এক্সটেনশানগুলি কখনও ব্যবহৃত হয়নি used হ্যাঁ, স্ট্যান্ডার্ড ধরণের স্ট্যান্ডার্ড ফাইল এক্সটেনশনগুলি পাওয়া যায় তবে এটি কেবল একটি মানব পাঠযোগ্যতার জিনিস। হয়তো ফাইন্ডার কিছু ধরণের হিউরিস্টিক হিসাবে ফাইল এক্সটেনশনের উপর নির্ভর করতে পারে। তবে যদি এটি সম্পূর্ণরূপে কোনও শিরোনাম বা কোনও ম্যাজিক বাইট দ্বারা কোনও ফাইল সনাক্ত করতে পারে তবে এটি এটি ব্যবহার করবে। যেকোন ইউনিক্স ভিত্তিক সিস্টেমটি করে।
ডেটনওয়ल्फ

3
+1 আমি এগুলিকে ইফেক্ট-নেম -fs.glsl বা ইফেক্ট-নাম -vs.glsl হিসাবে নাম দিয়েছি।
কিংবদন্তি 2 কে

9
আমি বুঝতে পারি যে ওএস এক্স যুক্তির জন্য আমি দু'বছর দেরিতে এসেছি, তবে আমার মনে হয়েছিল আমার দুটি সেন্টে ফেলে দেওয়া উচিত। ইউনিক্স স্তরের উপরে থাকা সমস্ত কিছুই ফাইল সংযোগ নির্ধারণ করতে লঞ্চ সার্ভিস ব্যবহার করে। প্রতিটি ফাইলের একটি ধরণের শনাক্তকারী থাকে com.stackoverflow.fileযা মেটাডেটা হিসাবে সঞ্চিত থাকে। মেটাডেটা এন্ট্রি উপস্থিত থাকলে লঞ্চ সার্ভিসগুলি প্রথমে মাইম টাইপ থেকে এটি অনুমান করার চেষ্টা করে। যদি তা না হয় তবে এটি এক্সটেনশনটির সন্ধান করবে। যদি এটি এটির সাথে মেলে না, এটি একটি এইচএফএস ক্রিয়েটর কোডের সন্ধান করবে। যদি কিছু না থাকে তবে এটি ছেড়ে দেয়। লঞ্চ সার্ভিসগুলি কখনও কখনও কোনও ফাইলকে তার শিরোনাম বা ম্যাজিক বাইট দ্বারা সনাক্ত করার চেষ্টা করে না।
জিনাক

2
এর অর্থ ওএস এক্সে কোনও ফাইলের ধরণ নির্ধারণের সর্বাধিক সাধারণ উপায় হ'ল এটির সম্প্রসারণ। এটি কেবল কোনও ফাইলটি খোলার জন্য কোন অ্যাপ্লিকেশনটি ব্যবহার করা উচিত তা চিহ্নিত করার উদ্দেশ্যে। একবার অ্যাপ্লিকেশন ফাইলটি খোলার পরে, বিষয়বস্তুর ধরণের জন্য এক্সটেনশানটি সঠিক কিনা তা বিবেচনা না করেই এটি সিদ্ধান্ত নিতে পারে যে এটি এর সাথে কী করতে চায়।
জিনাক

7

অন্যরা যেমন উল্লেখ করেছে সেখানে কঠোরতম অর্থে সঠিক উত্তর নেই। এটি উল্লেখ করে না যে সাব্লাইম (ভি 2 এবং ভি 3 এর জন্য নিশ্চিত) এছাড়াও সিনট্যাক্স হাইলাইটিং এবং বৈধতার জন্য .ভার্ট এবং .ফ্রেগের প্রত্যাশা করে।


2
আমি বিশ্বাস করি এটি কেবলমাত্র সত্য যদি আপনার কাছে সাবলাইমে কোনও জিএলএসএল লাইব্রেরি ইনস্টল থাকে, যেমন github.com/WebGLTools/GL-Shader-Validator - আমার ডিফল্ট সাব্লাইম এক্সটেনশনগুলি স্বীকৃতি দেয় না।
এয়ার

আপনি যে লিবটি সংযুক্ত করেছেন তা এখন পর্যন্ত সর্বাধিক জনপ্রিয় (এবং সম্ভবত কেবল?) জিএলএসএল লাইবকে মহানুভবতার জন্য, এবং আমি যা বলেছি যা উজ্জ্বল প্রত্যাশা হিসাবে প্রত্যাশা করে। আপনি যদি এটাকে বেশি বাড়াবাড়ি বলে থাকেন তবে আমি দোষী সাব্যস্ত করব। তবে হ্যাঁ আপনি কমপক্ষে ঠিক তেমনই ডেকে আনেন যেমন একজন দায়িত্বশীল পাঠ্য সম্পাদক যে এক্সটেনশনগুলি সম্পর্কে জানেন না তা উপেক্ষা করার সময় কোনও পাঠ্য ডক খুলবে।
ওয়েভরমাউন্ট

1
আজ মহিমান্বিত-GLSL (হিসাবে github.com/euler0/sublime-glsl ) সবচেয়ে জনপ্রিয় GLSL প্লাগইন এবং এটি এক্সটেনশন নিম্নলিখিত সেট স্বীকার করে: vs, fs, gs, vsh, fsh, gsh, vshader, fshader, gshader, vert, frag, geom, tesc, tese, comp, glsl। সুতরাং চয়ন করার জন্য বিভিন্ন আছে :)
এফ Lekschas

-1

শেডার লেখার দুটি উপায় রয়েছে।

আপনি একটি char *ভেরিয়েবলের মধ্যে ভার্টেক্স শ্যাডার এবং টুকরোগুলি শেডার সামগ্রী সংরক্ষণ করতে পারেন এবং একটি প্রোগ্রামের সাথে শেডারটি সংযুক্ত করে সংযুক্ত করতে পারেন।

আরেকটি উপায় হ'ল আপনার পছন্দসই এক্সটেনশন সহ পৃথক প্রান্ত এবং টুকরা শেডার ফাইলটি লিখুন এবং শ্যাডারটি সংকলন করতে, লিঙ্ক করতে এবং প্রোগ্রামটিতে শ্যাডার সংযুক্ত করতে পড়ুন।

সুতরাং নামকরণ কনভেনশন যেমন .vers / .frag, .vsdr / .fsdr, ইত্যাদি যতক্ষণ আপনি এটি পড়তে জানেন যতক্ষণ না ...


-2

যেমনটি ইতিমধ্যে একাধিক প্রতিক্রিয়া দ্বারা আবৃত হয়েছে, সত্যিকার অর্থে কোনও মান নেই; এটি আপনার পক্ষে সবচেয়ে কার্যকর যে পদ্ধতিটি অবলম্বন করবেন তা অবলম্বন করা আপনার পক্ষে।

আমি টাইপ-নির্দিষ্ট শেডার এক্সটেনশানগুলি ব্যবহার করে সুবিধাটি দেখতে পাচ্ছি তবে আমার পছন্দটি হ'ল সমস্ত প্রকারের শেডারের জন্য .glsl এক্সটেনশনটি ব্যবহার করা, যেহেতু আপনাকে কেবল শেল ফাইলটি একবারে কীভাবে ব্যবহার করবে তা আপনাকে কেবল নির্ধারণ করতে হবে।

একইভাবে, আপনি নোটপ্যাড ++ এ আপনার শেডার ফাইলগুলি সম্পাদনা করলে এটিও একটি ভাল বিকল্প, যেহেতু আপনি কেবলমাত্র একটি ফাইলের এক্সটেনশান নির্দিষ্ট করে আপনার সমস্ত শেডার ফাইলগুলিতে ভাষা-নির্দিষ্ট সিনট্যাক্স হাইলাইট করে তা স্বয়ংক্রিয়ভাবে প্রয়োগ করতে কনফিগার করতে পারেন।

এই পদ্ধতির খারাপ দিকটি হ'ল ফাইলের নাম দ্বারা শেডারের ধরণ নির্ধারণ করতে আপনাকে নিজের নামকরণ কনভেনশনটি ব্যবহার করতে হবে তবে আমার জন্য, সুবিধাগুলি ব্যয়ের চেয়ে বেশি।

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